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.
O Azure Key Vault ajuda a proteger segredos como chaves de API, as cadeias de conexão de banco de dados que você precisa para acessar seus aplicativos, serviços e recursos de TI.
Neste tutorial, você aprenderá como fazer um aplicativo de console ler as informações no Azure Key Vault. O aplicativo usará 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 do Azure.
- Habilitar uma identidade gerenciada para a Máquina Virtual.
- Atribuir permissões à identidade da VM.
Antes de começar, leia Conceitos básicos do Key Vault.
Caso não tenha uma assinatura do Azure, crie uma conta gratuita.
Pré-requisitos
Para Windows, Mac e Linux:
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 pré-criado. Você pode criar um cofre de chaves seguindo as etapas nestes guias de início rápido:
Como alternativa, você pode executar esses comandos da CLI do Azure ou do Azure PowerShell.
Importante
Cada cofre de chaves deve ter um nome exclusivo. Substitua <seu-nome-exclusivo-do-cofre-de-chaves> pelo nome do seu cofre de chaves nos exemplos a seguir.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<your-unique-keyvault-name>" -g "myResourceGroup" --enable-rbac-authorization
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, uma cadeia de conexão SQL ou qualquer outra informação que você precise manter em segurança e disponível para o aplicativo.
Para adicionar um segredo ao cofre de chaves recém-criado, use o seguinte comando:
az keyvault secret set --vault-name "<your-unique-keyvault-name>" --name "mySecret" --value "Success!"
Criar uma máquina virtual
Crie uma máquina virtual do Windows ou Linux usando um dos seguintes métodos:
| Windows | Linux |
|---|---|
| Azure CLI | Azure CLI |
| PowerShell | PowerShell |
| Portal do Azure | Portal do Azure |
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 <NameOfYourVirtualMachine> --resource-group <YourResourceGroupName>
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/<resource-group-name>/providers/Microsoft.KeyVault/vaults/<your-unique-keyvault-name>"
Substituir <upn>, <subscription-id>, <resource-group-name> e <your-unique-keyvault-name> pelos seus valores reais. 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-se e entrar em uma máquina virtual do Azure do Windows ou Conectar-se e fazer logon em uma máquina virtual do Azure do 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 Downloads do .NET.
Criar e executar um aplicativo .NET de exemplo
Abra um prompt de comando.
Você pode exibir "Olá, Mundo" no console executando os comandos a seguir:
dotnet new console -n keyvault-console-app
cd keyvault-console-app
dotnet run
Instalar o pacote
Na janela do console, instale a biblioteca de clientes dos Segredos do Azure Key Vault para .NET:
dotnet add package Azure.Security.KeyVault.Secrets
Para este tutorial rápido, você precisará instalar o seguinte pacote de identidade para autenticação 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 = "<your-key-vault-name>";
var kvUri = "https://<your-key-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.