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 e cadeias de conexão de banco de dados de que seus aplicativos, serviços e recursos precisam.
Neste tutorial, você configurará um aplicativo de console para ler informações de Azure Key Vault. O aplicativo usa a identidade gerenciada da VM para autenticar para 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
Entre no Azure com o CLI do Azure ou Azure PowerShell:
az login
Criar um grupo de recursos e um cofre de chaves
Este início rápido usa um cofre de chaves do Azure pré-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 VM Windows ou Linux usando um dos seguintes métodos:
| Windows | Linux |
|---|---|
| CLI do Azure | CLI do Azure |
| PowerShell | PowerShell |
| Portal do Azure | Portal do Azure |
Atribuir uma identidade à VM
Crie uma identidade gerenciada atribuída pelo sistema para a VM:
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 do RBAC (controle de acesso baseado em função), atribua uma função ao seu UPN (nome principal do usuário) usando o comando da 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 VM
Para entrar na VM, siga as instruções em Conectar-se e entre em uma máquina virtual Azure Windows ou Conecte-se e entre em uma máquina virtual Azure Linux.
Configurar o aplicativo de console
Crie um aplicativo de console e instale os pacotes necessários com o dotnet comando.
Instalar .NET
Para instalar .NET, acesse a página de downloads do .NET.
Criar e executar um aplicativo de .NET de exemplo
Abra um prompt de comando e execute:
dotnet new console -n keyvault-console-app
cd keyvault-console-app
dotnet run
O aplicativo imprime "Olá, Mundo" no console.
Instalar os pacotes
Na janela do console, instale a biblioteca de cliente do Azure Key Vault Secrets e a biblioteca Azure Identity:
dotnet add package Azure.Security.KeyVault.Secrets
dotnet add package Azure.Identity
Editar o aplicativo de console
Abra Program.cs e adicione as seguintes using diretivas:
using System;
using Azure.Core;
using Azure.Identity;
using Azure.Security.KeyVault.Secrets;
Substitua o método Main pelo código a seguir, substituindo <vault-name> pelo nome do seu cofre de chaves. Esse código usa DefaultAzureCredential para autenticar em Key Vault, que usa um token da identidade gerenciada da VM. Ele também configura a retirada exponencial para novas tentativas caso Key Vault seja limitada.
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 você não precisar mais deles, exclua a VM e o cofre de chaves.