Configurar el control de acceso basado en funciones

Los siguientes pasos te guiarán para configurar el control de acceso basado en funciones (RBAC) en un espacio de Kf.

Antes de comenzar

Sigue la guía de RBAC de GKE antes de continuar con los siguientes pasos.

Configura Identity and Access Management (IAM)

Además de los permisos otorgados mediante Kf RBAC, los usuarios, grupos o cuentas de servicio también deben autenticarse para ver los clústeres de GKE a nivel de proyecto. Este requisito es el mismo que el de GKE RBAC, lo que significa que los usuarios o grupos deben tener, al menos, el permiso container.clusters.get de IAM en el proyecto que contiene el clúster. Este permiso se incluye en la función container.clusterViewer y otras funciones con privilegios. Si deseas obtener más información, consulta Interacción con Identity and Access Management.

Asigna container.clusterViewer a un usuario o grupo.

gcloud projects add-iam-policy-binding ${CLUSTER_PROJECT_ID} \
  --role="container.clusterViewer" \
  --member="${MEMBER}"

Estos son algunos ejemplos de valores de miembros:

  • user:test-user@gmail.com
  • group:admins@example.com
  • serviceAccount:test123@example.domain.com

Administra la suscripción al espacio como SpaceManager

La función de administrador de clúster, o los miembros con la función SpaceManager, pueden asignar funciones a un usuario, un grupo o una cuenta de servicio.

kf set-space-role MEMBER -t [Group|ServiceAccount|User]

La función de administrador de clúster, o los miembros con la función SpaceManager, pueden quitar a un miembro de una función.

kf unset-space-role MEMBER -t [Group|ServiceAccount|User]

Puedes ver los miembros y sus funciones en un Space.

kf space-users

Ejemplos

Asigna la función SpaceDeveloper a un usuario.

kf set-space-role alice@example.com SpaceDeveloper

Asigna la función SpaceDeveloper a un grupo.

kf set-space-role devs@example.com SpaceDeveloper -t Group

Asigna la función SpaceDeveloper a una cuenta de servicio.

kf set-space-role sa-dev@example.domain.com SpaceDeveloper -t ServiceAccount

Desarrollo de apps como SpaceDeveloper

Los miembros con la función SpaceDeveloper pueden realizar operaciones de desarrollo de apps de Kf en el espacio.

Para enviar una app:

kf push app_name -p [PATH_TO_APP_ROOT_DIRECTORY]

Para ver los registros de una aplicación: posix-terminal kf logs app_name

Establece una conexión SSH a un pod de Kubernetes que ejecuta la app: posix-terminal kf ssh app_name

Ve los agentes de servicio disponibles:

kf marketplace

Visualiza apps como SpaceManager o SpaceAuditor

Los miembros con la función SpaceManager o SpaceAuditor podrían visualizar apps disponibles en el espacio:

kf apps

Ver espacios de Kf dentro de un clúster

Todas las funciones (SpaceManager, SpaceDeveloper y SpaceAuditor) pueden ver espacios Kf disponibles en un clúster:

kf spaces

Ver a los miembros del espacio y sus roles en un espacio.

kf space-users

Marcas de robo de identidad

Para verificar el permiso de un miembro, un miembro con un permiso más privilegiado puede probar los permisos de otro miembro mediante las marcas de robo de identidad: --as y --as-group.

Por ejemplo, como administrador del clúster, puedes verificar si un usuario (nombre de usuario: bob) tiene permiso para enviar una app.

kf push APP_NAME --as bob

Verifica que un grupo (manager-group@example.com) tenga permiso para asignar un permiso a otros miembros.

kf set-space-role bob SpaceDeveloper --as-group manager-group@example.com