Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Utiliser KMS pour chiffrer les Secrets Kubernetes

Dernière mise à jour :Aug 25, 2026

Protégez les Secrets au repos grâce au chiffrement par enveloppe du service Key Management Service (KMS) dans les clusters ACK Pro.

Prérequis

Assurez-vous de disposer des éléments suivants :

  • Une clé KMS située dans la même région que votre cluster ACK Pro. Les types pris en charge sont les clés par défaut, protégées par logiciel et protégées par matériel. Consultez les rubriques Prise en main des clés et Facturation.

  • Les autorisations nécessaires pour activer le chiffrement des Secrets :

Limites

  • Le chiffrement des Secrets est uniquement pris en charge sur les clusters ACK Pro et les clusters ACK Serverless Pro.

  • Après avoir activé le chiffrement des Secrets, ne désactivez ni ne supprimez la clé via l'API KMS ou la console. Si la clé devient indisponible, le serveur API ne peut plus récupérer les Secrets ni les objets de compte de service, ce qui entraîne des interruptions de service.

  • Pour désactiver le chiffrement des Secrets, désactivez l'option Secret Encryption dans l'onglet Basic Information du cluster.

Fonctionnement

ACK utilise le fournisseur KMS de Kubernetes avec un chiffrement par enveloppe pour protéger les Secrets dans etcd. Le Secret est chiffré à l'aide d'une clé de chiffrement de données (DEK), tandis que la DEK est elle-même chiffrée par une clé de chiffrement de clés (KEK) dans KMS. La DEK en clair n'est jamais stockée alongside les données qu'elle protège.

Chiffrement :

  1. Lorsque vous stockez un Secret, le serveur API génère une DEK aléatoire et chiffre le Secret avec celle-ci.

  2. Le serveur API envoie la DEK à KMS, qui la chiffre avec votre clé KMS (la KEK) et renvoie la DEK chiffrée.

  3. Le serveur API stocke à la fois le Secret chiffré et la DEK chiffrée dans etcd.

Déchiffrement :

  1. Le serveur API appelle l'opération Decrypt de KMS pour déchiffrer la DEK.

  2. Le serveur API utilise la DEK en clair pour déchiffrer le Secret et le renvoie à l'appelant.

Pour plus d'informations, consultez le fournisseur de chiffrement KMS et Utiliser le chiffrement par enveloppe.

KMS v2

À partir de Kubernetes 1.31, les clusters ACK Pro et les utilisent l'interface communautaire KMS v2 pour le chiffrement au repos. KMS v2 prend en charge un plus grand nombre d'instances de Secrets dans un cluster et offre de meilleures performances de chiffrement et de déchiffrement. Pour plus d'informations sur le flux de chiffrement et de déchiffrement de KMS v2, consultez KMS v2.

Pour passer de l'interface KMS v1 à l'interface KMS v2, consultez Comment mettre à niveau vers KMS v2 pour le chiffrement des Secrets au repos ?

Remarque

La communauté Kubernetes a marqué KMS v1 comme obsolète dans la version 1.27 et a désactivé l'interface v1 par défaut dans la version 1.29. Pour assurer la compatibilité, les clusters ACK Pro et les continuent d'activer l'interface v1 en définissant la feature gate KMS v1.

Activer le chiffrement au repos pour les Secrets

Nouveau cluster ACK Pro

  1. Connectez-vous à la console ACK et cliquez sur Clusters dans le volet de navigation de gauche.

  2. Sur la page Clusters , cliquez sur Cluster Templates. Sur la page Select Cluster Template , recherchez Professional Managed Kubernetes Cluster et cliquez sur Create.

  3. Dans l'onglet Managed Kubernetes , cliquez sur Show Advanced Options. Dans la section Secret Encryption , sélectionnez Select Key et choisissez une clé. Configurez les autres paramètres et cliquez sur Create Cluster. Consultez la rubrique Créer un cluster ACK Pro.

    Secret encryptionSecret encryption

Avertissement

Ne désactivez ni ne supprimez la clé KMS après avoir activé le chiffrement des Secrets. Si la clé devient indisponible, le serveur API ne peut plus récupérer les Secrets ni les objets de compte de service, ce qui entraîne des interruptions de service.

Vérification : Connectez-vous à la console ActionTrail . Cliquez sur Event Detail Query dans le volet de navigation. Si des opérations de chiffrement et de déchiffrement provenant du rôle aliyuncsmanagedsecurityrole apparaissent, le chiffrement des Secrets est actif.

