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 chaves, segredos e certificados, como chaves de API e cadeias de conexão de banco de dados.
Neste tutorial, você vai configurar um aplicativo do Python para ler informações do Azure Key Vault usando identidades gerenciadas para recursos do Azure. Você aprenderá como:
- Criar um cofre de chaves
- Armazenar um segredo no Key Vault
- Criar uma máquina virtual do Linux no Azure
- Habilitar uma identidade gerenciada para a máquina virtual
- Conceder as permissões necessárias para o aplicativo de console ler dados do Key Vault
- Recuperar um segredo do Key Vault
Antes de começar, leia Conceitos básicos do Key Vault.
Se você não tiver uma assinatura do Azure, crie uma conta gratuita.
Pré-requisitos
Para Windows, Mac e Linux:
- Git
- Este tutorial requer que você execute a CLI do Azure localmente. Você deve ter a CLI do Azure versão 2.0.4 ou posterior instalada. Execute
az --versionpara encontrar a versão. Caso precise instalar ou atualizar a CLI, confira Instalar a CLI 2.0 do Azure.
Fazer logon no Azure
Para fazer logon no Azure usando a CLI do Azure, digite:
az login
Criar um grupo de recursos e um cofre de chaves
Este início rápido usa um Azure Key Vault 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-de cofre-de-chaves-exclusivo> 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
Preencha 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 VM chamada myVM usando um dos seguintes métodos:
| Linux | Windows |
|---|---|
| Azure CLI | Azure CLI |
| PowerShell | PowerShell |
| Portal do Azure | O portal do Azure |
Para criar uma VM Linux usando a CLI do Azure, use o comando az vm create. O exemplo a seguir cria uma conta de usuário chamada azureuser. O parâmetro --generate-ssh-keys é usado para gerar automaticamente uma chave SSH e colocá-la no local de chave padrão ( ~/.ssh).
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys
Observe o valor de publicIpAddress na saída.
Atribuir uma identidade à VM
Crie uma identidade atribuída pelo sistema para a máquina virtual usando o comando az vm identity assign da CLI do Azure:
az vm identity assign --name "myVM" --resource-group "myResourceGroup"
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).
Fazer login no VM
Para entrar na máquina virtual, siga as instruções em Conectar-se e fazer logon em uma máquina virtual do Azure executando o Linux ou Conectar-se e fazer logon em uma máquina virtual do Azure executando o Windows.
Para fazer logon em uma VM do Linux, use o comando ssh com o <publicIpAddress> fornecido na etapa Criar uma máquina virtual:
ssh azureuser@<PublicIpAddress>
Instalar as bibliotecas do Python na VM
Na máquina virtual, instale as duas bibliotecas do Python que usaremos em nosso script Python: azure-keyvault-secrets e azure.identity.
Em uma VM do Linux, por exemplo, você pode instalá-las usando pip3:
pip3 install azure-keyvault-secrets
pip3 install azure.identity
Criar e editar o script de exemplo do Python
Na máquina virtual, crie um arquivo Python chamado sample.py. Edite o arquivo para que ele contenha o seguinte código, substituindo <your-unique-keyvault-name> pelo nome do seu cofre de chaves:
from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential
key_vault_name = "<your-unique-keyvault-name>"
key_vault_uri = f"https://{key_vault_name}.vault.azure.net"
secret_name = "mySecret"
credential = DefaultAzureCredential()
client = SecretClient(vault_url=key_vault_uri, credential=credential)
retrieved_secret = client.get_secret(secret_name)
print(f"The value of secret '{secret_name}' in '{key_vault_name}' is: '{retrieved_secret.value}'")
Executar o aplicativo Python de exemplo
Execute sample.py. Se tudo correr bem, ele retornará o valor do seu segredo:
python3 sample.py
The value of secret 'mySecret' in '<your-unique-keyvault-name>' is: 'Success!'
Limpar os recursos
Quando não forem mais necessários, exclua a máquina virtual e o cofre de chaves. Você pode fazer isso rapidamente apenas excluindo o grupo de recursos ao qual eles pertencem:
az group delete -g myResourceGroup