Conecta los Grupos de Google a GKE on AWS

En este documento, se describe cómo puedes conectarte a GKE on AWS como miembro de un Grupo de Google.

El uso de Grupos de Google a fin de otorgar acceso a los clústeres es más eficiente que crear autorizaciones por separado 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. Permitir que todos estos usuarios se conecten a tu clúster requeriría que crees reglas de RBAC en el archivo de manifiesto de Kubernetes para 225 usuarios. Sin embargo, habilitar el acceso a tu clúster con Grupos de Google te ahorra tiempo porque solo necesitas crear reglas de RBAC para tres Grupos de Google.

Antes de comenzar

Para conectarte a tu clúster como miembro de un Grupo de Google, debes cumplir con los siguientes requisitos previos:

  1. Asegúrate de tener la versión más reciente de Google Cloud CLI. Si quieres obtener información para actualizar gcloud CLI, consulta gcloud components update.

  2. Usa la versión 1.25 o posterior de GKE on AWS, que se requiere para el acceso a kubectl mediante la puerta de enlace de conexión.

Conéctate a tu clúster con Grupos de Google

Para autorizar a los Grupos de Google a conectarse a GKE on AWS, 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 de tu proyecto de AWS.

  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. Para el acceso kubectl con la puerta de enlace de conexión, debes otorgar funciones 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 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 los permisos que cada Grupo de Google tiene sobre 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. En el ejemplo proporcionado, los usuarios que pertenecen al grupo de Google cluster-admin-team pueden conectarse al clúster como administradores.