Rotar una clave raíz

En este documento se describe cómo rotar una clave raíz. Si tu clave raíz se ve comprometida o decides rotar periódicamente las claves raíz para mejorar la seguridad, puedes rotar tus claves a una nueva clave raíz mediante el recurso RotationJob.

Al rotar una clave raíz, se crea otra clave raíz, que se convierte en la clave principal y envuelve todas las claves que no son raíz. No puedes eliminar una clave raíz; la rotación es la única forma de sustituirla. Consulta Tipos de claves raíz para obtener más información sobre las claves raíz.

Consulta la descripción general de la API KMS para obtener más información sobre la API KMS y la API KRM del servicio de gestión de claves para ver la definición completa de la API.

Antes de empezar

Antes de rotar una clave raíz, debes tener los permisos necesarios y preparar tu entorno.

Solicitar roles de gestión de identidades y accesos

Para rotar las claves, ponte en contacto con el administrador de gestión de identidades y accesos de tu organización para solicitar el rol Administrador de trabajos de rotación de KMS (kms-rotationjob-admin).

Prepara tu entorno

Rotar una clave raíz

Para rotar una clave raíz, primero debes identificar el nombre de recurso de la clave raíz que se esté usando. Para obtener esta información, examina cualquier AEADKeyrecurso de tu proyecto, ya que todas estas claves están protegidas por la misma clave raíz.

Crea una clave raíz y rota tus claves:

  1. Lista los recursos AEADKey de tu proyecto:

    kubectl get AEADKey -n PROJECT
    

    Sustituye PROJECT por el nombre del espacio de nombres de tu proyecto.

    En el resultado, anota el nombre de cualquier AEADKey.

  2. Toma la ROOT_KEY_RESOURCE_NAME desde la AEADKey. El siguiente comando extrae y reformatea el identificador de la clave raíz necesario para el recurso RotationJob:

    kubectl describe aeadkey KEY_NAME -n PROJECT | grep "Root Key ID:" | awk '{print $4}' | awk -F/ '{print "namespaces/" $1 "/secrets/" $2}'
    

    Haz los cambios siguientes:

    • KEY_NAME: el nombre de cualquier AEADKey de tu proyecto
    • PROJECT: el nombre del espacio de nombres de tu proyecto

    La salida puede ser similar a la siguiente:

    namespaces/kms-system/secrets/kms-key-local-root
    
  3. Crea un archivo YAML y añade el recurso RotationJob y el siguiente contenido:

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

    Haz los cambios siguientes:

    • ROTATION_NAME: un nombre para el trabajo de rotación. Por ejemplo, rotate-job1.
    • ROOT_KEY_RESOURCE_NAME: el resultado que has obtenido en el paso anterior
  4. Aplica el contenido del archivo YAML al KMS:

    kubectl apply -f FILENAME.yaml
    

    Sustituye FILENAME por el nombre del archivo YAML.

    Después de ejecutar el comando, KMS crea una clave raíz y rota todas las claves con la nueva clave raíz.

  5. Para verificar que la rotación de la clave raíz se ha completado, ejecuta lo siguiente:

    kubectl get rotationjobs ROTATION_NAME
    

    Sustituye ROTATION_NAME por el nombre del trabajo de rotación.

    Después de ejecutar el comando, verás el estado del trabajo de rotación como Completed si se ha completado correctamente.