Configura Grupos de Google para RBAC


En esta página, se muestra cómo configurar Grupos de Google para trabajar con control de acceso basado en roles (RBAC) de Kubernetes en tus clústeres de Google Kubernetes Engine (GKE).

Descripción general

Los Grupos de Google para RBAC te permiten asignar permisos de RBAC a miembros de Grupos en Google Workspace. Los administradores de Google Workspace mantienen a los usuarios y los grupos completamente fuera de GKE o la consola de Google Cloud. Por lo tanto, los administradores del clúster no necesitarán información detallada sobre los usuarios.

El uso de Grupos de Google para RBAC también te permite integrarte en las prácticas de administración de las cuentas de usuario existentes, como revocar el acceso cuando alguien abandona la organización.

A fin de usar Grupos de Google para RBAC, completa las siguientes tareas:

  1. Cumplir con los requisitos.
  2. Configurar tus Grupos de Google.
  3. Habilitar Grupos de Google para RBAC en un clúster.
  4. Definir y asignar permisos de RBAC a los grupos de Google.

Requisitos

A fin de usar Grupos de Google para RBAC, debes tener acceso a Google Workspace o a cualquier edición de Cloud Identity.

Cuando crees grupos y agregues usuarios como miembros, asegúrate de conocer los límites de grupos de Google.

Limitación

  • GKE admite usuarios con membresías en hasta 2,000 grupos dentro del grupo de seguridad, incluidas las membresías anidadas, con Grupos de Google para RBAC.

Configura tus Grupos de Google

En los siguientes pasos, se muestra cómo configurar un grupo en Grupos que funcione con RBAC:

  1. Crea un grupo en tu dominio, llamado gke-security-groups. El nombre gke-security-groups es obligatorio. Asegúrate de que el grupo tenga seleccionado el permiso Ver miembros para Miembros del grupo. Si deseas obtener detalles, consulta Establece permisos para administrar miembros y contenido.

  2. Crea grupos, si aún no existen, que representen conjuntos de usuarios que deberían tener permisos diferentes en los clústeres, como desarrolladores y administradores de clústeres. Cada grupo debe tener el permiso Ver miembros para Miembros del grupo.

  3. Agrega tus grupos como grupos anidados al grupo gke-security-groups. No agregues usuarios individuales como miembros de gke-security-groups.

Si deseas obtener más información para administrar Grupos de Google, consulta el Centro de ayuda de Grupos de Google.

Para verificar si un usuario específico puede realizar una acción en un recurso del clúster, GKE verifica si es miembro de un grupo con acceso y si ese grupo está anidado en el grupo gke-security-groups.

La información sobre la membresía de los Grupos de Google se almacena en caché por un período breve. Los cambios en las membresías de grupos pueden demorar unos minutos en propagarse a todos tus clústeres. Además de la latencia de los cambios de grupos, el almacenamiento en caché estándar de las credenciales de usuario en el clúster es de alrededor de una hora.

Habilita Grupos de Google para RBAC en clústeres

Puedes habilitar los Grupos de Google para RBAC en clústeres nuevos y existentes de GKE Standard y Autopilot mediante la CLI de Google Cloud o la consola de Google Cloud.

Crea un clúster nuevo

gcloud

Standard

A fin de crear un nuevo clúster Standard y habilitar Grupos de Google para RBAC, ejecuta el siguiente comando:

gcloud container clusters create CLUSTER_NAME \
    --region=COMPUTE_REGION \
    --security-group="gke-security-groups@DOMAIN"

Reemplaza lo siguiente:

  • CLUSTER_NAME es el nombre del clúster nuevo.
  • COMPUTE_REGION: La región de Compute Engine del clúster nuevo. Para los clústeres zonales, usa --zone=COMPUTE_ZONE.
  • DOMAIN: El nombre de dominio del grupo gke-security-groups que creaste.

Autopilot

A fin de crear un nuevo clúster de Autopilot y habilitar Grupos de Google para RBAC, ejecuta el siguiente comando:

gcloud container clusters create-auto CLUSTER_NAME \
    --region=COMPUTE_REGION \
    --security-group="gke-security-groups@DOMAIN"

Console

A fin de crear un clúster nuevo y habilitar la función Grupos de Google para RBAC, realiza los siguientes pasos:

  1. Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.

    Ir a Google Kubernetes Engine

  2. Haz clic en Crear.

  3. Haz clic en Configurar para el modo de clúster que deseas usar.

  4. En los clústeres de Autopilot, expande la sección Opciones avanzadas para ubicar las opciones de Seguridad.

  5. Para los clústeres Standard, en la sección Clúster, haz clic en Seguridad.

  6. Selecciona la casilla de verificación Habilitar Grupos de Google para RBAC.

  7. Completa Grupo de seguridad con gke-security-groups@DOMAIN.

  8. Haz clic en Crear.

Actualiza un clúster existente

gcloud

Para actualizar un clúster existente a fin de habilitar Grupos de Google para RBAC, ejecuta el siguiente comando:

gcloud container clusters update CLUSTER_NAME \
    --region=COMPUTE_REGION \
    --security-group="gke-security-groups@DOMAIN"

Reemplaza lo siguiente:

  • CLUSTER_NAME: el nombre del clúster
  • COMPUTE_REGION: La región de Compute Engine del clúster. Para los clústeres zonales, usa --zone=COMPUTE_ZONE.
  • DOMAIN: El nombre de dominio del grupo gke-security-groups que creaste.

