Rota las claves de encriptación de etcd y del disco de arranque del plano de control


En esta página, se muestra cómo rotar las claves de encriptación del disco de arranque de etcd y del plano de control que configuraste para la autoridad del plano de control de GKE. Esta página está dirigida a administradores de clústeres y a ingenieros de seguridad.

Antes de leer esta página, familiarízate con los siguientes conceptos de autoridad del plano de control de GKE:

Planifica rotaciones de claves

En esta página, se muestra cómo rotar los siguientes componentes de credenciales en tu plano de control:

  • Es la clave de encriptación para etcd y los discos de arranque del plano de control.
  • Es la clave de encriptación para la copia de seguridad interna de etcd que Google Cloud usa para la recuperación ante desastres.

También puedes rotar las autoridades certificadoras (AC) administradas por el cliente y las claves de firma de la cuenta de servicio que configures con la autoridad del plano de control de GKE. Para obtener más información, consulta Rota las AC y las claves de firma del plano de control administrado por el cliente.

Las claves de Cloud Key Management Service (Cloud KMS) no vencen. Si tu organización tiene un requisito de seguridad para la rotación de claves, rótalas manualmente. Para minimizar las interrupciones en las cargas de trabajo en ejecución, no configures la rotación automática de claves para estas claves.

Cuando rotas las claves de encriptación de los discos de arranque del plano de control y de etcd, GKE crea un disco nuevo encriptado con la clave nueva. En el caso de los clústeres regionales, esta operación no tiene tiempo de inactividad debido al plano de control replicado. Para los clústeres zonales, el plano de control deja de estar disponible hasta que el disco nuevo esté disponible.

Antes de comenzar

Antes de comenzar, asegúrate de haber realizado las siguientes tareas:

  • Habilita la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Si quieres usar Google Cloud CLI para esta tarea, instala y, luego, inicializa gcloud CLI. Si ya instalaste gcloud CLI, ejecuta gcloud components update para obtener la versión más reciente.

Roles y permisos requeridos

Para obtener los permisos que necesitas para rotar tus CAs y claves administradas por el cliente, pídele a tu administrador que te otorgue los siguientes roles de IAM:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

Limitaciones

Puedes actualizar tus clústeres a nuevas versiones de las claves existentes, pero no puedes actualizarlos para que usen claves completamente nuevas para estas operaciones de encriptación.

Otorga roles de IAM al agente de servicio de GKE

Para rotar tus claves de encriptación de los discos de arranque y etcd, otorga el rol de Usuario de claves criptográficas de KMS de Kubernetes Engine (roles/container.cloudKmsKeyUser) en las claves de encriptación de tu proyecto de claves al agente de servicio de GKE en tu proyecto de clúster:

gcloud kms keys add-iam-policy-binding KCP_DISK_KEY_NAME \
    --keyring=KEYRING_NAME \
    --location=LOCATION \
    --member="serviceAccount:service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \
    --role=roles/container.cloudKmsKeyUser \
    --project=KEY_PROJECT_ID

Reemplaza lo siguiente:

  • KCP_DISK_KEY_NAME: Es el nombre de la clave de encriptación para los discos de arranque y los discos de etcd del plano de control.
  • KEYRING_NAME: Es el nombre del llavero de claves que contiene la clave.
  • LOCATION: Es la Google Cloud ubicación del llavero de claves. Debe ser la misma que la ubicación del clúster. Para obtener una lista de regiones, filtra por "Región" en la tabla de ubicaciones de Cloud KMS.
  • CLUSTER_PROJECT_NUMBER: Es el número de proyecto numérico del proyecto del clúster.
  • KEY_PROJECT_ID: Es el ID del proyecto de tu proyecto de claves.

Rota la clave de los discos de arranque de etcd y del plano de control

  1. Crea una nueva versión de clave primaria para la clave de encriptación del disco de arranque y de etcd:

    gcloud kms keys versions create \
        --key=KCP_DISK_KEY_NAME \
        --keyring=KEYRING_NAME \
        --location=LOCATION \
        --project=KEY_PROJECT_ID \
        --primary
    

    Es posible que los cambios tarden hasta 10 minutos en propagarse en el proyecto.

  2. Busca la versión actual del parche del plano de control del clúster:

    gcloud container clusters describe CLUSTER_NAME \
        --location=LOCATION \
        --format='value(currentMasterVersion)'
    

    Reemplaza lo siguiente:

    • CLUSTER_NAME: Es el nombre del clúster de GKE.
    • LOCATION: Es la ubicación del plano de control del clúster de GKE, como us-central1.
  3. Actualiza el plano de control del clúster a la misma versión que ya usa.

    gcloud container clusters upgrade CLUSTER_NAME \
        --master \
        --location=LOCATION \
        --cluster-version=CONTROL_PLANE_VERSION \
        --project=CLUSTER_PROJECT_ID
    

    Reemplaza lo siguiente:

    • CONTROL_PLANE_VERSION: Es la versión del plano de control del clúster que se muestra en el resultado del paso anterior.
    • CLUSTER_PROJECT_ID: Es el ID del proyecto de tu proyecto de clúster.

Una vez que se complete la operación de actualización del plano de control, el clúster usará la nueva versión de la clave para encriptar los discos de arranque del plano de control y los discos de etcd.

Rota la clave de encriptación de la copia de seguridad interna de etcd

En esta sección, se muestra cómo rotar la clave de encriptación de la copia de seguridad interna de etcd, que Google Cloud se usa para la recuperación ante desastres. Puedes configurar la rotación automática para esta clave, pero te recomendamos que realices la rotación manual. Después de rotar la clave, el clúster usa la nueva versión de la clave para encriptar las copias de seguridad internas de etcd nuevas.

Las copias de seguridad internas de etcd usan la versión de clave primaria y se realizan en los siguientes intervalos:

  • Cada 30 minutos para los clústeres zonales
  • Cada 10 minutos para los clústeres de Autopilot y los clústeres regionales de Standard

Después de rotar la clave, no inhabilite ni destruya de inmediato la versión anterior. Espera el tiempo suficiente para que GKE cree copias de seguridad internas de etcd nuevas que usen la nueva versión de la clave.

  • Crea una nueva versión de clave primaria para la clave de encriptación de la copia de seguridad interna de etcd:

    gcloud kms keys versions create \
        --key=ETCD_BACKUP_KEY_NAME \
        --keyring=KEYRING_NAME \
        --location=LOCATION \
        --project=KEY_PROJECT_ID \
        --primary
    

    Reemplaza lo siguiente:

    • ETCD_BACKUP_KEY_NAME: Es el nombre de la clave de encriptación de la copia de seguridad interna de etcd.
    • KEYRING_NAME: Es el nombre del llavero de claves que contiene la clave.
    • LOCATION: Es la Google Cloud ubicación del llavero de claves. Debe ser la misma que la ubicación del clúster. Para obtener una lista de regiones, filtra por "Región" en la tabla de ubicaciones de Cloud KMS.
    • KEY_PROJECT_ID: Es el ID del proyecto de tu proyecto de claves.

¿Qué sigue?