En este documento, se describen tres métodos para conectarse al clúster conectado de AKS:
- El método 1 se conecta al clúster como usuario de Google.
- El método 2 se conecta a tu clúster como miembro de un Grupo de Google.
- El método 3 se conecta a tu clúster como usuario o grupo ajeno a Google.
Un servicio de Google llamado puerta de enlace de Connect habilita estos tres métodos para conectarse a un clúster registrado. Para obtener detalles sobre la puerta de enlace de Connect, consulta Conéctate a clústeres registrados con la puerta de enlace de Connect.
Antes de comenzar
Antes de llevar a cabo cualquiera de los métodos, asegúrate de haber conectado tu clúster. Para obtener más información, consulta Conecta tu clúster de AKS.
Antes de continuar con los métodos 2 o 3, debes cumplir con los requisitos previos adicionales. Para obtener detalles, consulta las siguientes secciones.
Antes de comenzar el método 2
Para usar el método 2 de conexión a tu clúster conectado, asegúrate de tener los siguientes requisitos previos:
- La versión más reciente de Google Cloud CLI. Para obtener información acerca de la actualización
de gcloud CLI, consulta
gcloud components update
. - Versiones de clústeres conectados 1.26.0-gke.8, 1.27.0-gke.5, 1.28.0-gke.2 o posteriores.
Antes de comenzar el método 3
Para usar el método 3 de conexión a tu clúster conectado, asegúrate de tener los siguientes requisitos previos:
Asegúrate de tener la versión más reciente de Google Cloud CLI. Para obtener información acerca de la actualización de gcloud CLI, consulta
gcloud components update
.Asegúrate de usar las versiones de clústeres conectados 1.27.0-gke.5, 1.28.0-gke.2 o posteriores.
Configura la federación de identidades de 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 los roles de Identity and Access Management (IAM) adecuados. Esta paso solo es necesario si deseas otorgar a los usuarios o grupos la capacidad de crear o actualizar clústeres; no es necesario solo 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 de
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
: el ID que identifica de manera inequívoca a tu grupo de identidades de personal en Google Cloud. Cuando formatees el ID, asegúrate de seguir los lineamientos recomendados que se proporcionan en la documentación de IAM en Parámetros de consulta.SUBJECT_VALUE
: el ID que identifica de manera inequívoca 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 el rol de
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
: el ID que identifica de manera inequívoca a tu grupo de identidades de personal en Google Cloud. Cuando formatees el ID, asegúrate de seguir los lineamientos recomendados que se proporcionan en la documentación de IAM en Parámetros de consulta.GROUP_ID
: un ID que identifica de manera inequívoca a un grupo externo.
Para obtener más información acerca de qué roles y permisos de la API son necesarios para los clústeres conectados de GKE, consulta Roles y permisos de la API.
Método 1: Conéctate al clúster conectado como 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 conectaste 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 automáticamente 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 a través de la creación de un manifiesto YAML de Kubernetes. Para obtener más detalles, 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, puedes conectarte al clúster conectado como usuario de Google.
Método 2: Conéctate al 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.
Usar Grupos de Google para otorgar acceso al clúster es más eficiente que crear autorizaciones separadas para usuarios individuales. Por ejemplo, supongamos que deseas agregar 50 usuarios al grupo de administradores de clústeres, 75 usuarios a un grupo de editores y 100 usuarios a un grupo de lectores. El método 1, descrito 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 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 un 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 de clústeres.Agrega usuarios a los subgrupos recién creados.
Otorga roles de IAM a Grupos de Google:
Selecciona un rol apropiado para un grupo. Este rol determina cómo interactúa el grupo con la puerta de enlace de Connect. El rol puede ser uno de los siguientes:
roles/gkehub.gatewayAdmin
,roles/gkehub.gatewayEditor
,roles/gkehub.gatewayReader
. (Ten en cuenta que no otorgas permisos sobre el clúster conectado, ya que ese paso se realiza más adelante. Aquí, solo se determina cómo los usuarios del grupo pueden manipular la puerta de enlace de Connect).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 de tu proyecto de GoogleGROUP_NAME
: el nombre del grupo al que se otorgará accesoDOMAIN
: tu dominio de Google WorkspaceGATEWAY_ROLE
: 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, en el siguiente manifiesto, se otorga al Grupo de Google
cluster-admin-team
el rol de administrador del clúster: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 a través de la ejecución del siguiente comando:
kubectl apply -kubeconfig=KUBECONFIG_PATH -f FILENAME
Reemplaza lo siguiente:
KUBECONFIG_PATH
: la ruta de acceso a tu archivokubeconfig
.FILENAME
: el nombre del archivo de manifiesto que creaste.
Una vez que hayas realizado estos pasos, los usuarios que pertenecen a ciertos Grupos de Google pueden
conectarse al clúster conectado. En el ejemplo determinado, los usuarios que pertenecen al
Grupo de Google cluster-admin-team
pueden conectarse al clúster como
administradores.
Método 3: Otorga acceso a identidades externas cuando te conectas a un clúster o lo actualizas
El método 3 otorga acceso a las identidades externas cuando conectas un clúster o lo actualizas.
Para conectar un clúster de AKS, sigue los pasos que se indican en Conecta tu clúster de AKS. Para actualizar un clúster de AKS, sigue los pasos que se indican en Actualiza tu clúster de AKS.
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
: el ID que identifica de manera inequívoca a tu grupo de identidades de personal en Google Cloud. Cuando formatees el ID, asegúrate de seguir los lineamientos recomendados que se proporcionan en la documentación de IAM en Parámetros de consulta.SUBJECT_VALUE
: el ID que identifica de manera inequívoca a un usuario externo. Por ejemplo, el ID puede ser una dirección de correo electrónico, comoalex@cymbalgroup.com
.GROUP_ID
: un ID que identifica de manera inequívoca a un grupo externo.
¿Qué sigue?
Para administrar el clúster desde la consola de Google Cloud con Cloud Identity, consulta Accede con tu identidad de Google Cloud.