Partilhar via


Tutorial: Usar o Azure Key Vault com uma máquina virtual em Python

O Azure Key Vault ajuda você a proteger chaves, segredos e certificados, como chaves de API e cadeias de conexão de banco de dados.

Neste tutorial, você configura um aplicativo Python para ler informações do Azure Key Vault usando identidades gerenciadas para recursos do Azure. Você aprende a:

  • Criar um cofre de chaves
  • Armazene um segredo no Cofre da Chave
  • Criar uma máquina virtual Linux no Azure
  • Habilitar uma identidade gerenciada para a máquina virtual
  • Conceda as permissões necessárias para que o aplicativo de console leia dados do Cofre da Chave
  • Recuperar um segredo do Key Vault

Antes de começar, leia os 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. Executar az --version para localizar a versão. Se você precisar instalar ou atualizar a CLI, consulte Instalar a CLI do Azure 2.0.

Iniciar sessão no Azure

Para iniciar sessão no Azure com a CLI do Azure, introduza:

az login

Criar um grupo de recursos e um cofre de chaves

Este guia de início rápido usa um cofre de chaves do Azure já criado. Você pode criar um cofre de chaves seguindo as etapas nestes guias rápidos:

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 <your-unique-keyvault-name> pelo nome do seu cofre de chaves nos exemplos seguintes.

az group create --name "myResourceGroup" -l "EastUS"

az keyvault create --name "<your-unique-keyvault-name>" -g "myResourceGroup" --enable-rbac-authorization

Preencha o cofre das chaves com um segredo

Vamos criar um segredo chamado mySecret, com um valor de Sucesso!. Um segredo pode ser uma senha, uma cadeia de conexão SQL ou qualquer outra informação que você precise manter segura e disponível para seu 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
da CLI do Azure da CLI do Azure
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 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 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 ao sistema para a máquina virtual usando o comando Azure CLI az vm identity assign :

az vm identity assign --name "myVM" --resource-group "myResourceGroup"

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 por meio do controlo de acesso baseado em funções (RBAC), atribua uma função ao "Nome Principal do Utilizador" (UPN) usando o comando az role assignment create da CLI do Azure.

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>"

Substitua <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 e-mail (por exemplo, username@domain.com).

Faça login na VM

Para entrar na máquina virtual, siga as instruções em Conectar e entre em uma máquina virtual do Azure executando Linux ou Connect e entre em uma máquina virtual do Azure executando o Windows.

Para fazer login em uma VM Linux, você pode usar o comando ssh com o <publicIpAddress> fornecido na etapa Criar uma máquina virtual :

ssh azureuser@<PublicIpAddress>

Instalar bibliotecas Python na VM

Na máquina virtual, instale as duas bibliotecas Python que usaremos em nosso script Python: azure-keyvault-secrets e azure.identity.

Em uma VM Linux, por exemplo, você pode instalá-los usando pip3:

pip3 install azure-keyvault-secrets

pip3 install azure.identity

Criar e editar o script Python de exemplo

Na máquina virtual, crie um arquivo Python chamado sample.py. Edite o arquivo para conter 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}'")

Execute o aplicativo Python de exemplo

Por fim, execute sample.py. Se tudo correu bem, deve devolver o valor do seu segredo:

python3 sample.py

The value of secret 'mySecret' in '<your-unique-keyvault-name>' is: 'Success!'

Limpeza de recursos

Quando não forem mais necessários, exclua a máquina virtual e o cofre de chaves. Você pode ser feito rapidamente excluindo o grupo de recursos ao qual eles pertencem:

az group delete -g myResourceGroup

Próximos passos

Azure Key Vault REST API