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
Genera un archivo kubeconfig para configurar el acceso a
kubectl.
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:
Lista los recursos
AEADKeyde tu proyecto:kubectl get AEADKey -n PROJECTSustituye
PROJECTpor el nombre del espacio de nombres de tu proyecto.En el resultado, anota el nombre de cualquier
AEADKey.Toma la
ROOT_KEY_RESOURCE_NAMEdesde laAEADKey. El siguiente comando extrae y reformatea el identificador de la clave raíz necesario para el recursoRotationJob: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 cualquierAEADKeyde tu proyectoPROJECT: el nombre del espacio de nombres de tu proyecto
La salida puede ser similar a la siguiente:
namespaces/kms-system/secrets/kms-key-local-rootCrea un archivo YAML y añade el recurso
RotationJoby el siguiente contenido:apiVersion: "kms.gdc.goog/v1" kind: RotationJob metadata: name: ROTATION_NAME spec: rootKeyResourceName: ROOT_KEY_RESOURCE_NAMEHaz 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
Aplica el contenido del archivo YAML al KMS:
kubectl apply -f FILENAME.yamlSustituye 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.
Para verificar que la rotación de la clave raíz se ha completado, ejecuta lo siguiente:
kubectl get rotationjobs ROTATION_NAMESustituye 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
Completedsi se ha completado correctamente.