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).

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 Google Cloud consola. 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.

Esta página está dirigida a los operadores y especialistas en seguridad que desean usar Grupos de Google con el RBAC de Kubernetes en clústeres de GKE. Para obtener más información sobre los roles comunes y las tareas de ejemplo a las que hacemos referencia en el contenido de Google Cloud , consulta Roles y tareas comunes de los usuarios de GKE.

Antes de leer esta página, asegúrate de conocer las limitaciones de Grupos de Google cuando crees grupos y agregues usuarios como miembros.

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.

Limitaciones

  • 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 con Google Cloud CLI 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 \
    --location=CONTROL_PLANE_LOCATION \
    --security-group="gke-security-groups@DOMAIN"

Reemplaza lo siguiente:

  • CLUSTER_NAME es el nombre del clúster nuevo.
  • CONTROL_PLANE_LOCATION: Es la ubicación de Compute Engine del plano de control de tu clúster. Proporciona una región para los clústeres regionales o una zona para los clústeres zonales.
  • 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 \
    --location=CONTROL_PLANE_LOCATION \
    --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 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 \
    --location=CONTROL_PLANE_LOCATION \
    --security-group="gke-security-groups@DOMAIN"

Reemplaza lo siguiente:

  • CLUSTER_NAME: el nombre del clúster
  • CONTROL_PLANE_LOCATION: Es la ubicación de Compute Engine del plano de control de tu clúster. Proporciona una región para los clústeres regionales o una zona para los clústeres zonales.
  • 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 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 con gcloud CLI o laGoogle Cloud consola.

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 tu Google Cloud proyecto. 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 a la página del 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.

Efectos de borrar grupos

Después de configurar Grupos de Google para RBAC, las concesiones de acceso de RBAC dependerán de la existencia de los Grupos de Google que creaste. Ten en cuenta los siguientes efectos de borrar uno de los grupos:

  • gke-security-group: GKE usa el ID único del grupo gke-security-group para encontrar los sujetos a los que haces referencia en tus políticas de RBAC. Si borras este grupo, fallarán todos los permisos de acceso para los Grupos de Google para RBAC.

    Si vuelves a crear el grupo gke-security-group, debes volver a habilitar Grupos de Google para RBAC en tu clúster siguiendo los pasos de la sección Actualiza un clúster existente. Si vuelves a habilitar Grupos de Google para RBAC, se actualizará el clúster para que use el ID del grupo del nuevo grupo de gke-security-group.

  • Grupos de miembros: Si borras uno de los grupos de miembros que configuraste para Grupos de Google para RBAC, fallarán todas las vinculaciones de RBAC para ese grupo. Como resultado, todos los miembros de ese grupo pierden el acceso correspondiente.

    Para corregir la eliminación no intencional de un grupo de miembros, crea un grupo nuevo con exactamente el mismo nombre que el grupo borrado. Sigue los pasos de la sección Configura tus Grupos de Google para que el grupo nuevo sea miembro del grupo gke-security-group.

¿Qué sigue?