Rotar las claves de cifrado del disco de arranque de etcd y del plano de control


.

En esta página se muestra cómo rotar las claves de cifrado 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 e ingenieros de seguridad.

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

Planificar rotaciones de claves

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

  • La clave de cifrado de etcd y los discos de arranque del plano de control.
  • La clave de cifrado de la copia de seguridad interna de etcd que Google Cloud usa para la recuperación tras fallos.

También puedes rotar las autoridades de certificación (CAs) gestionadas 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 Rotar las CAs del plano de control gestionadas por el cliente y las claves de firma.

Las claves de Cloud Key Management Service (Cloud KMS) no caducan. Si tu organización tiene un requisito de seguridad para la rotación de claves, rota las claves 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 cifrado de los discos de arranque y etcd de tu plano de control, GKE crea un disco nuevo cifrado con la nueva clave. En el caso de los clústeres regionales, esta operación no tiene tiempo de inactividad debido al plano de control replicado. En los clústeres zonales, el plano de control no estará disponible hasta que el nuevo disco esté disponible.

Antes de empezar

Antes de empezar, 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, instálala y, a continuación, inicialízala. Si ya has instalado la gcloud CLI, obtén la versión más reciente ejecutando gcloud components update.
  • Tener un clúster que use cifrado de disco de arranque del plano de control y de etcd

  • Identifica los IDs de los siguientes proyectos: Google Cloud

    • Proyecto de claves: el proyecto que contiene tus recursos de Cloud KMS.
    • Proyecto de clúster: el proyecto que contiene tu clúster de GKE.
  • Para realizar las tareas de validación de esta página, compruebe que el registro de auditoría de acceso a datos DATA_READ está habilitado en la API de Cloud Key Management Service (KMS). Para obtener más información, consulta el artículo sobre cómo habilitar registros de auditoría de acceso a datos.

Roles y permisos necesarios

Para obtener los permisos que necesitas para rotar tus CAs y claves gestionadas por el cliente, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:

Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.

Limitaciones

Puedes actualizar tus clústeres a nuevas versiones de las claves que ya tengas, pero no puedes actualizarlos para que usen claves completamente nuevas en estas operaciones de cifrado.

Conceder roles de IAM al agente de servicio de GKE

Para rotar las claves de cifrado de los discos de arranque y etcd, asigna el rol Usuario de clave criptográfica de KMS de Kubernetes Engine (roles/container.cloudKmsKeyUser) a las claves de cifrado de tu proyecto de claves y al agente de servicio de GKE de 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

Haz los cambios siguientes:

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

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

  1. Crea una versión de clave principal para el disco de arranque y la clave de cifrado de etcd:

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

    Los cambios pueden tardar hasta 10 minutos en propagarse en el proyecto.

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

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

    Haz los cambios siguientes:

    • CLUSTER_NAME: el nombre de tu clúster de GKE.
    • LOCATION: 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 utiliza.

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

    Haz los cambios siguientes:

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

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

Rotar la clave de cifrado de la copia de seguridad interna de etcd

En esta sección se explica cómo rotar la clave de cifrado de la copia de seguridad interna de etcd, que se usa para la recuperación ante desastres. Google Cloud Puedes configurar la rotación automática de 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 cifrar las nuevas copias de seguridad internas de etcd.

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

  • Cada 30 minutos para los clústeres zonales.
  • Cada 10 minutos en los clústeres de Autopilot y los clústeres estándar regionales.

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

  • Crea una versión de clave principal para el cifrado 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
    

    Haz los cambios siguientes:

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

Siguientes pasos