Conectar grupos de Google a GKE en Azure

Este documento describe cómo puede conectarse a GKE en Azure como miembro de un grupo de Google .

Usar grupos de Google para otorgar acceso al clúster es más eficiente que crear autorizaciones independientes para usuarios individuales. Por ejemplo, supongamos que desea agregar 50 usuarios al grupo Administrador del clúster, 75 al grupo Editor y 100 al grupo Lector. Para permitir que todos estos usuarios se conecten al clúster, deberá crear reglas RBAC en el archivo de manifiesto de Kubernetes para 225 usuarios. Sin embargo, habilitar el acceso al clúster con grupos de Google le ahorra tiempo, ya que solo necesita crear reglas RBAC para tres grupos de Google.

Antes de empezar

Para conectarse a su clúster como miembro de un grupo de Google, debe cumplir los siguientes requisitos previos:

  1. Asegúrate de tener la última versión de la CLI de Google Cloud. Para obtener información sobre cómo actualizar la CLI de Google Cloud, consulta gcloud components update .

  2. Utilice GKE en Azure versión 1.25 o superior, que es necesaria para el acceso 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 en Azure, siga estos pasos:

  1. Habilite las API connectgateway y cloudresourcemanager con el siguiente comando:

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

    Reemplace PROJECT_ID con el ID de su proyecto de Azure.

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

  3. Cree uno o más subgrupos dentro del grupo gke-security-groups para la autenticación del clúster.

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

  5. Para acceder kubectl mediante la puerta de enlace de conexión, debe otorgar roles de IAM a los grupos de Google:

    1. Seleccione un rol adecuado para un grupo. Este rol determina cómo interactúa el grupo con la puerta de enlace de conexión. El rol puede ser uno de los siguientes: roles/gkehub.gatewayAdmin , roles/gkehub.gatewayEditor o roles/gkehub.gatewayReader . (Tenga en cuenta que aquí no se otorgan permisos sobre el clúster; ese paso se describe más adelante. Aquí, simplemente se determina cómo los usuarios del grupo pueden manipular la puerta de enlace de conexión).

    2. Ejecute 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
      

      Reemplace lo siguiente:

      • PROJECT_ID : su ID de proyecto de Google
      • GROUP_NAME : el nombre del grupo al que se concederá acceso
      • DOMAIN : su 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, defina los permisos que cada grupo de Google tiene en el clúster. Por ejemplo, el siguiente manifiesto 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. Guarde el manifiesto en un archivo y aplíquelo al clúster ejecutando el siguiente comando:

    kubectl apply -kubeconfig=KUBECONFIG_PATH -f FILENAME
    

    Reemplace lo siguiente:

    • KUBECONFIG_PATH : la ruta a su archivo kubeconfig .
    • FILENAME : el nombre del archivo de manifiesto que usted creó.

Una vez realizados estos pasos, los usuarios de ciertos grupos de Google podrán conectarse al clúster. En el ejemplo, los usuarios del grupo de Google cluster-admin-team pueden conectarse al clúster como administradores.