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.
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 permutation automatique du contenu monté et des secrets Kubernetes synchronisés.
Limites
- Un conteneur utilisant un
ConfigMapouSecreten tant que montage de volumesubPathne reçoit pas de mises à jour automatisées lorsque le secret est renouvelé. Il s’agit d’une limitation Kubernetes. Pour que les modifications prennent effet, l’application doit recharger le fichier modifié en regardant les modifications dans le système de fichiers ou en redémarrant le pod. Pour plus d’informations, consultez Limitations connues du pilote CSI du magasin de secrets. - Le module complémentaire crée une identité managée nommée
azurekeyvaultsecretsprovider-xxxdans le groupe de ressources de 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é.
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.
Réseau
- Si vous utilisez des clusters isolés réseau, il est recommandé de configurer un point de terminaison privé pour accéder à Azure Key Vault.
- Si le cluster a un type
userDefinedRoutingsortant et utilise un appareil pare-feu capable de contrôler le trafic sortant en fonction des noms de domaine, tel que le Pare-feu Azure, assurez-vous que les règles réseau sortantes requises et les FQDN sont autorisés. - Si vous limitez l’entrée dans le cluster, vérifiez que les ports 9808 et 8095 sont ouverts.
Rôles
- Identité utilisée avec les besoins de
SecretProviderClassqueKey Vault Certificate Useraccède àkeyou auxcertificatetypes d’objets. - Identité utilisée avec les besoins de
SecretProviderClassqueKey Vault Secrets Useraccède ausecrettype d’objet.
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 eastus2Cré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 createavec 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-issueret--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-keysaz aks create \ --name myAKSCluster \ --resource-group myResourceGroup \ --enable-addons azure-keyvault-secrets-provider \ --generate-ssh-keysLa 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’clientIdde 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-addonset 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
Obtenez les informations d’identification du cluster AKS à l’aide de la commande
az aks get-credentials.az aks get-credentials --name myAKSCluster --resource-group myResourceGroupVé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-driveretsecrets-store-provider-azuredans 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 4m25sVé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 createou de la commandeaz keyvault updateavec 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-authorizationVotre coffre de clés peut stocker des clés, des secrets et des certificats. Dans cet exemple, utilisez la commande
az keyvault secret setpour définir un secret de texte brut appeléExampleSecret.az keyvault secret set --vault-name <keyvault-name> --name ExampleSecret --value MyAKSExampleSecretNotez 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.