En este documento, se describen tres métodos para conectarte a tu clúster adjunto que cumple con las especificaciones de CNCF:
- El método 1 se conecta a tu clúster como un usuario de Google.
- El método 2 se conecta a tu clúster como miembro de un Grupo de Google.
- El método n.o 3 se conecta a tu clúster como un usuario o grupo que no es de Google.
Un servicio de Google llamado puerta de enlace de conexión habilita estos tres métodos para conectarse a un clúster registrado. Para obtener más detalles sobre la puerta de enlace de conexión, consulta Conéctate a clústeres registrados con la puerta de enlace de Connect.
Antes de comenzar
Antes de realizar cualquiera de los métodos, asegúrate de haber conectado el clúster. Para obtener más información, consulta Conecta tu clúster de CNCF que cumpla con las especificaciones.
Antes de continuar con el método 2 o 3, debes cumplir con requisitos previos adicionales. Para obtener detalles, consulta las siguientes secciones.
Antes de comenzar con el método 2
Para usar el método n.o 2 para conectarte a tu clúster conectado, asegúrate de cumplir con los siguientes requisitos previos:
- La versión más reciente de Google Cloud CLI. Para obtener información sobre cómo actualizar
gcloud CLI, consulta
gcloud components update
. - Versiones del clúster conectadas 1.26.0-gke.8, 1.27.0-gke.5, 1.28.0-gke.2 o posteriores.
Antes de comenzar con el método 3
Para usar el método n.o 3 para conectarte a tu clúster conectado, asegúrate de cumplir con los siguientes requisitos previos:
Asegúrate de tener la versión más reciente de Google Cloud CLI. Para obtener información sobre cómo actualizar gcloud CLI, consulta
gcloud components update
.Asegúrate de usar las versiones de clústeres conectadas 1.27.0-gke.5, 1.28.0-gke.2 o posteriores.
Configura la federación de identidades del personal (para que los usuarios o grupos externos puedan usar la API de clústeres conectados de GKE):
- Para los usuarios de Azure, consulta Configura la federación de identidades de personal con Azure AD.
- Para los usuarios de Okta, consulta Configura la federación de identidades de personal con Okta.
- Para usuarios de otras plataformas, consulta Configura la federación de identidades de personal.
Opcional: Asigna a tus usuarios o grupos externos las funciones adecuadas de Identity and Access Management (IAM). Este paso solo es necesario si deseas otorgar a los usuarios o grupos la capacidad de crear o actualizar clústeres; no es necesario para acceder a un clúster.
Ten en cuenta que los roles son colecciones de permisos. Cuando asignas un rol a una entidad (usuario, grupo o cuenta de servicio), le otorgas a esa entidad todos los permisos que contiene el rol.
Usuarios
Para los usuarios individuales, debes asignar el rol
gkemulticloud.admin
:gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/gkemulticloud.admin" \ --member="principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject SUBJECT_VALUE"
Reemplaza lo siguiente:
PROJECT_ID
: El ID del proyecto de Google Cloud.WORKFORCE_POOL_ID
: Es el ID que identifica de forma única tu grupo de identidad de personal en Google Cloud. Cuando le des formato al ID, asegúrate de seguir los lineamientos recomendados que se proporcionan en la documentación de IAM en Parámetros de consulta.SUBJECT_VALUE
: Es el ID que identifica de forma única a un usuario externo. Por ejemplo, el ID puede ser una dirección de correo electrónico, comoalex@cymbalgroup.com
.
Grupos
Para los grupos, debes asignar la función
gkemulticloud.admin
:gcloud projects add-iam-policy-binding PROJECT_ID \ --role="roles/gkemulticloud.admin" \ --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
Reemplaza lo siguiente:
PROJECT_ID
: El ID del proyecto de Google Cloud.WORKFORCE_POOL_ID
: Es el ID que identifica de forma única tu grupo de identidad de personal en Google Cloud. Cuando le des formato al ID, asegúrate de seguir los lineamientos recomendados que se proporcionan en la documentación de IAM en Parámetros de consulta.GROUP_ID
: Es un ID que identifica de forma exclusiva un grupo externo.
Si quieres obtener más información sobre qué funciones y permisos de la API se requieren para los clústeres conectados a GKE, consulta Roles y permisos de la API.
Método n.o 1: conéctate a tu clúster conectado como un usuario de Google
Para conectarte a un clúster conectado como usuario de Google, sigue estos pasos:
Habilita las APIs de
connectgateway
ycloudresourcemanager
con el siguiente comando:gcloud services enable --project=PROJECT_ID \ connectgateway.googleapis.com \ cloudresourcemanager.googleapis.com
Reemplaza
PROJECT_ID
por el ID del proyecto de Google Cloud.Configura y aplica reglas de RBAC de forma automática o manual:
Método automático: Si, cuando vinculaste tu clúster, especificaste usuarios de Google en el campo
--admin-users
del comandogcloud container attached clusters register
, a estos usuarios se les otorgaron privilegios de administrador de forma automática en el clúster. Por lo tanto, puedes omitir este paso.Método manual: configura de forma manual las reglas de RBAC para usuarios individuales de Google mediante la creación de un manifiesto YAML de Kubernetes. Para obtener más información, consulta Usa la autorización de RBAC.
Obtén un archivo de configuración
kubeconfig
de Kubernetes con el siguiente comando:gcloud container fleet memberships get-credentials CLUSTER_NAME
Reemplaza
CLUSTER_NAME
por el nombre del clúster cuyas credenciales de conexión deseas.
Una vez que hayas realizado estos pasos, podrás conectarte al clúster conectado como usuario de Google.
Método n.o 2: conéctate a tu clúster conectado con Grupos de Google
Este método te permite conectarte a un clúster conectado como miembro de un Grupo de Google. En otras palabras, le otorgas a un grupo de Google acceso a un clúster, y cualquier usuario que pertenezca a ese grupo de Google tendrá acceso al clúster.
El uso de Grupos de Google para otorgar acceso a clústeres es más eficiente que crear autorizaciones individuales para usuarios individuales. Por ejemplo, supongamos que deseas agregar 50 usuarios al grupo de administradores del clúster, 75 usuarios a un grupo de editor y 100 usuarios a un grupo de lectores. El método 1, que se describe en este documento, requeriría que crees reglas de RBAC en el archivo de manifiesto de Kubernetes para 225 usuarios. Sin embargo, el método n.o 2 te ahorra tiempo porque solo necesitas crear reglas de RBAC para tres Grupos de Google.
Para autorizar a los Grupos de Google a conectarse a un clúster conectado, sigue estos pasos:
Habilita las APIs de
connectgateway
ycloudresourcemanager
con el siguiente comando:gcloud services enable --project=PROJECT_ID \ connectgateway.googleapis.com \ cloudresourcemanager.googleapis.com
Reemplaza
PROJECT_ID
por el ID del proyecto de Google Cloud.Crea un grupo llamado
gke-security-groups
como grupo en el dominio de tu proyecto si no existe.Crea uno o más subgrupos dentro del grupo
gke-security-groups
para la autenticación del clúster.Agregar usuarios a los subgrupos recientemente creados
Otorga roles de IAM a Grupos de Google:
Selecciona un rol adecuado para un grupo. Esta función determina cómo interactúa el grupo con la puerta de enlace de conexión. La función puede ser una de las siguientes:
roles/gkehub.gatewayAdmin
,roles/gkehub.gatewayEditor
oroles/gkehub.gatewayReader
. Ten en cuenta que no estás otorgando permisos sobre el clúster conectado aquí, ese paso se detalla más adelante. Aquí solo determinas cómo los usuarios del grupo pueden manipular la puerta de enlace de conexión).Ejecuta el siguiente comando para otorgar el rol al grupo:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=group:GROUP_NAME@DOMAIN \ --role=GATEWAY_ROLE
Reemplaza lo siguiente:
PROJECT_ID
: El ID del proyecto de GoogleGROUP_NAME
: Es el nombre del grupo al que se otorgará acceso.DOMAIN
: Tu dominio de Google WorkspaceGATEWAY_ROLE
: Es el rol seleccionado. Por ejemplo,roles/gkehub.gatewayAdmin
,roles/gkehub.gatewayEditor
oroles/gkehub.gatewayReader
.
En un manifiesto de Kubernetes, define qué tipo de permiso tiene cada Grupo de Google en el clúster. Por ejemplo, el siguiente manifiesto otorga al Grupo de Google
cluster-admin-team
la función de administrador de clústeres:apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: gateway-cluster-admin-group subjects: - kind: Group name: cluster-admin-team@example.com roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io
Guarda el manifiesto en un archivo y aplícalo al clúster mediante la ejecución del siguiente comando:
kubectl apply -kubeconfig=KUBECONFIG_PATH -f FILENAME
Reemplaza lo siguiente:
KUBECONFIG_PATH
: Es la ruta de acceso al archivokubeconfig
.FILENAME
: Es el nombre del archivo de manifiesto que creaste.
Una vez que hayas realizado estos pasos, los usuarios que pertenecen a ciertos Grupos de Google podrán conectarse al clúster conectado. En el ejemplo dado, los usuarios que pertenecen al Grupo de Google cluster-admin-team
pueden conectarse al clúster como administradores.
Método n.o 3: Otorga acceso a identidades externas cuando conectas o actualizas un clúster
El método 3 otorga acceso a identidades externas cuando conectas o actualizas un clúster.
Para conectar un clúster que cumple con las especificaciones de CNCF, sigue los pasos que se indican en Conecta un clúster compatible con la CNCF. Para actualizar un clúster que cumple con las especificaciones de CNCF, sigue los pasos que se indican en Cómo actualizar el clúster que cumple con las CNCF.
Cuando ejecutes el comando de gcloud CLI para registrar o actualizar un clúster, especifica los parámetros
admin-users
o admin-groups
de la siguiente manera:
gcloud container attached clusters [register|update] CLUSTER_NAME \
--admin-users=principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject SUBJECT_VALUE \
--admin-groups=principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID
Reemplaza lo siguiente:
CLUSTER_NAME
: es el nombre de tu clúster.WORKFORCE_POOL_ID
: Es el ID que identifica de forma única tu grupo de identidad de personal en Google Cloud. Cuando le des formato al ID, asegúrate de seguir los lineamientos recomendados que se proporcionan en la documentación de IAM en Parámetros de consulta.SUBJECT_VALUE
: Es el ID que identifica de forma única a un usuario externo. Por ejemplo, el ID puede ser una dirección de correo electrónico, comoalex@cymbalgroup.com
.GROUP_ID
: Es un ID que identifica de forma exclusiva un grupo externo.
¿Qué sigue?
Para administrar el clúster desde la consola de Google Cloud con Cloud Identity, consulta Accede con Google Cloud Identity.