Associe grupos Google ao GKE no Azure

Este documento descreve como pode estabelecer ligação ao GKE no Azure como membro de um Grupo Google.

A utilização de grupos Google para conceder acesso ao cluster é mais eficiente do que a criação de autorizações separadas para utilizadores individuais. Por exemplo, suponhamos que quer adicionar 50 utilizadores ao grupo de administradores do cluster, 75 utilizadores a um grupo de editores e 100 utilizadores a um grupo de leitores. Permitir que todos estes utilizadores se liguem ao seu cluster exigiria a criação de regras RBAC no ficheiro do manifesto do Kubernetes para 225 utilizadores. No entanto, a ativação do acesso ao cluster com grupos Google poupa-lhe tempo, uma vez que só tem de criar regras de RBAC para três grupos Google.

Antes de começar

Para se ligar ao cluster como membro de um grupo Google, tem de cumprir os seguintes pré-requisitos:

  1. Certifique-se de que tem a versão mais recente da CLI Google Cloud. Para obter informações sobre a atualização da CLI gcloud, consulte gcloud components update.

  2. Use o GKE no Azure versão 1.25 ou superior, que é necessário para o kubectlacesso através do gateway de ligação.

Ligue-se ao seu cluster com os Grupos Google

Para autorizar os grupos Google a estabelecerem ligação ao GKE no Azure, siga estes passos:

  1. Ative as APIs connectgateway e cloudresourcemanager com o seguinte comando:

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

    Substitua PROJECT_ID pelo ID do seu projeto do Azure.

  2. Crie um grupo denominado gke-security-groups como um grupo no domínio do seu projeto, se não existir.

  3. Crie um ou mais subgrupos no grupo gke-security-groups para autenticação de cluster.

  4. Adicione utilizadores aos subgrupos recém-criados.

  5. Para o acesso kubectl através do gateway de ligação, tem de conceder funções do IAM aos grupos Google:

    1. Selecione uma função adequada para um grupo. Esta função determina como o grupo interage com o gateway de ligação. A função pode ser uma das seguintes: roles/gkehub.gatewayAdmin, roles/gkehub.gatewayEditor, roles/gkehub.gatewayReader. (Tenha em atenção que não está a conceder autorizações sobre o cluster aqui. Esse passo é posterior. Aqui, está apenas a determinar como os utilizadores do grupo podem manipular a gateway de ligação.)

    2. Execute o seguinte comando para conceder a função ao grupo:

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

      Substitua o seguinte:

      • PROJECT_ID: o ID do seu projeto Google
      • GROUP_NAME: o nome do grupo ao qual conceder acesso
      • DOMAIN: o seu domínio do Google Workspace
      • GATEWAY_ROLE: a função selecionada. Por exemplo roles/gkehub.gatewayAdmin, roles/gkehub.gatewayEditor ou roles/gkehub.gatewayReader.
  6. Num manifesto do Kubernetes, defina as autorizações que cada grupo Google tem no cluster. Por exemplo, o seguinte manifesto concede ao grupo do Google cluster-admin-team a função de administrador do cluster:

    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 o manifesto num ficheiro e aplique-o ao cluster executando o seguinte comando:

    kubectl apply -kubeconfig=KUBECONFIG_PATH -f FILENAME
    

    Substitua o seguinte:

    • KUBECONFIG_PATH: o caminho para o ficheiro kubeconfig.
    • FILENAME: o nome do ficheiro de manifesto que criou.

Depois de realizar estes passos, os utilizadores pertencentes a determinados grupos Google podem estabelecer ligação ao cluster. No exemplo apresentado, os utilizadores pertencentes ao grupo do Google cluster-admin-team podem estabelecer ligação ao cluster como administradores.