Console

Para actualizar un clúster existente a fin de habilitar Grupos de Google para RBAC, realiza los siguientes pasos:

  1. Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.

    Ir a Google Kubernetes Engine

  2. Haz clic en el nombre del clúster que deseas actualizar

  3. En la pestaña Detalles, busca la sección Seguridad.

  4. En el campo Grupos de Google para RBAC, haz clic en Editar Grupos de Google para RBAC.

  5. Selecciona la casilla de verificación Habilitar Grupos de Google para RBAC.

  6. Completa Grupo de seguridad con gke-security-groups@DOMAIN.

  7. Haz clic en Guardar cambios.

Define y asigna permisos

Después de crear y configurar Grupos de Google para RBAC, usa los roles y las vinculaciones de roles a fin de definir los permisos de RBAC y asignarlos a los Grupos de Google que son miembros del grupo gke-security-groups. Para obtener instrucciones, consulta Define y asigna permisos.

Verificar los Grupos de Google para la configuración de RBAC

En las siguientes secciones, se muestra cómo verificar que la configuración de Grupos de Google para RBAC se haya realizado de forma correcta mediante la CLI de gcloud o la consola de Google Cloud.

Verifica con la CLI de gcloud

Ejecuta un comando can-i de kubectl para verificar si puedes realizar una acción específica en un recurso de Kubernetes específico. Puedes usar este método para automatizar la prueba del acceso de RBAC como parte de tu flujo de trabajo de CI/CD. Por ejemplo, el siguiente comando prueba el acceso de get a los recursos pods en el espacio de nombres dev:

kubectl auth can-i get pods \
    --namespace=dev \
    --as=USER \
    --as-group=GROUP

Reemplaza lo siguiente:

  • USER: Es el nombre del usuario que actuará en nombre, como gke-user@example.com. El usuario especificado debe ser miembro del grupo para el que pruebas el acceso.
  • GROUP: Es el nombre del grupo que se usará, como gke-dev-users@example.com.

Si USER tiene acceso, el resultado es yes. De lo contrario, el resultado es no.

Verifica con la consola de Google Cloud

También puedes verificar el acceso a RBAC mediante la ejecución de un comando de kubectl en tu clúster y la verificación de tus registros.

Antes de comenzar

Antes de comenzar, asegúrate de lo siguiente:

  • No haber interactuado con el clúster que quieres probar (por ejemplo, si no ejecutaste ningún comando kubectl) durante al menos una hora. La autenticación se almacena en caché durante una hora. Permitir que las credenciales almacenadas en caché caduquen te permite asegurarte de que la solicitud se registre cuando suceda.
  • Eres miembro de al menos uno de los grupos que son miembros del grupo gke-security-groups, lo que garantiza que se registre parte de la información de los Grupos.

Habilita los registros y ejecuta un comando de prueba

  1. Habilita el registro de acceso a los datos para el proyecto de Google Cloud. Para habilitar el registro, haz lo siguiente:

    1. Ve a la página Registros de auditoría en la consola de Google Cloud.

      Ir a Registros de auditoría

    2. En la tabla, selecciona API de Kubernetes Engine.

    3. En el menú Tipo de registro, selecciona:

      • Lectura de administración
      • Lectura de datos
      • Escritura de datos
    4. Haz clic en Guardar.

    Si deseas obtener más información para habilitar el registro de auditoría, consulta Configura los registros de acceso a los datos con la consola de Cloud.

  2. Ejecuta un comando mediante kubectl en el clúster, como el siguiente:

    kubectl create ns helloworld
    
  3. Ingresa una consulta personalizada en la página Visor de registros. Para ejecutar la consulta, haz lo siguiente:

    1. Ve al Explorador de registros en la consola de Google Cloud.

      Ir al Explorador de registros

    2. Haz clic en la flecha del cuadro Vista previa de la búsqueda en la parte superior de la página.

    3. En el cuadro desplegable que aparece, especifica la siguiente consulta:

      resource.type="k8s_cluster"
      resource.labels.location="CLUSTER_LOCATION"
      resource.labels.cluster_name="CLUSTER_NAME"
      protoPayload.resourceName="authorization.k8s.io/v1beta1/subjectaccessreviews"
      protoPayload.response.spec.user="EMAIL_ADDRESS"
      

      Reemplaza lo siguiente:

      • CLUSTER_LOCATION: la región o la zona de tu clúster.
      • CLUSTER_NAME: El nombre de tu clúster.
      • EMAIL_ADDRESS: la dirección de correo electrónico registrada de tu Cuenta de Google.
    4. Selecciona Ejecutar consulta. Debería aparecer al menos un resultado. Si no hay resultados, intenta aumentar el intervalo de tiempo.

    5. Selecciona el clúster que deseas examinar.

    6. Haz clic en Expand nested fields.

    7. El campo protoPayload.request.spec.group contiene los siguientes grupos:

      • Los grupos que son miembros de gke-security-group
      • Los grupos de los que formas parte

      Esta lista debe coincidir con el conjunto de grupos del que eres miembro. Si no hay grupos presentes, es posible que haya un problema con la configuración de los grupos.

  4. De manera opcional, restablece el registro de acceso a los datos a la configuración anterior para evitar cargos adicionales.

¿Qué sigue?