Cluster ACK Pro existant

  1. Connectez-vous à la console ACK et cliquez sur Clusters dans le volet de navigation de gauche.

  2. Sur la page Clusters , cliquez sur le nom du cluster cible. Accédez à l'onglet Basic Information . Dans la section Security and Audit , activez l'option Secret Encryption . Si vous êtes invité à procéder à une autorisation, cliquez sur Go to RAM console , puis sur Confirm Authorization Policy .

    L'utilisateur ou le rôle RAM doit disposer du rôle RBAC d'administrateur ou d'ingénieur O&M sur le cluster. Pour attribuer le rôle AliyunCSManagedSecurityRole, connectez-vous avec un compte Alibaba Cloud ou une identité RAM disposant des autorisations de gestion RAM.
  3. Dans la boîte de dialogue Secret Encryption , sélectionnez une clé et cliquez sur OK . Si aucune clé n'est disponible, cliquez sur create keys dans la console KMS . Consultez la rubrique Créer une CMK . Lorsque l'état du cluster passe de Updating à Running , le chiffrement des Secrets est activé.

Avertissement

Ne désactivez ni ne supprimez la clé KMS après avoir activé le chiffrement des Secrets. Si la clé devient indisponible, le serveur API ne peut plus récupérer les Secrets ni les objets de compte de service, ce qui entraîne des interruptions de service.

Pour désactiver : Dans la section Security and Audit de la page des détails du cluster, désactivez l'option Secret Encryption .

Faire pivoter la clé de chiffrement

La rotation automatique des clés KMS chiffre les nouveaux Secrets avec la clé mise à jour. Les Secrets existants restent chiffrés avec la clé d'origine jusqu'à ce que vous les rechiffriez explicitement.

  • Rechiffrement manuel : Une fois la rotation terminée, rechiffrez tous les Secrets existants avec la nouvelle clé :

kubectl get secrets --all-namespaces -o json | kubectl annotate --overwrite -f - encryption-key-rotation-time="$(date -u +'%Y-%m-%dT%H:%M:%S%z')"

Consultez la rubrique Configurer la rotation des clés pour configurer la rotation automatique des clés.

FAQ

Comment mettre à niveau vers KMS v2 pour le chiffrement des Secrets au repos ?

Pour utiliser KMS v2 pour le chiffrement des Secrets au repos, assurez-vous que votre cluster ACK Pro ou votre est en version 1.31 ou ultérieure.

  • Si vous n'avez pas activé le chiffrement des Secrets au repos sur votre cluster, consultez Activer le chiffrement au repos pour les Secrets pour l'activer. Une fois le chiffrement activé, les Secrets du cluster sont automatiquement chiffrés à l'aide des API KMS v2 lors de leur écriture sur le disque et déchiffrés lors de leur lecture.

  • Si vous avez déjà activé le chiffrement des Secrets au repos sur votre cluster, vous pouvez faire pivoter la clé de chiffrement pendant les heures creuses en utilisant l'une des méthodes suivantes.

    • Méthode 1 : Exécutez la commande kubectl get secrets --all-namespaces -o json | kubectl replace -f - . Cette commande rechiffre tous les Secrets existants à l'aide de l'API KMS v2.

    • Méthode 2 : Connectez-vous à la console ACK . Sur la page Cluster Information , accédez à l'onglet Basic Information , recherchez l'option Secret Encryption et désactivez-la. Ce processus déclenche une rotation de clé pour tous les Secrets sur le disque. Après un certain temps, consultez Activer le chiffrement au repos pour les Secrets pour réactiver le chiffrement du cluster. Une fois le chiffrement réactivé, tous les Secrets du cluster sont rechiffrés au repos à l'aide de l'API KMS v2.

kubectl renvoie-t-il du texte chiffré après l'activation du chiffrement des Secrets ?

Non. Les Secrets sont stockés sous forme de texte chiffré dans etcd. Lorsqu'ils sont interrogés via kubectl, le serveur API les déchiffre avant de renvoyer les résultats, de sorte que kubectl affiche toujours le texte en clair.

Comment empêcher les utilisateurs ou rôles RAM d'activer ou de désactiver le chiffrement des Secrets pour les clusters ACK Serverless Pro existants ?

Joignez une stratégie de refus pour l'action cs:UpdateKMSEncryption aux utilisateurs ou rôles RAM. Consultez la rubrique Créer une stratégie RAM personnalisée .

{
    "Action": [
        "cs:UpdateKMSEncryption"
    ],
    "Effect": "Deny",
    "Resource": [
        "*"
    ]
}