Rotación de credenciales

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

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), el certificado y la clave de API principal 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

Sigue estos pasos a fin de prepararte para esta tarea:

  • Asegúrate de haber habilitado la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Asegúrate de haber instalado el SDK de Cloud.
  • 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

Funcionamiento de 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, la instancia principal de tu clúster 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 la instancia principal a través de la dirección IP nueva.
  • Cuando finalizas la rotación, la instancia principal 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:

  1. Configura CLUSTER_NAME como el nombre del clúster.

    CLUSTER_NAME=[CLUSTER_NAME]

  2. Ejecuta el siguiente comando, que crea credenciales nuevas y las distribuye al plano de control. También configura la instancia principal del clúster para entregar en dos direcciones IP, la original y una nueva. Esto genera un tiempo de inactividad breve para la API del clúster.

    gcloud container clusters update ${CLUSTER_NAME} --start-credential-rotation
    

Una vez que la instancia principal se volvió a configurar, 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

Para finalizar la rotación, ejecuta los siguientes comandos:

  1. Configura CLUSTER_NAME como el nombre del clúster.

    CLUSTER_NAME=[CLUSTER_NAME]

  2. Ejecuta el siguiente comando que configura la instancia principal del clúster para que entregue solo con la credencial nueva. Esto genera un tiempo de inactividad breve para la API del clúster.

    gcloud container clusters update ${CLUSTER_NAME} --complete-credential-rotation
    

Qué sigue

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Kubernetes Engine