Cette page explique comment effectuer la rotation des clés de chiffrement du disque de démarrage etcd et du plan de contrôle que vous avez configurées pour l'autorité du plan de contrôle GKE. Ce document est destiné aux administrateurs de cluster et aux ingénieurs en sécurité.
Avant de lire ce document, familiarisez-vous avec les concepts suivants de l'autorité du plan de contrôle GKE :
Planifier les rotations de clés
Ce document explique comment effectuer la rotation des composants d'identifiants suivants dans votre plan de contrôle :
- La clé de chiffrement pour etcd et les disques de démarrage du plan de contrôle.
- La clé de chiffrement pour la sauvegarde interne etcd qui Google Cloud utilise pour la reprise après sinistre.
Vous pouvez également effectuer la rotation des autorités de certification (CA) gérées par le client et des clés de signature de compte de service que vous configurez avec l'autorité du plan de contrôle GKE. Pour en savoir plus, consultez Effectuer la rotation des CA et des clés de signature du plan de contrôle gérées par le client.
Les clés de Cloud Key Management Service (Cloud KMS) n'expirent pas. Si votre organisation a une exigence de sécurité concernant la rotation des clés, effectuez-la manuellement. Pour minimiser les interruptions des charges de travail en cours d'exécution, ne configurez pas la rotation automatique des clés pour ces clés.
Lorsque vous effectuez la rotation des clés de chiffrement pour vos disques de démarrage du plan de contrôle et etcd, GKE crée un disque chiffré à l'aide de la nouvelle clé. Pour les clusters régionaux, cette opération n'entraîne aucun temps d'arrêt en raison du plan de contrôle répliqué. Pour les clusters zonaux, le plan de contrôle devient indisponible jusqu'à ce que le nouveau disque soit disponible.
Avant de commencer
Avant de commencer, effectuez les tâches suivantes :
- Activez l'API Google Kubernetes Engine. Activer l'API Google Kubernetes Engine
- Si vous souhaitez utiliser Google Cloud CLI pour cette tâche,
installez puis
initialisez la
gcloud CLI. Si vous avez déjà installé la gcloud CLI, obtenez la dernière
version en exécutant la
gcloud components updatecommande. Il est possible que les versions antérieures de la gcloud CLI ne permettent pas d'exécuter les commandes de ce document.
Disposez d'un cluster existant qui utilise le disque de démarrage du plan de contrôle et le chiffrement etcd et qui exécute GKE version 1.35.2-gke.1842000 ou ultérieure.
Identifiez les ID de projet des projets suivants Google Cloud :
- Projet de clé : projet contenant vos ressources Cloud KMS
- Projet de cluster : projet contenant votre cluster GKE.
Pour effectuer les tâches de validation décrites dans ce document, vérifiez que le journal d'audit d'accès aux données
DATA_READest activé pour l'API Cloud Key Management Service (KMS). Pour en savoir plus, consultez Activer les journaux d'audit d'accès aux données.
Rôles et autorisations requis
Pour obtenir les autorisations nécessaires pour effectuer la rotation de vos CA et clés gérées par le client, demandez à votre administrateur de vous accorder les rôles IAM suivants :
-
Gérer les clés ou les versions de clés:
administrateur Cloud KMS (
roles/cloudkms.admin) sur votre projet de clé -
Configurer des clusters pour utiliser de nouvelles clés:
administrateur de cluster Kubernetes Engine (
roles/container.clusterAdmin) sur votre projet de cluster
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
Limites
Vous pouvez mettre à jour vos clusters vers de nouvelles versions de clés existantes, mais vous ne pouvez pas les mettre à jour pour qu'ils utilisent des clés entièrement nouvelles pour ces opérations de chiffrement.
Attribuer des rôles IAM à l'agent de service GKE
Pour effectuer la rotation de vos clés de chiffrement pour les disques de démarrage et etcd, attribuez le
rôle Utilisateur de clé cryptographique KMS Kubernetes Engine
(roles/container.cloudKmsKeyUser) sur les clés de chiffrement de votre projet de clé à l'agent de service GKE de votre projet de cluster :
gcloud kms keys add-iam-policy-binding KCP_DISK_KEY_NAME \
--keyring=KEYRING_NAME \
--location=LOCATION \
--member="serviceAccount:service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \
--role=roles/container.cloudKmsKeyUser \
--project=KEY_PROJECT_ID
Remplacez les éléments suivants :
KCP_DISK_KEY_NAME: nom de la clé de chiffrement pour vos disques de démarrage du plan de contrôle et vos disques etcd.KEYRING_NAME: nom du trousseau de clés contenant la clé.LOCATION: emplacement du trousseau de clés. Google Cloud Il doit être identique à l'emplacement de votre cluster. Pour obtenir la liste des régions, filtrez sur "Région" dans le tableau des emplacements Cloud KMS.CLUSTER_PROJECT_NUMBER: numéro de projet numérique du projet de cluster.KEY_PROJECT_ID: ID de projet de votre projet de clé.
Effectuer la rotation de la clé pour etcd et les disques de démarrage du plan de contrôle
Créez une version de clé primaire pour le disque de démarrage et la clé de chiffrement etcd :
gcloud kms keys versions create \ --key=KCP_DISK_KEY_NAME \ --keyring=KEYRING_NAME \ --location=LOCATION \ --project=KEY_PROJECT_ID \ --primaryLa propagation des modifications dans le projet peut prendre jusqu'à 10 minutes.
Recherchez la version de correctif actuelle du plan de contrôle du cluster :
gcloud container clusters describe CLUSTER_NAME \ --location=LOCATION \ --format='value(currentMasterVersion)'Remplacez les éléments suivants :
CLUSTER_NAME: nom de votre cluster GKE.LOCATION: emplacement du plan de contrôle du cluster GKE, tel queus-central1.
Mettez à niveau le plan de contrôle du cluster vers la même version qu'il utilise déjà.
gcloud container clusters upgrade CLUSTER_NAME \ --master \ --location=LOCATION \ --cluster-version=CONTROL_PLANE_VERSION \ --project=CLUSTER_PROJECT_IDRemplacez les éléments suivants :
CONTROL_PLANE_VERSION: version du plan de contrôle du cluster à partir de la sortie de l'étape précédente.CLUSTER_PROJECT_ID: ID de projet de votre projet de cluster.
Une fois l'opération de mise à niveau du plan de contrôle terminée, le cluster utilise la nouvelle version de clé pour chiffrer vos disques de démarrage du plan de contrôle et tous les disques etcd.
Effectuer la rotation de la clé de chiffrement de la sauvegarde interne etcd
Cette section explique comment effectuer la rotation de la clé de chiffrement de la sauvegarde interne etcd, qui Google Cloud est utilisée à des fins de reprise après sinistre. Vous pouvez configurer la rotation automatique pour cette clé, mais nous vous recommandons d'effectuer une rotation manuelle. Une fois la rotation de la clé effectuée, le cluster utilise la nouvelle version de clé pour chiffrer les nouvelles sauvegardes internes etcd.
Les sauvegardes internes etcd utilisent la version de clé primaire et se produisent aux intervalles suivants :
- Toutes les 30 minutes pour les clusters zonaux.
- Toutes les 10 minutes pour les clusters Autopilot et les clusters Standard régionaux.
Une fois la rotation de la clé effectuée, ne désactivez ni ne détruisez immédiatement la version de clé précédente. Attendez que GKE ait créé de nouvelles sauvegardes internes etcd qui utilisent la nouvelle version de clé.
Créez une version de clé primaire pour la clé de chiffrement de la sauvegarde interne etcd :
gcloud kms keys versions create \ --key=ETCD_BACKUP_KEY_NAME \ --keyring=KEYRING_NAME \ --location=LOCATION \ --project=KEY_PROJECT_ID \ --primaryRemplacez les éléments suivants :
ETCD_BACKUP_KEY_NAME: nom de la clé de chiffrement de la sauvegarde interne etcd.KEYRING_NAME: nom du trousseau de clés contenant la clé.LOCATION: emplacement du trousseau de clés. Google Cloud Il doit être identique à l'emplacement de votre cluster. Pour obtenir la liste des régions, filtrez sur "Région" dans le tableau des emplacements Cloud KMS.KEY_PROJECT_ID: ID de projet de votre projet de clé.
Étape suivante
- Effectuer la rotation des CA et des clés du plan de contrôle gérées par le client
- Vérifier l'émission et l'utilisation des identités