Utiliser le fournisseur Azure Key Vault pour le pilote CSI du magasin de secrets dans un cluster Azure Kubernetes Service (AKS)

Le fournisseur Azure Key Vault pour le pilote CSI du magasin des secrets permet d’intégrer un coffre de clés Azure Key Vault en tant que magasin des secrets à un cluster AKS (Azure Kubernetes Service) via un volume CSI.

Fonctionnalités

  • Monte les secrets, les clés et les certificats dans un pod à l’aide d’un volume CSI.
  • Prend en charge les volumes CSI inline.
  • Prend en charge le montage de plusieurs objets de stockage de secrets en tant que volume unique.
  • Prend en charge la portabilité de pod avec le CRD SecretProviderClass.
  • Prend en charge les conteneurs Windows.
  • Se synchronise avec les secrets Kubernetes.
  • Prend en charge la rotation automatique du contenu et des secrets Kubernetes synchronisés montés.

Limites

Un conteneur utilisant le montage de volume subPath ne reçoit pas de mises à jour secrètes lorsqu’il est pivoté. Pour plus d’informations, consultez Limitations connues du pilote CSI du magasin de secrets.

Prérequis

Créer un cluster AKS avec le fournisseur Azure Key Vault pour la prise en charge du pilote CSI du magasin de secrets

  1. Créez un groupe de ressources Azure à l’aide de la commande az group create.

    az group create -n myResourceGroup -l eastus2
    
  2. Créer un cluster AKS avec la fonctionnalité de fournisseur Azure Key Vault pour le pilote CSI du magasin de secrets en utilisant la commande az aks create et activer le module complémentaire azure-keyvault-secrets-provider.

    Remarque

    Si vous souhaitez utiliser Microsoft Entra Workload ID, vous devez également utiliser les paramètres --enable-oidc-issuer et --enable-workload-identity, comme dans l’exemple suivant :

    az aks create -n myAKSCluster -g myResourceGroup --enable-addons azure-keyvault-secrets-provider --enable-oidc-issuer --enable-workload-identity
    
    az aks create -n myAKSCluster -g myResourceGroup --enable-addons azure-keyvault-secrets-provider
    
  3. Le module complémentaire crée une identité managée affectée par l’utilisateur azureKeyvaultSecretsProvider pour accéder aux ressources Azure. L’exemple suivant utilise cette identité pour se connecter au coffre de clés qui stocke les secrets, mais vous pouvez également utiliser d’autres mécanismes d’accès des identités. Prenez note de l’clientId de l’identité dans la sortie.

    ...,
     "addonProfiles": {
        "azureKeyvaultSecretsProvider": {
          ...,
          "identity": {
            "clientId": "<client-id>",
            ...
          }
        }
    

Remarque

Après avoir activé cette fonctionnalité, AKS crée un identity named azurekeyvaultsecretsprovider-xxx géré dans le groupe de ressources du nœud et l’affecte automatiquement aux groupes de machines virtuelles identiques (VMSS). Vous pouvez utiliser cette identité managée ou votre identité managée pour accéder au coffre de clés. Cela n’est pas pris en charge pour empêcher la création de l’identité.

Mettre à niveau un cluster AKS existant avec la prise en charge du fournisseur Azure Key Vault pour le pilote CSI du magasin de secrets

  • Mettre à niveau un cluster AKS existant avec la fonctionnalité de fournisseur Azure Key Vault pour le pilote CSI du magasin de secrets en utilisant la commande az aks enable-addons et activer le module complémentaire azure-keyvault-secrets-provider. Le module complémentaire crée une identité gérée affectée par l’utilisateur, que vous pouvez utiliser pour vous authentifier auprès de votre coffre de clés.

    az aks enable-addons --addons azure-keyvault-secrets-provider --name myAKSCluster --resource-group myResourceGroup
    

Remarque

Après avoir activé cette fonctionnalité, AKS crée un identity named azurekeyvaultsecretsprovider-xxx géré dans le groupe de ressources du nœud et l’affecte automatiquement aux groupes de machines virtuelles identiques (VMSS). Vous pouvez utiliser cette identité managée ou votre identité managée pour accéder au coffre de clés. Cela n’est pas pris en charge pour empêcher la création de l’identité.

Vérifier l’installation du fournisseur Azure Key Vault pour le pilote CSI du magasin de secrets

  1. Vérifier que l’installation est terminée à l’aide de la commande kubectl get pods, qui répertorie tous les pods avec les étiquettes secrets-store-csi-driver et secrets-store-provider-azure dans l’espace de noms kube-system.

    kubectl get pods -n kube-system -l 'app in (secrets-store-csi-driver,secrets-store-provider-azure)'
    

    Vous devez obtenir un résultat semblable à l’exemple de sortie qui suit :

    NAME                                     READY   STATUS    RESTARTS   AGE
    aks-secrets-store-csi-driver-4vpkj       3/3     Running   2          4m25s
    aks-secrets-store-csi-driver-ctjq6       3/3     Running   2          4m21s
    aks-secrets-store-csi-driver-tlvlq       3/3     Running   2          4m24s
    aks-secrets-store-provider-azure-5p4nb   1/1     Running   0          4m21s
    aks-secrets-store-provider-azure-6pqmv   1/1     Running   0          4m24s
    aks-secrets-store-provider-azure-f5qlm   1/1     Running   0          4m25s
    
  2. Vérifiez que chaque nœud du pool de nœuds de votre cluster a un pod pilote CSI Du magasin de secrets et un pod Azure du fournisseur de magasin de secrets en cours d’exécution.

Créer ou utiliser un Azure Key Vault existant

  1. Créez ou mettez à jour un coffre de clés avec le contrôle d’accès en fonction du rôle Azure (Azure RBAC) activé à l’aide de la commande az keyvault create ou de la commande az keyvault update avec l’indicateur --enable-rbac-authorization. Le nom du coffre de clés doit être globalement unique. Pour plus d’informations sur les modèles d’autorisation de coffre de clés et Azure RBAC, consultez Attribution de l’accès aux clés, certificats et secrets Key Vault avec un contrôle d’accès en fonction du rôle Azure

    ## Create a new Azure key vault
    az keyvault create -n <keyvault-name> -g myResourceGroup -l eastus2 --enable-rbac-authorization
    
    ## Update an existing Azure key vault
    az keyvault update -n <keyvault-name> -g myResourceGroup -l eastus2 --enable-rbac-authorization
    
  2. Votre coffre de clés peut stocker des clés, des secrets et des certificats. Dans cet exemple, utilisez la commandeaz keyvault secret set pour définir un secret de texte brut appelé ExampleSecret.

    az keyvault secret set --vault-name <keyvault-name> -n ExampleSecret --value MyAKSExampleSecret
    
  3. Notez les propriétés suivantes pour une utilisation ultérieure :

    • Nom de l’objet secret dans le coffre de clés
    • Type d’objet (secret, clé ou certificat)
    • Le nom de votre ressource de coffre de clés
    • ID de locataire Azure de l’abonnement

Étapes suivantes

Dans cet article, vous avez appris à utiliser le pilote CSI du fournisseur Azure Key Vault pour le magasin de secrets dans un cluster AKS. Vous devez désormais fournir une identité pour accéder à l’Azure Key Vault. Pour savoir comment, passez à l’article suivant.