Conéctate a tu clúster que cumple con las CNCF

En este documento, se describen tres métodos para conectarse a tu clúster conectado a la CNCF que cumple con las especificaciones:

Un servicio de Google llamado Connect Gateway habilita estos tres métodos para conectarse a un clúster registrado. Para obtener 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 adjuntado tu clúster. Para obtener más información, consulta Conecta tu clúster que cumple con las CNCF.

Antes de continuar con los métodos 2 o 3, debes cumplir con requisitos 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 sobre cómo actualizar la CLI de gcloud, 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 sobre cómo actualizar la CLI de gcloud, consulta gcloud components update.

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

  3. Configura la federación de Workforce Identity (para que los usuarios o grupos externos puedan usar la API de clústeres adjuntos 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 forma única tu grupo de identidad del 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 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 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 forma única tu grupo de identidad del 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 forma única un grupo externo.

    Si deseas obtener más información sobre qué roles y permisos de la API son necesarios para los clústeres adjuntos de GKE, consulta Roles y permisos de la API.

Método 1: Conéctate al clúster adjunto como usuario de Google

Para conectarte a un clúster adjunto 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 adjuntaste tu clúster, especificaste usuarios de Google en el campo --admin-users del comando gcloud container attached clusters register, estos usuarios recibieron 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 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 adjunto 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 adjunto, 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 conexión. 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 adjunto, 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 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: Es el ID de tu proyecto de Google.
      • GROUP_NAME: Es el nombre del grupo al que se otorgará acceso.
      • DOMAIN: Tu dominio de Google Workspace
      • GATEWAY_ROLE: 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 mediante la ejecución del siguiente comando:

    kubectl apply -kubeconfig=KUBECONFIG_PATH -f FILENAME
    

    Reemplaza lo siguiente:

    • KUBECONFIG_PATH: la ruta de acceso a tu archivo kubeconfig
    • 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 adjunto. 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 adjuntar un clúster que cumpla con la CNCF, sigue los pasos que se indican en Conecta tu clúster que cumple con la CNCF. Para actualizar un clúster que cumpla con la CNCF, sigue los pasos que se indican en Actualiza tu clúster que cumple con la CNCF.

Cuando ejecutes el comando de la CLI de gcloud 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 forma única tu grupo de identidad del 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 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: un ID que identifica de forma única 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.