Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Azure Key Vault vous aide à protéger les clés, les secrets et les certificats, tels que les clés API et les chaînes de connexion de base de données.
Dans ce tutoriel, vous allez configurer une application Python pour lire des informations à partir de Azure Key Vault à l’aide d’identités managées pour Azure ressources. Vous apprenez à :
- Créer un coffre de clés
- Stocker un secret dans Key Vault
- Créer une machine virtuelle Linux Azure
- Activer une identité managée pour la machine virtuelle
- Accordez les autorisations requises pour l’application console pour lire des données à partir de Key Vault
- Récupérer un secret à partir de Key Vault
Avant de commencer, lisez Key Vault concepts de base.
Si vous n'avez pas d'abonnement Azure, créez un compte free.
Conditions préalables
Pour Windows, Mac et Linux :
- Git
- Ce didacticiel nécessite l’exécution du Azure CLI localement. Vous devez disposer d’une version récente du Azure CLI installé. Exécutez
az --versionpour trouver la version. Si vous devez installer ou mettre à niveau l’interface CLI, consultez Installer Azure CLI.
Connectez-vous à Azure
Pour vous connecter à Azure à l’aide du Azure CLI, entrez :
az login
Créer un groupe de ressources et un coffre de clés
Ce guide de prise en main rapide s’appuie sur un Key Vault Azure déjà configuré. Vous pouvez créer un coffre de clés en suivant les étapes décrites dans ces démarrage rapides :
- démarrage rapide Azure CLI
- démarrage rapide Azure PowerShell
- démarrage rapide du portail Azure
Vous pouvez également exécuter ces commandes Azure CLI ou Azure PowerShell.
Important
Chaque coffre de clés doit avoir un nom unique. Remplacez <vault-name> par le nom de votre coffre de clés dans les exemples suivants.
az group create --name "myResourceGroup" -l "EastUS"
az keyvault create --name "<vault-name>" -g "myResourceGroup" --enable-rbac-authorization true
Remplir votre coffre de clés avec un secret
Créons un secret appelé mySecret, avec la valeur Success !. Un secret peut être un mot de passe, un chaîne de connexion SQL ou toute autre information dont vous avez besoin pour assurer la sécurité et la disponibilité de votre application.
Pour ajouter un secret au coffre de clés que vous venez de créer, utilisez la commande suivante :
az keyvault secret set --vault-name "<vault-name>" --name "mySecret" --value "Success!"
Créer une machine virtuelle
Créez une machine virtuelle appelée myVM à l’aide de l’une des méthodes suivantes :
| Linux | Windows |
|---|---|
| Azure CLI | Azure CLI |
| PowerShell | PowerShell |
| portail Azure | Le portail Azure |
Pour créer une machine virtuelle Linux à l’aide du Azure CLI, utilisez la commande az vm create. L’exemple suivant ajoute un compte d’utilisateur nommé azureuser. Le --generate-ssh-keys paramètre est utilisé pour générer automatiquement une clé SSH et le placer à l’emplacement de la clé par défaut (~/.ssh).
az vm create \
--resource-group <resource-group> \
--name myVM \
--image Ubuntu2204 \
--admin-username azureuser \
--generate-ssh-keys
Notez la valeur de publicIpAddress dans la sortie.
Affecter une identité à la machine virtuelle
Créez une identité affectée par le système pour la machine virtuelle à l’aide de la commande Azure CLI az vm identity assign :
az vm identity assign --name "myVM" --resource-group "<resource-group>"
Notez l'identité attribuée par le système qui est affichée dans le code suivant. La sortie de la commande ci-dessus doit être la suivante :
{
"systemAssignedIdentity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"userAssignedIdentities": {}
}
Attribuer des autorisations à l’identité de machine virtuelle
Pour obtenir des autorisations sur votre coffre de clés via Role-Based Access Control (RBAC), attribuez un rôle à votre nom d’utilisateur principal (UPN) à l’aide de la commande Azure CLI 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>"
Remplacez <upn>, <subscription-id>et <vault-name> par vos valeurs réelles. Si vous avez utilisé un autre nom de groupe de ressources, remplacez également « myResourceGroup ». Votre nom d’utilisateur principal (UPN) se présente généralement sous la forme d’une adresse électronique (par exemple username@domain.com).
Se connecter à la machine virtuelle
Pour vous connecter à la machine virtuelle, suivez les instructions de Connect et connectez-vous à une machine virtuelle Azure exécutant Linux ou Connect et connectez-vous à une machine virtuelle Azure exécutant Windows.
Pour vous connecter à une machine virtuelle Linux, vous pouvez utiliser la commande ssh avec la <public-ip-address> commande donnée à l’étape Créer une machine virtuelle :
ssh azureuser@<public-ip-address>
Installer des bibliothèques Python sur la machine virtuelle
Sur la machine virtuelle, installez les deux bibliothèques Python que nous utiliserons dans notre script Python : azure-keyvault-secrets et azure-identity.
Sur une machine virtuelle Linux, par exemple, vous pouvez les installer à l’aide de pip3 :
pip3 install azure-keyvault-secrets
pip3 install azure-identity
Créer et modifier l’exemple de script Python
Sur la machine virtuelle, créez un fichier Python appelé sample.py. Modifiez le fichier pour contenir le code suivant, en remplaçant <vault-name> par le nom de votre coffre de clés :
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}'")
Exécuter l’exemple d’application Python
Enfin, exécutez sample.py. Si tout s’est bien passé, la valeur de votre secret doit être retournée :
python3 sample.py
The value of secret 'mySecret' in '<vault-name>' is: 'Success!'
Nettoyer les ressources
Quand ils ne sont plus nécessaires, supprimez la machine virtuelle et le coffre de clés. Vous pouvez le faire rapidement en supprimant le groupe de ressources auquel ils appartiennent :
az group delete -g "myResourceGroup"