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
- Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
- Vérifiez que votre version d’Azure CLI est 2.30.0 ou ultérieure. S’il s’agit d’une version antérieure, Installez la version la plus récente.
- Si vous limitez l’entrée dans le cluster, vérifiez que les ports 9808 et 8095 sont ouverts.
- La version Kubernetes minimale recommandée est basée sur la fenêtre mobile de prise en charge des versions Kubernetes. Vérifier que vous exécutez la version N-2 ou une version ultérieure.
Créer un cluster AKS avec le fournisseur Azure Key Vault pour la prise en charge du pilote CSI du magasin de secrets
Créez un groupe de ressources Azure à l’aide de la commande
az group create
.az group create --name myResourceGroup --location eastus2
Créez un cluster AKS avec la fonctionnalité du fournisseur Azure Key Vault pour le pilote CSI du magasin de secrets en utilisant la commande
az aks create
avec le paramètre--enable-addons 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. L’exemple suivant crée un cluster AKS avec le fournisseur Azure Key Vault pour le pilote CSI du magasin de secrets activé.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 --name myAKSCluster --resource-group myResourceGroup --enable-addons azure-keyvault-secrets-provider --enable-oidc-issuer --enable-workload-identity --generate-ssh-keys
az aks create \ --name myAKSCluster \ --resource-group myResourceGroup \ --enable-addons azure-keyvault-secrets-provider \ --generate-ssh-keys
La commande précédente 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 une identité managée azurekeyvaultsecretsprovider-xxx
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émentaireazure-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 une identité managée azurekeyvaultsecretsprovider-xxx
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
Tout d’abord, obtenez les informations d’identification du cluster AKS à l’aide de la commande [
az aks get-credentials
][az-aks-get-credentials].az aks get-credentials --name myAKSCluster --resource-group myResourceGroup
Vérifier que l’installation est terminée à l’aide de la commande
kubectl get pods
, qui répertorie tous les pods avec les étiquettessecrets-store-csi-driver
etsecrets-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
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
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 commandeaz 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 --name <keyvault-name> --resource-group myResourceGroup --location eastus2 --enable-rbac-authorization ## Update an existing Azure key vault az keyvault update --name <keyvault-name> --resource-group myResourceGroup --location eastus2 --enable-rbac-authorization
Votre coffre de clés peut stocker des clés, des secrets et des certificats. Dans cet exemple, utilisez la commande
az keyvault secret set
pour définir un secret de texte brut appeléExampleSecret
.az keyvault secret set --vault-name <keyvault-name> --name ExampleSecret --value MyAKSExampleSecret
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.
Azure Kubernetes Service