Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure Key Vault le ayuda a proteger claves, secretos y certificados, como claves de API y cadenas de conexión de base de datos.
En este tutorial, configuras una aplicación de Python para leer información de Azure Key Vault mediante identidades administradas para recursos de Azure. Aprenderá a:
- Crear una bóveda de claves
- Almacenar un secreto en Key Vault
- Creación de una máquina virtual Linux de Azure
- Habilitar una identidad administrada para la máquina virtual
- Concesión de los permisos necesarios para que la aplicación de consola lea datos de Key Vault
- Recuperar un secreto de Key Vault
Antes de empezar, lea Key Vault conceptos básicos.
Si no tiene una suscripción de Azure, cree una cuenta free.
Prerrequisitos
Para Windows, Mac y Linux:
- Git
- Este tutorial requiere que ejecute el CLI de Azure localmente. Debe tener instalada una versión reciente del CLI de Azure. Ejecute
az --versionpara encontrar la versión. Si necesita instalar o actualizar la CLI, consulte Install CLI de Azure.
Iniciar sesión en Azure
Para iniciar sesión en Azure mediante el CLI de Azure, escriba:
az login
Creación de un grupo de recursos y un almacén de claves
En este inicio rápido se utiliza una bóveda de claves de Azure creada previamente. Puede crear un almacén de claves siguiendo los pasos descritos en estas guías rápidas:
- CLI de Azure inicio rápido
- Azure PowerShell inicio rápido
- Inicio rápido de Azure portal
Como alternativa, puede ejecutar estos comandos CLI de Azure o Azure PowerShell.
Importante
Cada almacén de claves debe tener un nombre único. Reemplace <vault-name> por el nombre del almacén de claves en los ejemplos siguientes.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<vault-name>" -g "myResourceGroup" --enable-rbac-authorization true
Llena tu bóveda de claves con un secreto
Vamos a crear un secreto llamado mySecret cuyo valor sea ¡Correcto! . Un secreto puede ser una contraseña, una cadena de conexión SQL o cualquier otra información que necesite para mantener la seguridad y la disponibilidad de la aplicación.
Para agregar un secreto al almacén de claves recién creado, use el comando siguiente:
az keyvault secret set --vault-name "<vault-name>" --name "mySecret" --value "Success!"
Creación de una máquina virtual
Crea una máquina virtual llamada myVM usando uno de los siguientes métodos:
| Linux | Windows |
|---|---|
| CLI de Azure | CLI de Azure |
| PowerShell | PowerShell |
| Azure portal | El portal de Azure |
Para crear una máquina virtual Linux mediante el CLI de Azure, use el comando az vm create. En el ejemplo siguiente se agrega una cuenta de usuario llamada azureuser. El parámetro --generate-ssh-keys se usa para generar automáticamente una clave SSH y colocarla en la ubicación de la clave predeterminada ( ~/.ssh).
az vm create \
--resource-group <resource-group> \
--name myVM \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys
Anote el valor de publicIpAddress en la salida.
Asignación de una identidad a la máquina virtual
Cree una identidad asignada por el sistema para la máquina virtual mediante el comando CLI de Azure az vm identity assign:
az vm identity assign --name "myVM" --resource-group "<resource-group>"
Tenga en cuenta la identidad asignada por el sistema que se muestra en el código siguiente. La salida del comando anterior sería:
{
"systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userAssignedIdentities": {}
}
Asignación de permisos a la identidad de máquina virtual
Para obtener permisos para la bóveda de claves a través del Control de Acceso Basado en Roles (RBAC), asigne un rol a su "Nombre Principal de Usuario" (UPN) utilizando el comando de CLI de 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>"
Reemplace <upn>, <subscription-id> y <vault-name> con sus valores reales. Si usó otro nombre de grupo de recursos, reemplace también "myResourceGroup". El UPN normalmente tendrá el formato de una dirección de correo electrónico (por ejemplo, username@domain.com).
Inicio de sesión en la máquina virtual
Para iniciar sesión en la máquina virtual, siga las instrucciones de Connect e inicie sesión en una máquina virtual de Azure que ejecuta Linux o Connect e inicie sesión en una máquina virtual de Azure que ejecuta Windows.
Para iniciar sesión en una máquina virtual Linux, puede usar el comando ssh con el <public-ip-address> especificado en el paso Creación de una máquina virtual :
ssh azureuser@<public-ip-address>
Instalación de bibliotecas de Python en la máquina virtual
En la máquina virtual, instale las dos bibliotecas de Python que usaremos en nuestro script de Python: azure-keyvault-secrets y azure-identity.
En una máquina virtual Linux, por ejemplo, se puede usar pip3 para instalarlas:
pip3 install azure-keyvault-secrets
pip3 install azure-identity
Creación y edición del script de Python de ejemplo
En la máquina virtual, cree un archivo de Python denominado sample.py. Edite el archivo para que contenga el código siguiente y reemplace <vault-name> por el nombre del almacén de claves:
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}'")
Ejecución de la aplicación de Python de ejemplo
Por último, ejecute sample.py. Si todo ha ido bien, debería devolver el valor de su secreto:
python3 sample.py
The value of secret 'mySecret' in '<vault-name>' is: 'Success!'
Limpieza de recursos
Cuando ya no sean necesarios, elimine la máquina virtual y el almacén de claves. Puede hacerlo rápidamente eliminando el grupo de recursos al que pertenecen:
az group delete -g "myResourceGroup"