Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Azure Key Vault ajuda você a proteger segredos como chaves de API, as cadeias de conexão de banco de dados necessárias para acessar seus aplicativos, serviços e recursos de TI.
Neste tutorial, você aprenderá a obter um aplicativo de console para ler informações de Azure Key Vault. O aplicativo usaria a identidade gerenciada da máquina virtual para se autenticar no Key Vault.
Este tutorial mostra como:
- Crie um grupo de recursos.
- Crie um cofre de chaves.
- Adicione um segredo ao cofre de chaves.
- Recuperar um segredo do cofre de chaves.
- Crie uma máquina virtual Azure.
- Habilitar uma identidade gerenciada para a Máquina Virtual.
- Atribuir permissões à identidade da VM.
Antes de começar, leia Key Vault conceitos básicos.
Se você não tiver uma assinatura da Azure, crie uma conta gratuita.
Pré-requisitos
Para Windows, Mac e Linux:
- Git
- O SDK .NET 8.0 ou posterior.
- CLI do Azure ou Azure PowerShell
Criar recursos e atribuir permissões
Antes de começar a codificar, você precisará criar alguns recursos, colocar um segredo no cofre de chaves e atribuir permissões.
Entrar no Azure
Para entrar no Azure usando o seguinte comando:
az login
Criar um grupo de recursos e um cofre de chaves
Este início rápido usa um cofre de chaves do Azure já criado. Você pode criar um cofre de chaves seguindo as etapas nestes guias de início rápido:
- Início Rápido do CLI do Azure
- Introdução ao Azure PowerShell
- Guia de início rápido do Azure portal
Como alternativa, você pode executar esses comandos CLI do Azure ou Azure PowerShell.
Importante
Cada cofre de chaves deve ter um nome exclusivo. Substitua <vault-name> pelo nome do cofre de chaves nos exemplos a seguir.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<vault-name>" -g "myResourceGroup" --enable-rbac-authorization true
Preencher seu cofre de chaves com um segredo
Vamos criar um segredo chamado mySecret, com um valor de Êxito! . Um segredo pode ser uma senha, um sql cadeia de conexão ou qualquer outra informação que você precise manter seguras e disponíveis para seu aplicativo.
Para adicionar um segredo ao cofre de chaves recém-criado, use o seguinte comando:
az keyvault secret set --vault-name "<vault-name>" --name "mySecret" --value "Success!"
Criar uma máquina virtual
Crie uma máquina virtual Windows ou Linux usando um dos seguintes métodos:
| Windows | Linux |
|---|---|
| CLI do Azure | CLI do Azure |
| PowerShell | PowerShell |
| Azure portal | Azure portal |
Atribuir uma identidade à VM
Crie uma identidade atribuída pelo sistema para a máquina virtual com o seguinte exemplo:
az vm identity assign --name <vm-name> --resource-group <resource-group>
Observe a identidade atribuída pelo sistema que é exibida no código a seguir. A saída do comando anterior seria:
{
"systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userAssignedIdentities": {}
}
Atribuir permissões à identidade da VM
Para obter permissões para o cofre de chaves por meio de Role-Based Controle de Acesso (RBAC), atribua uma função ao seu "Nome Principal do Usuário" (UPN) usando o comando CLI do Azure az role assignment create.
az role assignment create --role "Key Vault Secrets User" --assignee "<upn>" --scope "/subscriptions/<subscription-id>/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/<vault-name>"
Substitua <upn>, <subscription-id>e <vault-name> com seus valores reais. Se você usou um nome de grupo de recursos diferente, substitua "myResourceGroup" também. Seu UPN normalmente estará no formato de um endereço de email (por exemplo, username@domain.com).
Entrar na máquina virtual
Para entrar na máquina virtual, siga as instruções em Conectar e entrar em uma máquina virtual Azure Windows ou Conectar e entrar em uma máquina virtual Azure Linux.
Configurar o aplicativo de console
Criar um aplicativo de console e instalar os pacotes necessários usando o comando dotnet.
Instalar o .NET Core
Para instalar o .NET Core, acesse a página .NET downloads.
Criar e executar um aplicativo de .NET de exemplo
Abra um prompt de comando.
Você pode imprimir "Olá, Mundo" no console executando os seguintes comandos:
dotnet new console -n keyvault-console-app
cd keyvault-console-app
dotnet run
Instalar o pacote
Na janela do console, instale a biblioteca cliente de Segredos do Azure Key Vault para .NET:
dotnet add package Azure.Security.KeyVault.Secrets
Para este início rápido, você precisará instalar o seguinte pacote de identidade para autenticar no Azure Key Vault:
dotnet add package Azure.Identity
Editar o aplicativo de console
Abra o arquivo Program.cs e adicione esses pacotes:
using System;
using Azure.Core;
using Azure.Identity;
using Azure.Security.KeyVault.Secrets;
Adicione essas linhas, atualizando o URI para refletir o vaultUri do cofre de chaves. O código abaixo está usando 'DefaultAzureCredential()' para autenticação no cofre de chaves, que está usando o token da identidade gerenciada do aplicativo para autenticar. Ele também está usando a retirada exponencial para novas repetições, caso o cofre de chaves esteja sendo limitado.
class Program
{
static void Main(string[] args)
{
string secretName = "mySecret";
string keyVaultName = "<vault-name>";
var kvUri = "https://<vault-name>.vault.azure.net";
SecretClientOptions options = new SecretClientOptions()
{
Retry =
{
Delay= TimeSpan.FromSeconds(2),
MaxDelay = TimeSpan.FromSeconds(16),
MaxRetries = 5,
Mode = RetryMode.Exponential
}
};
var client = new SecretClient(new Uri(kvUri), new DefaultAzureCredential(),options);
Console.Write("Input the value of your secret > ");
string secretValue = Console.ReadLine();
Console.Write("Creating a secret in " + keyVaultName + " called '" + secretName + "' with the value '" + secretValue + "' ...");
client.SetSecret(secretName, secretValue);
Console.WriteLine(" done.");
Console.WriteLine("Forgetting your secret.");
secretValue = "";
Console.WriteLine("Your secret is '" + secretValue + "'.");
Console.WriteLine("Retrieving your secret from " + keyVaultName + ".");
KeyVaultSecret secret = client.GetSecret(secretName);
Console.WriteLine("Your secret is '" + secret.Value + "'.");
Console.Write("Deleting your secret from " + keyVaultName + " ...");
client.StartDeleteSecret(secretName);
System.Threading.Thread.Sleep(5000);
Console.WriteLine(" done.");
}
}
Limpar os recursos
Quando eles não forem mais necessários, exclua a máquina virtual e o cofre de chaves.