Ce document explique comment effectuer la rotation d'une clé racine. Si votre clé racine est compromise ou si vous choisissez d'effectuer une rotation périodique des clés racines pour renforcer la sécurité, vous pouvez effectuer une rotation de vos clés vers une nouvelle clé racine à l'aide de la ressource RotationJob.
La rotation d'une clé racine crée une clé racine, qui devient la clé primaire et encapsule toutes les clés non racines. Vous ne pouvez pas supprimer une clé racine. La rotation est le seul moyen de la remplacer. Pour en savoir plus sur les clés racine, consultez Types de clés racine.
Pour en savoir plus sur l'API KMS, consultez la présentation de l'API KMS et l'API KRM Key Management Service pour afficher la définition complète de l'API.
Avant de commencer
Avant d'effectuer la rotation d'une clé racine, vous devez disposer des autorisations nécessaires et préparer votre environnement.
Demander des rôles IAM
Pour effectuer une rotation des clés, contactez l'administrateur de l'organisation IAM pour demander le rôle Administrateur de job de rotation KMS (kms-rotationjob-admin).
Préparer votre environnement
Téléchargez et installez la CLI gdcloud, si ce n'est pas déjà fait.
Générez un fichier kubeconfig pour configurer l'accès à
kubectl.
Effectuer la rotation d'une clé racine
Pour effectuer la rotation d'une clé racine, vous devez d'abord identifier le nom de ressource de la clé racine utilisée. Pour trouver ces informations, examinez n'importe quelle ressource AEADKey de votre projet, car toutes ces clés sont protégées par la même clé racine.
Créez une clé racine et effectuez une rotation de vos clés :
Répertoriez les ressources
AEADKeyde votre projet :kubectl get AEADKey -n PROJECTRemplacez
PROJECTpar le nom de l'espace de noms de votre projet.Dans le résultat, notez le nom de n'importe quel
AEADKey.Récupérez les
ROOT_KEY_RESOURCE_NAMEà partir deAEADKey. La commande suivante extrait et reformate l'identifiant de clé racine nécessaire pour la ressourceRotationJob:kubectl describe aeadkey KEY_NAME -n PROJECT | grep "Root Key ID:" | awk '{print $4}' | awk -F/ '{print "namespaces/" $1 "/secrets/" $2}'Remplacez les éléments suivants :
KEY_NAME: nom de n'importe quelAEADKeyde votre projetPROJECT: nom de l'espace de noms de votre projet
Le résultat devrait ressembler à ceci:
namespaces/kms-system/secrets/kms-key-local-rootCréez un fichier YAML, puis ajoutez-y la ressource
RotationJobet le contenu suivant :apiVersion: "kms.gdc.goog/v1" kind: RotationJob metadata: name: ROTATION_NAME spec: rootKeyResourceName: ROOT_KEY_RESOURCE_NAMERemplacez les éléments suivants :
ROTATION_NAME: nom du job de rotation (par exemple,rotate-job1).ROOT_KEY_RESOURCE_NAME: résultat obtenu à l'étape précédente.
Appliquez le contenu du fichier YAML au KMS :
kubectl apply -f FILENAME.yamlRemplacez FILENAME par le nom du fichier YAML.
Après l'exécution de la commande, le KMS crée une clé racine et effectue une rotation de chaque clé avec la nouvelle clé racine.
Pour vérifier que la rotation des clés racine est terminée, exécutez la commande suivante :
kubectl get rotationjobs ROTATION_NAMERemplacez ROTATION_NAME par le nom du job de rotation.
Une fois la commande exécutée, l'état du job de rotation s'affiche comme
Completedsi l'opération a réussi.