Conectarse a un clúster conforme a la CNCF

En este documento se describen tres métodos para conectarse a un clúster adjunto conforme a la CNCF:

Estos tres métodos para conectarse a un clúster registrado se habilitan mediante un servicio de Google llamado pasarela de conexión. Para obtener más información sobre la pasarela de conexión, consulta el artículo Conectarse a clústeres registrados con la pasarela de conexión.

Esta página está dirigida a administradores de TI y operadores que quieran configurar, monitorizar y gestionar la infraestructura de la nube. Para obtener más información sobre los roles habituales y las tareas de ejemplo a las que hacemos referencia en el contenido, consulta Roles y tareas habituales de los usuarios de GKE. Google Cloud

Antes de empezar

Antes de llevar a cabo cualquiera de los métodos, asegúrate de haber adjuntado tu clúster. Para obtener más información, consulta Adjuntar un clúster conforme a la CNCF.

Antes de continuar con el método 2 o el método 3, debes cumplir otros requisitos. Para obtener más información, consulta las siguientes secciones.

Antes de empezar con el método 2

Para usar el método 2 para conectarte al clúster adjunto, asegúrate de que cumples los siguientes requisitos:

  • La versión más reciente de Google Cloud CLI. Para obtener información sobre cómo actualizar la herramienta de línea de comandos gcloud, consulta gcloud components update.
  • Versiones 1.26.0-gke.8, 1.27.0-gke.5, 1.28.0-gke.2 o posteriores de clústeres adjuntos.

Antes de empezar con el método 3

