Azure key vault - lucaszub/fastapi-azure-auth GitHub Wiki

Utilisation d'Azure Key Vault pour la Gestion des Secrets

Ce document vous guide dans la configuration et l'utilisation d'Azure Key Vault pour sécuriser vos secrets (comme les informations de connexion à une base de données ou des clés d'API).

Prérequis

  1. Azure CLI : Assurez-vous que l'Azure CLI est installé et connecté à votre compte Azure.
    az login
    
  2. Un groupe de ressources existant : Par exemple, auth-fastapi-template.
  3. Un abonnement Azure valide.

Étapes pour configurer Azure Key Vault

1. Création du Key Vault

Exécutez la commande suivante pour créer un Key Vault dans votre groupe de ressources :

az keyvault create --name "lucaskeyvaultname" --resource-group "auth-fastapi-template" --location "francecentral"
  • --name : Le nom unique de votre Key Vault (par exemple, lucaskeyvaultname).
  • --resource-group : Le groupe de ressources où vous souhaitez créer le Key Vault.
  • --location : La région Azure (égale à francecentral ici).

Vérifiez que le Key Vault a été créé en listant les ressources du groupe :

az resource list --resource-group auth-fastapi-template --output table

2. Attribution d'un rôle au Key Vault

Pour permettre à un utilisateur ou à une application d'accéder au Key Vault, attribuez-lui le rôle Key Vault Secrets Officer :

az role assignment create --role "Key Vault Secrets Officer" \
  --assignee "[email protected]" \
  --scope "/subscriptions/your-subscription-id/resourceGroups/auth-fastapi-template/providers/Microsoft.KeyVault/vaults/yourkeyvaultname"

  • --role : Le rôle à attribuer.
  • --assignee : L'identifiant de l'utilisateur ou de l'application.
  • --scope : Le chemin d'accès au Key Vault.

Si vous ne connaissez pas l'UPN (User Principal Name) de l'utilisateur, listez les utilisateurs Azure Active Directory :

az ad user list --query "[].{Name:displayName, Email:userPrincipalName}" -o table

3. Ajout de Secrets au Key Vault

Ajoutez des secrets au Key Vault avec la commande suivante :

az keyvault secret set --vault-name "lucaskeyvaultname" --name "MySecretName" --value "MySecretValue"
  • --vault-name : Le nom du Key Vault.
  • --name : Le nom du secret.
  • --value : La valeur du secret.

4. Récupération de Secrets depuis le Key Vault

Pour récupérer un secret, utilisez la commande suivante :

az keyvault secret show --vault-name "lucaskeyvaultname" --name "MySecretName" --query value -o tsv

5. Gestion des Secrets dans une Application Python

Dans votre application Python, utilisez la bibliothèque azure-identity et azure-keyvault-secrets pour accéder au Key Vault.

Installez les bibliothèques nécessaires :

pip install azure-identity azure-keyvault-secrets

Exemple de code :

from azure.identity import DefaultAzureCredential
from azure.keyvault.secrets import SecretClient

# Remplacez par le nom de votre Key Vault
key_vault_name = "lucaskeyvaultname"
KVUri = f"https://{key_vault_name}.vault.azure.net"

# Création d'un client pour accéder au Key Vault
credential = DefaultAzureCredential()
client = SecretClient(vault_url=KVUri, credential=credential)

# Récupération d'un secret
retrieved_secret = client.get_secret("MySecretName")
print(f"Le secret est : {retrieved_secret.value}")

Dépannage

Erreur : The Resource 'Microsoft.KeyVault/vaults/...' was not found

  • Assurez-vous que le Key Vault a été créé dans le bon groupe de ressources.
  • Listez les Key Vaults disponibles :
    az keyvault list --output table
    

Erreur : Cannot find user or service principal in graph database

  • Assurez-vous que l'UPN est correct. Listez les utilisateurs avec :
    az ad user list --query "[].{Name:displayName, Email:userPrincipalName}" -o table
    

Avec ce guide, vous pouvez configurer et utiliser Azure Key Vault pour gérer vos secrets de manière sécurisée.