Rotation des clés
La rotation des clés consiste à modifier le matériel de cryptographie sous-jacent contenu dans une clé de chiffrement de clé (KEK). Elle peut être déclenchée automatiquement dans le cadre d'une rotation planifiée, ou manuellement, généralement après un incident de sécurité où des clés ont pu être compromises. La rotation des clés ne remplace que le champ unique de la clé contenant les données brutes de la clé de chiffrement/déchiffrement.
Rotation automatique des clés
Le service de gestion des clés (KMS) AWS est compatible avec la rotation automatique des clés KMS. Lorsque cette option est activée, AWS génère automatiquement un nouveau matériel de clé cryptographique pour votre clé une fois par an. Aucune action manuelle n'est requise.
Après une rotation des clés, GKE sur AWS chiffre chaque nouveau secret à l'aide de la nouvelle clé. Tout secret précédemment créé est toujours déchiffré avec sa clé d'origine. Pour cette raison, AWS conserve indéfiniment les anciens éléments de clé de CMK, ce qui permet de déchiffrer les anciennes clés DEK.
Vous pouvez vérifier si la rotation automatique est activée pour une clé KMS à l'aide de la commande suivante :
aws kms get-key-rotation --key-id KMS_KEY_ID
Remplacez KMS_KEY_ID
par votre ID de clé KMS AWS.
Vous pouvez activer la rotation automatique des clés en exécutant la commande suivante :
aws kms enable-key-rotation --key-id KMS_KEY_ID
Rotation manuelle des clés
Cette section explique comment effectuer manuellement la rotation des clés de configuration de votre plan de contrôle ou de votre pool de nœuds.
Clé de configuration du plan de contrôle
Pour effectuer une rotation manuelle de votre clé de configuration du plan de contrôle, procédez comme suit :
Créez une nouvelle clé Cloud Key Management Service. Enregistrez la valeur ARN de votre clé KMS. vous en aurez besoin ultérieurement.
Assurez-vous que le rôle IAM associé au cluster dispose des autorisations nécessaires pour chiffrer et déchiffrer des données à l'aide de la nouvelle clé.
Exécutez la commande
gcloud container aws clusters update
pour mettre à jour la clé de chiffrement.gcloud container aws clusters update CLUSTER_NAME \ --location=GOOGLE_CLOUD_LOCATION \ --config-encryption-kms-key-arn=CONFIG_ENCRYPTION_KMS_KEY_ARN
Remplacez les éléments suivants :
CLUSTER_NAME
: nom de votre cluster.GOOGLE_CLOUD_LOCATION
: région Google Cloud compatible qui gère votre cluster (par exemple,us-west1
)CONFIG_ENCRYPTION_KMS_KEY_ARN
: votre nouvel ARN de clé KMS
Volume racine du plan de contrôle
Pour effectuer manuellement la rotation de la clé du volume racine du plan de contrôle, procédez comme suit :
Créez une nouvelle clé Cloud Key Management Service. Enregistrez la valeur ARN de votre clé KMS. vous en aurez besoin ultérieurement.
Assurez-vous que le rôle IAM associé au cluster dispose des autorisations nécessaires pour chiffrer et déchiffrer des données à l'aide de la nouvelle clé.
Exécutez la commande
gcloud container aws clusters update
pour mettre à jour la clé de chiffrement.gcloud container aws clusters update CLUSTER_NAME \ --location=GOOGLE_CLOUD_LOCATION \ --root-volume-kms-key-arn=ROOT_VOLUME_KMS_KEY_ARN
Remplacez les éléments suivants :
CLUSTER_NAME
: nom de votre cluster.GOOGLE_CLOUD_LOCATION
: région Google Cloud compatible qui gère votre cluster (par exemple,us-west1
)ROOT_VOLUME_KMS_KEY_ARN
: nom de ressource Amazon (ARN) de la clé KMS AWS qui chiffre le volume racine
Clé de configuration du pool de nœuds
Pour effectuer une rotation manuelle de votre clé de configuration du pool de nœuds, procédez comme suit :
Assurez-vous que le rôle IAM associé au cluster dispose des autorisations nécessaires pour chiffrer et déchiffrer des données à l'aide de la nouvelle clé.
Mettez à jour l'alias KMS utilisé :
aws kms update-alias --alias-name KEY_ALIAS \ --target-key-id CONFIG_ENCRYPTION_KMS_KEY_ARN
Remplacez les éléments suivants :
KEY_ALIAS
: alias de votre clé existanteCONFIG_ENCRYPTION_KMS_KEY_ARN
: votre nouvel ARN de clé KMS
Forcez le cluster à rechiffrer tous les secrets du cluster à l'aide de la nouvelle clé de chiffrement :
kubectl get secrets --all-namespaces -o json | \ kubectl annotate --overwrite -f - encryption-key-rotation-time=`date +"%Y%m%d-%H%M%S"`
Désactivez l'ancienne clé KMS AWS. Pour en savoir plus, consultez la section Activer et désactiver des clés.
Volumes racines du pool de nœuds
Pour effectuer une rotation manuelle de la clé du volume racine du pool de nœuds, procédez comme suit :
Assurez-vous que le rôle IAM associé au cluster dispose des autorisations nécessaires pour chiffrer et déchiffrer des données à l'aide de la nouvelle clé.
Mettez à jour l'alias KMS utilisé :
aws kms update-alias --alias-name KEY_ALIAS \ --target-key-id ROOT_VOLUME_KMS_KEY_ARN
Remplacez les éléments suivants :
KEY_ALIAS
: alias de votre clé existanteROOT_ENCRYPTION_KMS_KEY_ARN
: votre nouvel ARN de clé KMS
Mettez à jour votre pool de nœuds :
gcloud container aws node-pools update NODE_POOL_NAME \ --root-volume-kms-key-arn=ROOT_VOLUME_KMS_KEY_ARN
Remplacez les éléments suivants :
NODE_POOL_NAME
: nom de votre pool de nœuds.ROOT_VOLUME_KMS_KEY_ARN
: nom de ressource Amazon (ARN) de la clé KMS AWS qui chiffre le volume racine
Désactivez l'ancienne clé KMS AWS. Pour en savoir plus, consultez la section Activer et désactiver des clés.