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 chaves, segredos e certificados, como chaves API e cadeias de ligação a bases de dados.
Neste tutorial, configuraste uma aplicação Python para ler informação do Azure Key Vault usando uma identidade gerida para recursos do Azure. Você aprende a:
- Criar um cofre de chaves
- Guardar um segredo no Key Vault
- Criar uma máquina virtual Azure Linux
- Habilitar uma identidade gerenciada para a máquina virtual
- Conceda as permissões necessárias para que a aplicação de consola leia dados do Key Vault
- Recuperar um segredo da Key Vault
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
- Uma versão atual da CLI do Azure. Executa
az --versionpara verificar a versão instalada.
Iniciar sessão no Azure
Inicie sessão no Azure com a CLI do Azure:
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 VM chamada myVM usando um dos seguintes métodos:
| Linux | Windows |
|---|---|
| CLI do Azure | CLI do Azure |
| PowerShell | PowerShell |
| Portal do Azure | Portal do Azure |
Para criar uma VM Linux usando o CLI do Azure, use o comando az vm create. O exemplo a seguir adiciona uma conta de usuário chamada azureuser. O --generate-ssh-keys parâmetro é usado para gerar automaticamente uma chave SSH e colocá-la no local da chave padrão (~/.ssh).
az vm create \
--resource-group <resource-group> \
--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 gerida atribuída pelo sistema para a VM usando o comando az vm identity assign :
az vm identity assign --name "myVM" --resource-group "<resource-group>"
Note a identidade atribuída pelo sistema na saída:
{
"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).
Iniciar sessão na VM
Para iniciar sessão na VM, siga as instruções em Connect e inicie sessão numa máquina virtual Azure a correr Linux ou Connect e inicie sessão numa máquina virtual Azure com Windows.
Para iniciar sessão numa VM Linux, use ssh com o <public-ip-address> do passo Criar uma máquina virtual:
ssh azureuser@<public-ip-address>
Instale bibliotecas Python na VM
Na VM, instale as duas bibliotecas Python que o script de exemplo utiliza: azure-keyvault-secrets e azure-identity.
Numa VM Linux, instale-as com pip3:
pip3 install azure-keyvault-secrets azure-identity
Crie e edite o script Python de exemplo
Na VM, crie um ficheiro Python chamado sample.py. Cole o seguinte código no ficheiro, substituindo <vault-name> pelo nome do cofre de chaves:
from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential
key_vault_name = "<vault-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}'")
Executa a aplicação Python de exemplo
Execute sample.py. Se tudo estiver configurado corretamente, a aplicação imprime o valor secreto:
python3 sample.py
The value of secret 'mySecret' in '<vault-name>' is: 'Success!'
Limpeza de recursos
Quando já não precisares deles, apaga a VM e o cofre de chaves. A forma mais rápida é eliminar o grupo de recursos a que pertencem:
az group delete -g "myResourceGroup"