En esta página se explica cómo configurar Grupos de Google para que funcione con el control de acceso basado en roles (RBAC) de Kubernetes en tus clústeres de Google Kubernetes Engine (GKE).
Grupos de Google para el control de acceso basado en roles te permite asignar permisos de control de acceso basado en roles a los miembros de Grupos de Google en Google Workspace. Los administradores de Google Workspace gestionan los usuarios y los grupos completamente fuera de GKE o de la Trusted Cloud consola. Por lo tanto, los administradores de tu clúster no necesitarán información detallada sobre los usuarios.
Si usas Grupos de Google para el control de acceso basado en roles, también podrás integrar esta función con tus prácticas de gestión de cuentas de usuario, como revocar el acceso cuando alguien deje tu organización.
Esta página está dirigida a especialistas en seguridad y operadores que quieran usar Grupos de Google con RBAC de Kubernetes en clústeres de GKE. Para obtener más información sobre los roles habituales y las tareas de ejemplo a las que hacemos referencia en el contenido, consulta Roles y tareas habituales de los usuarios de GKE. Trusted Cloud by S3NS
Antes de leer esta página, familiarízate con las limitaciones de Grupos de Google a la hora de crear grupos y añadir usuarios como miembros.
Para usar Grupos de Google en el control de acceso basado en roles, completa las siguientes tareas:
- Cumplir los requisitos.
- Configura tus grupos de Google.
- Habilita Grupos de Google para el control de acceso basado en roles en un clúster.
- Define y asigna permisos de control de acceso basado en roles a los grupos de Google.
Requisitos
Para usar Grupos de Google en el control de acceso basado en roles, debes tener acceso a Google Workspace o a cualquier edición de Cloud Identity.
Limitaciones
- GKE admite usuarios con una pertenencia de hasta 2000 grupos en el grupo de seguridad, incluidas las pertenencias anidadas, con Grupos de Google para RBAC.
Configurar Grupos de Google
En los siguientes pasos se muestra cómo configurar un grupo en Grupos de Google que funcione con el control de acceso basado en roles:
Crea un grupo en tu dominio llamado
gke-security-groups
. Es obligatorio indicar el nombre degke-security-groups
. Comprueba que el grupo tenga seleccionado el permiso Ver miembros para Miembros del grupo. Para obtener más información, consulta el artículo Definir permisos para gestionar miembros y contenido.Crea grupos, si aún no existen, que representen conjuntos de usuarios que deban tener permisos diferentes en tus clústeres, como desarrolladores y administradores de clústeres. Cada grupo debe tener el permiso Ver miembros para Miembros del grupo.
Añade tus grupos como grupos anidados al grupo
gke-security-groups
. No añadas usuarios concretos como miembros degke-security-groups
.
Para obtener más información sobre cómo gestionar Grupos de Google, consulta el Centro de Ayuda de Grupos de Google.
Para comprobar si un usuario específico puede realizar una acción en un recurso de clúster, GKE comprueba si el usuario es miembro de un grupo con acceso y si ese grupo está anidado en el grupo gke-security-groups
.
La información sobre la pertenencia a Grupos de Google se almacena en caché durante un breve periodo. Los cambios en la pertenencia a grupos pueden tardar unos minutos en propagarse a todos tus clústeres. Además de la latencia de los cambios de grupo, el almacenamiento en caché estándar de las credenciales de usuario en el clúster es de aproximadamente una hora.
Habilitar Grupos de Google para el control de acceso basado en roles en clústeres
Puedes habilitar Grupos de Google para el control de acceso basado en roles en clústeres Standard y Autopilot de GKE nuevos y actuales mediante la CLI de Google Cloud o la Trusted Cloud consola.
Crear una agrupación
gcloud
Estándar
Para crear un clúster estándar y habilitar Grupos de Google con control de acceso basado en roles, ejecuta el siguiente comando:
gcloud container clusters create CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION \
--security-group="gke-security-groups@DOMAIN"
Haz los cambios siguientes:
CLUSTER_NAME
: el nombre del nuevo clúster.CONTROL_PLANE_LOCATION
: 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 grupogke-security-groups
que has creado.
Autopilot
Para crear un clúster de Autopilot y habilitar Grupos de Google para el control de acceso basado en roles, ejecuta el siguiente comando:
gcloud container clusters create-auto CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION \
--security-group="gke-security-groups@DOMAIN"
Consola
Para crear un clúster y habilitar la función Grupos de Google para RBAC, sigue estos pasos:
Ve a la página Google Kubernetes Engine en la consola de Trusted Cloud .
Haz clic en add_box Crear.
Haz clic en Configurar en el modo de clúster que quieras usar.
En los clústeres de Autopilot, despliega la sección Opciones avanzadas para encontrar las opciones de Seguridad.
En el caso de los clústeres estándar, en la sección Clúster, haz clic en Seguridad.
Marca la casilla Habilitar Grupos de Google con control de acceso basado en roles.
En Grupo de seguridad, escribe
gke-security-groups@DOMAIN
.Haz clic en Crear.
Actualizar un clúster
gcloud
Para actualizar un clúster y habilitar Grupos de Google para el control de acceso basado en roles, ejecuta el siguiente comando:
gcloud container clusters update CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION \
--security-group="gke-security-groups@DOMAIN"
Haz los cambios siguientes:
CLUSTER_NAME
: el nombre del clúster.CONTROL_PLANE_LOCATION
: 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 grupogke-security-groups
que has creado.
Consola
Para actualizar un clúster y habilitar Grupos de Google para el control de acceso basado en roles, sigue estos pasos:
Ve a la página Google Kubernetes Engine en la consola de Trusted Cloud .
Haga clic en el nombre del clúster que quiera actualizar.
En la pestaña Detalles, busca la sección Seguridad.
En el campo Grupos de Google para el control de acceso basado en roles, haz clic en edit Editar Grupos de Google para el control de acceso basado en roles.
Marca la casilla Habilitar Grupos de Google con control de acceso basado en roles.
En Grupo de seguridad, escribe
gke-security-groups@DOMAIN
.Haz clic en Guardar cambios.
Definir y asignar permisos
Después de crear y configurar Grupos de Google para el control de acceso basado en roles, usa roles y enlaces de roles para definir los permisos de control de acceso basado en roles y asignarlos a los Grupos de Google que sean miembros del grupo gke-security-groups
. Para obtener instrucciones, consulta el artículo Definir y asignar permisos.
Verificar la configuración de Grupos de Google para el control de acceso basado en roles
En las siguientes secciones se explica cómo verificar que la configuración de Grupos de Google para el control de acceso basado en roles se ha realizado correctamente. Para ello, puedes usar la CLI de gcloud o laTrusted Cloud consola.
Verificar con la CLI de gcloud
Ejecuta un comando kubectl can-i
para comprobar si puedes realizar una acción específica en un recurso de Kubernetes concreto. Puedes usar este método para automatizar las pruebas de acceso RBAC como parte de tu flujo de trabajo de CI/CD.Por ejemplo, el siguiente comando prueba el acceso get
a los recursos pods
en el espacio de nombres dev
:
kubectl auth can-i get pods \
--namespace=dev \
--as=USER \
--as-group=GROUP
Haz los cambios siguientes:
USER
: nombre del usuario al que se va a suplantar, comogke-user@example.com
. El usuario especificado debe ser miembro del grupo para el que estás probando el acceso.GROUP
: el nombre del grupo al que se va a suplantar, comogke-dev-users@example.com
.
Si USER
tiene acceso, el resultado es yes
. Si no es así, el resultado es no
.
Verificar con la Trusted Cloud consola
También puedes verificar el acceso RBAC ejecutando un comando kubectl en tu clúster y consultando tus registros.
Antes de empezar
Antes de empezar, asegúrate de lo siguiente:
- No has interactuado con el clúster que quieres probar (por ejemplo, no has ejecutado ningún comando
kubectl
) durante al menos una hora. La autenticación se almacena en caché durante una hora. Si dejas que caduquen las credenciales almacenadas en caché, te aseguras de que la solicitud se registre cuando se produzca. - Eres miembro de al menos uno de los grupos que forman parte del grupo
gke-security-groups
, lo que asegura que se registre información de Grupos de Google.
Habilitar los registros y ejecutar un comando de prueba
Habilita el registro de acceso a datos de tu Trusted Cloud proyecto. Para habilitar el registro, sigue estos pasos:
Ve a la página Registros de auditoría de la Trusted Cloud consola.
En la tabla, selecciona API de Kubernetes Engine.
En el menú Tipo de registro, selecciona una de estas opciones:
- Lectura de administrador
- Lectura de datos
- Escritura de datos
Haz clic en Guardar.
Para obtener más información sobre cómo habilitar el registro de auditoría, consulta el artículo sobre cómo configurar registros de acceso a datos con la consola de Cloud.
Ejecuta un comando con
kubectl
en el clúster, como el siguiente:kubectl create ns helloworld
Introduce una consulta personalizada en la página Explorador de registros. Para ejecutar la consulta, sigue estos pasos:
Ve a la página Explorador de registros de la consola de Trusted Cloud .
Haz clic en la flecha del cuadro Vista previa de la consulta situado en la parte superior de la página.
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"
Haz los cambios siguientes:
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 registrada de tu cuenta de Google.
Selecciona Ejecutar consulta. Debería aparecer al menos un resultado. Si no hay resultados, prueba a aumentar el intervalo de tiempo.
Selecciona el clúster que quieras examinar.
Haz clic en Mostrar campos anidados.
El campo
protoPayload.request.spec.group
contiene los grupos en los que:- Los grupos son miembros de
gke-security-group
. - Eres miembro del grupo.
Esta lista debe coincidir con el conjunto de grupos a los que perteneces. Si no hay grupos, puede que haya un problema con la forma en que están configurados.
- Los grupos son miembros de
Si quieres, puedes restaurar el registro de acceso a datos a los ajustes anteriores para evitar que se te apliquen más cargos.
Efectos de eliminar grupos
Después de configurar Grupos de Google para el control de acceso basado en roles, las concesiones de acceso de control de acceso basado en roles dependerán de los Grupos de Google que hayas creado. Ten en cuenta los siguientes efectos de eliminar uno de los grupos:
gke-security-group
: GKE usa el ID único del grupogke-security-group
para encontrar los temas a los que haces referencia en tus políticas de RBAC. Si eliminas este grupo, se producirá un error en todas las concesiones de acceso de Grupos de Google para el control de acceso basado en roles.Si vuelves a crear el grupo
gke-security-group
, debes volver a habilitar Grupos de Google para el control de acceso basado en roles en tu clúster siguiendo los pasos de la sección Actualizar un clúster. Si vuelves a habilitar Grupos de Google para el control de acceso basado en roles, el clúster se actualizará para usar el ID del nuevo grupogke-security-group
.Grupos de miembros: si eliminas uno de los grupos de miembros que has configurado para Grupos de Google para el control de acceso basado en roles, se producirá un error en los enlaces de control de acceso basado en roles de ese grupo. Por lo tanto, todos los miembros de ese grupo perderán el acceso correspondiente.
Para solucionar la eliminación accidental de un grupo de miembros, crea un grupo con exactamente el mismo nombre que el grupo eliminado. Añade el nuevo grupo al grupo
gke-security-group
siguiendo los pasos que se indican en la sección Configurar Grupos de Google.
Siguientes pasos
- Más información sobre el control de acceso basado en roles y la gestión de identidades y accesos en GKE
- Consulta cómo proteger tus clústeres.