Rotar las credenciales del clúster

En esta página, se explica cómo realizar una rotación de credenciales en Google Kubernetes Engine (GKE).

Descripción general

Puedes realizar una rotación de credenciales con el fin de revocar y generar credenciales nuevas para tu clúster. Esto rota la clave privada de la autoridad certificada (CA) de la raíz del clúster y todos los certificados y claves privadas firmados por esa CA, incluido el certificado de cliente del clúster (del campo API de MasterAuth), la clave y el certificado para el servidor de API, y los certificados de cliente de Kubelet. Consulta Confianza del clúster para obtener más información sobre cómo se usan estas credenciales dentro de un clúster.

Google recomienda que uses la rotación de credenciales con regularidad para reducir el ciclo de vida de las credenciales y agregar más seguridad a tu clúster de GKE. Estas no se rotan de forma automática.

Además de rotar las credenciales, la rotación de credenciales también realiza una rotación de IP.

Antes de comenzar

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

Establece la configuración de gcloud predeterminada mediante uno de los siguientes métodos:

  • Usa gcloud init si deseas ver una explicación sobre cómo configurar parámetros predeterminados.
  • Usa gcloud config para establecer el ID, la zona y la región del proyecto de manera individual.

Usa gcloud init

Si recibes el error One of [--zone, --region] must be supplied: Please specify location, completa esta sección.

  1. Ejecuta gcloud init y sigue las instrucciones:

    gcloud init

    Si usas SSH en un servidor remoto, usa la marca --console-only para evitar que el comando abra un navegador:

    gcloud init --console-only
  2. Sigue las instrucciones a fin de autorizar a gcloud para que use tu cuenta de Google Cloud.
  3. Crea una configuración nueva o selecciona una existente.
  4. Elige un proyecto de Google Cloud.
  5. Elige una zona predeterminada de Compute Engine.

Usa gcloud config

  • Establece tu ID del proyecto predeterminado:
    gcloud config set project project-id
  • Si trabajas con clústeres zonales, establece tu zona de procesamiento predeterminada:
    gcloud config set compute/zone compute-zone
  • Si trabajas con clústeres regionales, establece tu región de procesamiento predeterminada:
    gcloud config set compute/region compute-region
  • Actualiza gcloud a la versión más reciente:
    gcloud components update

Cómo funciona la rotación de credenciales

La rotación de credenciales es un proceso de varios pasos que incluye la migración a una dirección IP nueva:

  • Cuando inicias una rotación de credenciales, el plano de control de tu clúster (instancia principal) comienza a entregar en la dirección IP nueva, además de hacerlo en la dirección IP original. Se generan credenciales nuevas en las cargas de trabajo y el plano de control.
  • Después de iniciar una rotación, se deben actualizar los clientes de la API del clúster (como las máquinas de desarrollo que usan la interfaz de línea de comandos de kubectl) para comenzar a comunicarse con el plano de control mediante la nueva dirección IP.
  • Cuando finalizas la rotación, el plano de control deja de entregar tráfico en la dirección IP anterior y las credenciales antiguas se revocan.

Realiza una rotación de credenciales

En las siguientes secciones, se explica cómo realizar una rotación de credenciales.

Inicia la rotación

Para iniciar una rotación de credenciales, ejecuta el siguiente comando gcloud, que crea credenciales nuevas y emite estas credenciales al plano de control. Este comando también configura el plano de control para entregar en dos direcciones IP: la IP original y una IP nueva.

gcloud container clusters update cluster-name --start-credential-rotation

Una vez que se configura el plano de control, GKE actualiza los nodos de tu clúster de forma automática para usar las credenciales y la dirección IP nuevas. Cada grupo de nodos está marcado como “requiere recreación”. GKE no finalizará la rotación de credenciales hasta que se complete la recreación automática.

Inspecciona la rotación

Para supervisar la operación de rotación, ejecuta el siguiente comando:

gcloud container operations list | grep "AUTO_UPGRADE_NODES.*RUNNING"

Este comando muestra el ID de la operación para la operación de actualización.

Para sondear la operación, pasa el ID de la operación al siguiente comando:

gcloud container operations wait operation-id

Los grupos de nodos se recrean uno a uno, y cada cual tiene su propia operación. Si tienen varios grupos de nodos, puedes usar las instrucciones de arriba para sondear cada operación.

Actualiza clientes de la API

Una vez que se inicia la rotación de credenciales, se deben actualizar todos los clientes de la API fuera del clúster (como kubectl en máquinas de desarrollador) para usar la credencial nueva.

A fin de actualizar los clientes de la API, ejecuta el siguiente comando para cada cliente:

gcloud container clusters get-credentials cluster-name

Finaliza la rotación

A fin de completar la rotación, ejecuta el siguiente comando que configura el plano de control para que solo funcione con la credencial nueva:

gcloud container clusters update cluster-name --complete-credential-rotation

¿Qué sigue?