Conéctate al clúster conectado de EKS

En este documento, se describen tres métodos para conectarte a tu clúster conectado a EKS:

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

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:

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

  2. Asegúrate de usar las versiones de clústeres conectadas 1.27.0-gke.5, 1.28.0-gke.2 o posteriores.

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

  4. 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, como alex@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:

  1. Habilita las APIs de connectgateway y cloudresourcemanager 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.

  2. 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 comando gcloud 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.

  3. 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:

  1. Habilita las APIs de connectgateway y cloudresourcemanager 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.

  2. Crea un grupo llamado gke-security-groups como grupo en el dominio de tu proyecto si no existe.

  3. Crea uno o más subgrupos dentro del grupo gke-security-groups para la autenticación del clúster.

  4. Agregar usuarios a los subgrupos recientemente creados

  5. Otorga roles de IAM a Grupos de Google:

    1. 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 o roles/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).

    2. 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 Google
      • GROUP_NAME: Es el nombre del grupo al que se otorgará acceso.
      • DOMAIN: Tu dominio de Google Workspace
      • GATEWAY_ROLE: Es el rol seleccionado. Por ejemplo, roles/gkehub.gatewayAdmin, roles/gkehub.gatewayEditor o roles/gkehub.gatewayReader.
  6. 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
    
  7. 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 archivo kubeconfig.
    • 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 de EKS, sigue los pasos que se indican en Conecta tu clúster de EKS. Para actualizar un clúster de EKS, sigue los pasos que se indican en la sección sobre cómo actualizar tu clúster de EKS.

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, como alex@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.