Effectuer la rotation d'une clé racine

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

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 :

  1. Répertoriez les ressources AEADKey de votre projet :

    kubectl get AEADKey -n PROJECT
    

    Remplacez PROJECT par le nom de l'espace de noms de votre projet.

    Dans le résultat, notez le nom de n'importe quel AEADKey.

  2. Récupérez les ROOT_KEY_RESOURCE_NAME à partir de AEADKey. La commande suivante extrait et reformate l'identifiant de clé racine nécessaire pour la ressource RotationJob :

    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 quel AEADKey de votre projet
    • PROJECT : nom de l'espace de noms de votre projet

    Le résultat devrait ressembler à ceci:

    namespaces/kms-system/secrets/kms-key-local-root
    
  3. Créez un fichier YAML, puis ajoutez-y la ressource RotationJob et le contenu suivant :

    apiVersion: "kms.gdc.goog/v1"
    kind: RotationJob
    metadata:
      name: ROTATION_NAME
    spec:
      rootKeyResourceName: ROOT_KEY_RESOURCE_NAME
    

    Remplacez 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.
  4. Appliquez le contenu du fichier YAML au KMS :

    kubectl apply -f FILENAME.yaml
    

    Remplacez 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.

  5. Pour vérifier que la rotation des clés racine est terminée, exécutez la commande suivante :

    kubectl get rotationjobs ROTATION_NAME
    

    Remplacez 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 Completed si l'opération a réussi.