Conecte grupos do Google ao GKE na AWS

Este documento descreve como você pode se conectar ao GKE na AWS como membro de um grupo do Google .

Usar 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 Administrador do cluster, 75 usuários ao grupo Editor e 100 usuários ao grupo Leitor. Para permitir que todos esses usuários se conectem ao seu cluster, você precisaria criar regras RBAC no arquivo de manifesto do Kubernetes para 225 usuários. No entanto, habilitar o acesso ao seu cluster com grupos do Google economiza tempo, pois você só precisa criar regras RBAC para três grupos do Google.

Antes de começar

Para se conectar ao seu cluster como membro de um grupo do Google, você precisa atender aos seguintes pré-requisitos:

  1. Certifique-se de ter a versão mais recente do Google Cloud CLI. Para obter informações sobre como atualizar o gcloud CLI, consulte gcloud components update .

  2. Use o GKE na AWS versão 1.25 ou superior, necessário para acesso kubectl usando o gateway de conexão.

Conecte-se ao seu cluster com os grupos do Google

Para autorizar grupos do Google a se conectar ao GKE na AWS, siga estas etapas:

  1. Habilite 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 na AWS.

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

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

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

  5. Para acesso kubectl usando o gateway de conexão, você precisa conceder funções do IAM aos grupos do Google:

    1. Selecione uma função apropriada para um grupo. Essa função determina como o grupo interage com o gateway de conexão. A função pode ser uma das 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 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 : seu ID de projeto do Google
      • GROUP_NAME : o nome do grupo ao qual será concedido acesso
      • DOMAIN : 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. Em um manifesto do Kubernetes, defina as permissões que cada grupo do Google tem no cluster. Por exemplo, o manifesto a seguir 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. Salve o manifesto em um arquivo 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 seu arquivo kubeconfig .
    • FILENAME : o nome do arquivo de manifesto que você criou.

Após executar essas etapas, usuários pertencentes a determinados grupos do Google poderão se conectar ao cluster. No exemplo fornecido, usuários pertencentes ao grupo do Google cluster-admin-team podem se conectar ao cluster como administradores.