Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Azure Key Vault ajuda-o a proteger segredos como chaves API, as cadeias de ligação à base de dados de que precisa para aceder às suas aplicações, serviços e recursos de TI.
Neste tutorial, aprende como fazer com que uma aplicação de consola leia informações do Azure Key Vault. A aplicação usaria identidade gerida por máquina virtual para autenticar no Key Vault.
Este tutorial mostra-lhe como:
- Crie um grupo de recursos.
- Crie um cofre de chaves.
- Adicione um segredo ao cofre de chaves.
- Obter um segredo do cofre de chaves.
- Crie uma máquina virtual Azure.
- Habilite uma identidade gerenciada para a Máquina Virtual.
- Atribua permissões à identidade da VM.
Antes de começares, lê Key Vault conceitos básicos.
Se não tiver uma subscrição Azure, crie uma conta free.
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ê precisa criar alguns recursos, colocar um segredo no cofre de chaves e atribuir permissões.
Iniciar sessão no Azure
Para iniciar sessão no Azure usando o seguinte comando:
az login
Criar um grupo de recursos e um cofre de chaves
Este quickstart utiliza um cofre de chaves Azure pré-criado. Você pode criar um cofre de chaves seguindo as etapas nestes guias rápidos:
Em alternativa, pode executar estes comandos CLI do Azure ou Azure PowerShell.
Importante
Cada cofre de chaves deve ter um nome exclusivo. Substitua <vault-name> pelo nome do seu cofre de chaves nos exemplos seguintes.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<vault-name>" -g "myResourceGroup" --enable-rbac-authorization true
Preencha o cofre das chaves com um segredo
Vamos criar um segredo chamado mySecret, com um valor de Sucesso!. Um segredo pode ser uma palavra-passe, uma cadeia de ligação SQL ou qualquer outra informação que precise para manter segura e disponível para a sua aplicação.
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 |
| Portal do Azure | Portal do Azure |
Atribuir uma identidade à VM
Crie uma identidade atribuída ao 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 ao 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 seu cofre de chaves através de Role-Based Controlo de Acesso (RBAC), atribua uma função ao seu "Nome Principal do Utilizador" (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> pelos seus valores reais. Se usaste um nome diferente de grupo de recursos, substitui também "myResourceGroup". Seu UPN normalmente estará no formato de um endereço de e-mail (por exemplo, username@domain.com).
Entrar na máquina virtual
Para iniciar sessão na máquina virtual, siga as instruções em Connect e inicie sessão numa máquina virtual Azure Windows ou Connect e inicie sessão numa máquina virtual Linux Azure.
Configurar a aplicação da consola
Crie um aplicativo de console e instale os pacotes necessários usando o dotnet comando.
Instalar o .NET Core
Para instalar .NET Core, vai à página .NET downloads.
Crie e execute uma aplicação .NET de exemplo
Abra um prompt de comando.
Pode imprimir "Hello World" na consola executando os seguintes comandos:
dotnet new console -n keyvault-console-app
cd keyvault-console-app
dotnet run
Instalar o pacote
A partir da janela do console, instale a biblioteca cliente Azure Key Vault Secrets para .NET:
dotnet add package Azure.Security.KeyVault.Secrets
Para este início rápido, terá de instalar o seguinte pacote de identidade para se autenticar no Azure Key Vault.
dotnet add package Azure.Identity
Editar o aplicativo de console
Abra o arquivo Program.cs e adicione estes 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 seu cofre de chaves. O código abaixo está usando 'DefaultAzureCredential()' para autenticação no cofre de chaves, que está usando token da identidade gerenciada do aplicativo para autenticar. Ele também está usando backoff exponencial para novas tentativas no caso de cofre de chaves está 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.");
}
}
Limpeza de recursos
Quando não forem mais necessários, exclua a máquina virtual e o cofre de chaves.