Conectar grupos de Google a GKE en Azure

En este documento se describe cómo puedes conectarte a GKE en Azure como miembro de un grupo de Google.

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. Para que todos estos usuarios puedan conectarse a tu clúster, tendrías que crear reglas RBAC en el archivo de manifiesto de Kubernetes para 225 usuarios. Sin embargo, si habilitas el acceso a tu clúster con grupos de Google, ahorrarás tiempo, ya que solo tendrás que crear reglas de RBAC para tres grupos de Google.

Antes de empezar

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

  1. Asegúrate de que tienes la versión más reciente de la CLI de Google Cloud. Para obtener información sobre cómo actualizar gcloud CLI, consulta gcloud components update.

  2. Usa la versión 1.25 o una posterior de GKE en Azure, que es necesaria para kubectl acceder mediante la pasarela de conexión.

Conectarse a un clúster con grupos de Google

Para autorizar a los grupos de Google a conectarse a GKE en Azure, 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 proyecto de Azure.

  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. Para obtener acceso a kubectl mediante la pasarela de conectividad, debes asignar 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. 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 los permisos que 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. En el ejemplo dado, los usuarios que pertenecen al grupo Google cluster-admin-team pueden conectarse al clúster como administradores.