Para usar el método 3 de conexión a tu clúster adjunto, asegúrate de que cumples los siguientes requisitos:

  1. Asegúrate de que tienes 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 que estás usando las versiones 1.27.0-gke.5 o 1.28.0-gke.2 de clústeres adjuntos, o una posterior.

  3. Configura la federación de identidades de trabajo (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 gestión de identidades y accesos (IAM) adecuados. Este paso solo es necesario si quieres conceder a 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 conjuntos de permisos. Cuando asignas un rol a una entidad (usuario, grupo o cuenta de servicio), le das a esa entidad todos los permisos que contiene el rol.

    Usuarios

    En el caso de usuarios concretos, debe 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"
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID de tu proyecto de Google Cloud .
    • WORKFORCE_POOL_ID: el ID que identifica de forma única tu grupo de identidades de Workforce en Google Cloud. Cuando dé formato al ID, asegúrese de seguir las directrices recomendadas que se indican en la documentación de gestión de identidades y accesos, en la sección 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

    En el caso de 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"
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID de tu proyecto de Google Cloud .
    • WORKFORCE_POOL_ID: el ID que identifica de forma única tu grupo de identidades de Workforce en Google Cloud. Cuando dé formato al ID, asegúrese de seguir las directrices recomendadas que se indican en la documentación de IAM, en la sección Parámetros de consulta.
    • GROUP_ID: ID que identifica de forma única a un grupo externo.

    Para obtener más información sobre los roles y permisos de API necesarios para los clústeres adjuntos de GKE, consulta Roles y permisos de API.

Método 1: Conectarse 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 connectgateway y cloudresourcemanager con el siguiente comando:

     gcloud services enable --project=PROJECT_ID \
         connectgateway.googleapis.com \
         cloudresourcemanager.googleapis.com
    

    Sustituye PROJECT_ID por el ID de tu Google Cloud proyecto.

  2. Configura y aplica reglas de control de acceso basado en roles de forma automática o manual:

    • Método automático: si, al adjuntar el clúster, especificó usuarios de Google en el campo --admin-users del comando gcloud container attached clusters register, estos usuarios recibieron automáticamente privilegios de administrador en el clúster. Por lo tanto, puedes saltarte este paso.

    • Método manual: configura manualmente las reglas de RBAC para usuarios de Google concretos creando un manifiesto YAML de Kubernetes. Para obtener más información, consulta Usar la autorización RBAC.

  3. Obtén un archivo de configuración kubeconfig de Kubernetes con el siguiente comando:

    gcloud container fleet memberships get-credentials CLUSTER_NAME
    

    Sustituye CLUSTER_NAME por el nombre del clúster cuyas credenciales de conexión quieras obtener.

Una vez que hayas completado estos pasos, podrás conectarte al clúster adjunto como usuario de Google.

Método 2: Conectarse al clúster adjunto con Grupos de Google

Este método te permite conectarte a un clúster adjunto como miembro de un grupo de Google. Es decir, concedes acceso a un clúster a un grupo de Google y cualquier usuario que pertenezca a ese grupo de Google tendrá acceso al clúster.

Usar Grupos de Google para conceder acceso al clúster es más eficiente que crear autorizaciones independientes para cada usuario. Por ejemplo, supongamos que quieres añadir 50 usuarios al grupo Administrador del clúster, 75 usuarios al grupo Editor y 100 usuarios al grupo Lector. El método 1, descrito en este documento, requiere que crees reglas de RBAC en el archivo de manifiesto de Kubernetes para 225 usuarios. Sin embargo, el segundo método te ahorra tiempo porque solo tienes que 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 connectgateway y cloudresourcemanager con el siguiente comando:

      gcloud services enable --project=PROJECT_ID \
          connectgateway.googleapis.com \
          cloudresourcemanager.googleapis.com
    

    Sustituye PROJECT_ID por el ID de tuGoogle Cloud proyecto.

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

  3. Crea uno o varios subgrupos en el grupo gke-security-groups para la autenticación de clústeres.

  4. Añade usuarios a los subgrupos que acabas de crear.

  5. Asigna roles de gestión de identidades y accesos a grupos de Google:

    1. Selecciona el rol adecuado para un grupo. Este rol determina cómo interactúa el grupo con la pasarela de conexión. El rol puede ser uno de los siguientes: roles/gkehub.gatewayAdmin, roles/gkehub.gatewayEditor o roles/gkehub.gatewayReader. Ten en cuenta que aquí no estás concediendo permisos sobre el clúster adjunto. Ese paso se realiza más adelante. Aquí solo se determina cómo pueden manipular los usuarios del grupo la pasarela de conexión.

    2. Ejecuta el siguiente comando para asignar el rol al grupo:

      gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=group:GROUP_NAME@DOMAIN \
        --role=GATEWAY_ROLE
      

      Haz los cambios siguientes:

      • PROJECT_ID: tu ID de proyecto de Google
      • GROUP_NAME: el nombre del grupo al que se va a conceder 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, el siguiente manifiesto otorga el rol de administrador de clúster al grupo de Google cluster-admin-team:

    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 ejecutando el siguiente comando:

    kubectl apply -kubeconfig=KUBECONFIG_PATH -f FILENAME
    

    Haz los cambios siguientes:

    • KUBECONFIG_PATH: la ruta al archivo kubeconfig.
    • FILENAME: el nombre del archivo de manifiesto que has creado.

Una vez que hayas completado estos pasos, los usuarios que pertenezcan a determinados grupos de Google podrán conectarse al clúster adjunto. En el ejemplo proporcionado, los usuarios que pertenecen al grupo de Google cluster-admin-team pueden conectarse al clúster como administradores.

Método 3: Dar acceso a identidades externas al adjuntar o actualizar un clúster

El método 3 concede acceso a identidades externas cuando adjuntas o actualizas un clúster.

Para conectar un clúster conforme a la CNCF, sigue los pasos que se indican en Conectar un clúster conforme a la CNCF. Para actualizar un clúster conforme a la CNCF, sigue los pasos que se indican en Actualizar un clúster conforme a la CNCF.

Cuando ejecutes el comando de gcloud CLI para registrar o actualizar un clúster, especifica los parámetros admin-users o admin-groups, o ambos, 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

Haz los cambios siguientes:

  • CLUSTER_NAME: el nombre de tu clúster.
  • WORKFORCE_POOL_ID: el ID que identifica de forma única tu grupo de identidades de Workforce en Google Cloud. Cuando dé formato al ID, asegúrese de seguir las directrices recomendadas que se indican en la documentación de IAM, en la sección 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: ID que identifica de forma única a un grupo externo.

Siguientes pasos

Para gestionar el clúster desde la consola con tu identidad de Cloud, consulta Iniciar sesión con tu identidad de Google Cloud . Google Cloud