Conectar grupos do Google ao GKE no Azure

Neste documento, descrevemos como se conectar ao GKE no Azure como membro de um grupo do Google.

Usar os Grupos do Google para conceder acesso ao cluster é mais eficiente do que criar autorizações separadas para usuários individuais. Por exemplo, digamos que você queira adicionar 50 usuários ao grupo de administradores de clusters, 75 usuários a um grupo de editores e 100 usuários a um grupo de leitores. Permitir que todos esses usuários se conectem ao seu cluster exigiria que você criasse regras do RBAC no arquivo de manifesto do Kubernetes para 225 usuários. Ativar o acesso ao cluster com os Grupos do Google economiza tempo, já que você só precisa criar regras do RBAC para três Grupos do Google.

Antes de começar

Para se conectar ao cluster como membro de um Grupo do Google, é necessário atender aos seguintes pré-requisitos:

  1. Verifique se você tem a versão mais recente da CLI do Google Cloud CLI. Para informações sobre como atualizar a CLI gcloud, consulte gcloud components update.

  2. Use o GKE no Azure versão 1.25 ou mais recente, que é necessário para o acesso kubectl usando o gateway de conexão.

Conecte-se ao cluster com os Grupos do Google

Para autorizar os grupos do Google a se conectarem ao GKE no Azure, siga estas etapas:

  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 projeto do Azure.

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

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

  4. Adicione usuários aos subgrupos recém-criados.

  5. Para ter acesso kubectl usando o gateway de conexão, você precisa conceder papéis do IAM aos Grupos do Google:

    1. Selecione a função apropriada para um grupo. Esse papel determina como o grupo interage com o gateway de conexão. O papel pode ser um dos seguintes: roles/gkehub.gatewayAdmin, roles/gkehub.gatewayEditor, roles/gkehub.gatewayReader. (Observe que você não está concedendo permissões sobre o cluster aqui. Essa etapa vem depois. Aqui, você está apenas determinando como os usuários do grupo podem manipular o gateway de conexão.)

    2. Execute o seguinte comando para conceder o papel ao grupo:

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

      Substitua:

      • PROJECT_ID: o ID do projeto do Google
      • GROUP_NAME: o nome do grupo ao qual conceder acesso
      • DOMAIN: seu domínio do Google Workspace
      • GATEWAY_ROLE: o papel selecionado. Por exemplo, roles/gkehub.gatewayAdmin, roles/gkehub.gatewayEditor ou roles/gkehub.gatewayReader.
  6. Em um manifesto do Kubernetes, defina as permissões de cada grupo do Google no cluster. Por exemplo, o manifesto a seguir concede ao Grupo do Google cluster-admin-team o papel 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. Salve o manifesto em um arquivo e aplique-o ao cluster executando o seguinte comando:

    kubectl apply -kubeconfig=KUBECONFIG_PATH -f FILENAME
    

    Substitua:

    • KUBECONFIG_PATH: o caminho para o arquivo kubeconfig
    • FILENAME: o nome do arquivo de manifesto que você criou

Depois de executar essas etapas, os usuários pertencentes a determinados grupos do Google poderão se conectar ao cluster. No exemplo fornecido, os usuários pertencentes ao Grupo do Google cluster-admin-team podem se conectar ao cluster como administradores.