Conéctate a tu clúster adjunto de EKS

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

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

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 para conectarte al clúster adjunto, 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 adjunto, asegúrate de tener los siguientes requisitos previos:

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

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

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

  4. Opcional: Asigna a tus usuarios o grupos externos los roles de administración de identidades y accesos (IAM) adecuadas. Este paso solo es necesario si desea conceder 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 la función.

    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: 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: Es 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, como alex@cymbalgroup.com.

    Grupos

    Para los grupos, debes asignar el rol 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: Es un ID que identifica de manera inequívoca 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:

  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 conectaste 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 automáticamente en el clúster. Por lo tanto, puedes saltar 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.

  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, 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 adjunto 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:

  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 un 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 de clústeres.

  4. Agrega usuarios a los subgrupos recién creados.

  5. Otorga roles de IAM a Grupos de Google:

    1. 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 una de las 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).

    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: Es el ID de tu proyecto de Google.
      • GROUP_NAME: Es el nombre del grupo al que se otorgará acceso.
      • DOMAIN: Es 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, 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
    
  7. Guarda el manifiesto en un archivo y aplícalo al clúster con la ejecución del siguiente comando:

    kubectl apply -kubeconfig=KUBECONFIG_PATH -f FILENAME
    

    Reemplaza lo siguiente:

    • KUBECONFIG_PATH: Es la ruta de acceso a tu 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 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 adjuntas o actualizas un clúster

Método 3: otorga acceso a las identidades externas cuando adjuntas 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 Actualiza 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: 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: Es 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, como alex@cymbalgroup.com.
  • GROUP_ID: Es un ID que identifica de manera inequívoca un grupo externo.

¿Qué sigue?

Para administrar el clúster desde la consola de Google Cloud con tu Cloud Identity, consulta Accede con tu identidad de Google Cloud.