Conectar-se ao cluster em conformidade com a CNCF

Neste documento, descrevemos três métodos de conexão ao cluster anexado em conformidade com a CNCF:

Esses três métodos de conexão a um cluster registrado são ativados por um serviço do Google chamado gateway de conexão. Para detalhes sobre o gateway de conexão, consulte Como se conectar a clusters registrados com o gateway de conexão.

Antes de começar

Antes de executar qualquer um dos métodos, verifique se você anexou o cluster. Veja mais detalhes em Anexar seu cluster em conformidade com a CNCF.

Antes de continuar com o método 2 ou 3, você precisa atender a outros pré-requisitos. Veja mais detalhes nas próximas seções.

Antes de começar o método nº 2

Para usar o método 2 de conexão ao cluster anexado, verifique se você tem os seguintes pré-requisitos:

  • Versão mais recente da CLI do Google Cloud. Para informações sobre como atualizar a gcloud CLI, consulte gcloud components update.
  • Versões de cluster anexadas 1.26.0-gke.8, 1.27.0-gke.5, 1.28.0-gke.2 ou mais recentes.

Antes de começar o método nº 3

Para usar o método 3 de conexão ao cluster anexado, verifique se você tem os seguintes pré-requisitos:

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

  2. Verifique se você está usando as versões 1.27.0-gke.5, 1.28.0-gke.2 ou posterior do cluster anexado.

  3. Configure a federação de identidade da força de trabalho para que usuários ou grupos externos possam usar a API de clusters anexados do GKE:

  4. Opcional: atribua os papéis apropriados do Identity and Access Management (IAM) a usuários ou grupos externos. Essa etapa só será necessária se você quiser conceder aos usuários ou grupos a capacidade de criar ou atualizar clusters. Ela não é necessária para simplesmente acessar um cluster.

    Os papéis são coleções de permissões. Ao atribuir um papel a uma entidade, como usuário, grupo ou conta de serviço, você concede a ela todas as permissões contidas no papel.

    Usuários

    Para usuários individuais, você precisa atribuir o papel gkemulticloud.admin:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --role="roles/gkemulticloud.admin" \
      --member="principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject SUBJECT_VALUE"
    

    Substitua:

    • PROJECT_ID: o ID do seu projeto do Google Cloud.
    • WORKFORCE_POOL_ID: o ID que identifica exclusivamente o pool de identidade da força de trabalho no Google Cloud. Ao formatar o ID, siga as diretrizes recomendadas fornecidas na documentação do IAM em Parâmetros de consulta.
    • SUBJECT_VALUE: o ID que identifica exclusivamente um usuário externo. Por exemplo, o ID pode ser um endereço de e-mail, como alex@cymbalgroup.com.

    Grupos

    Para grupos, é necessário atribuir o papel gkemulticloud.admin:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --role="roles/gkemulticloud.admin" \
      --member="principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID"
    

    Substitua:

    • PROJECT_ID: o ID do seu projeto do Google Cloud.
    • WORKFORCE_POOL_ID: o ID que identifica exclusivamente o pool de identidade da força de trabalho no Google Cloud. Ao formatar o ID, siga as diretrizes recomendadas fornecidas na documentação do IAM, em Parâmetros de consulta.
    • GROUP_ID: um ID que identifica exclusivamente um grupo externo.

    Para mais informações sobre quais papéis e permissões da API são necessários para clusters anexados do GKE, consulte Papéis e permissões da API.

Método 1: conectar-se ao seu cluster anexado como um usuário do Google

Para se conectar a um cluster anexado como um usuário do Google, 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 Google Cloud.

  2. Configure e aplique regras de RBAC automática ou manualmente:

    • Método automático: se, ao anexar o cluster, você tiver especificado usuários do Google no campo --admin-users do comando gcloud container attached clusters register, esses usuários receberão automaticamente privilégios de administrador. no cluster. Portanto, você pode pular esta etapa.

    • Método manual: configure manualmente as regras de RBAC para usuários individuais do Google criando um manifesto YAML do Kubernetes. Para detalhes, consulte Como usar a autorização RBAC.

  3. Consiga um arquivo de configuração kubeconfig do Kubernetes com o seguinte comando:

    gcloud container fleet memberships get-credentials CLUSTER_NAME
    

    Substitua CLUSTER_NAME pelo nome do cluster com as credenciais de conexão que você quer.

Depois de executar essas etapas, será possível se conectar ao cluster anexado como um usuário do Google.

Método 2: conectar-se ao seu cluster anexado com Grupos do Google

Esse método permite que você se conecte a um cluster anexado como membro de um grupo do Google. Em outras palavras, você concede acesso ao cluster a um grupo do Google, e todos os usuários pertencentes a esse grupo têm acesso ao cluster.

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. O método 1, descrito neste documento, exige que você crie regras do RBAC no arquivo de manifesto do Kubernetes para 225 usuários. No entanto, o método 2 economiza tempo porque você só precisa criar regras do RBAC para três grupos do Google.

Para autorizar os grupos do Google a se conectarem a um cluster anexado, 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 Google Cloud.

  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. 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 anexado 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 o tipo de permissão que cada grupo do Google tem 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 anexado. No exemplo fornecido, os usuários pertencentes ao Grupo do Google cluster-admin-team podem se conectar ao cluster como administradores.

Método 3: conceder acesso a identidades externas ao anexar ou atualizar um cluster

O método 3 concede acesso a identidades externas quando você anexa ou atualiza um cluster.

Para anexar um cluster em conformidade com a CNCF, siga as etapas em Anexar seu cluster em conformidade com a CNCF. Para atualizar um cluster em conformidade com a CNCF, siga as etapas em Atualizar o cluster em conformidade com a CNCF.

Ao executar o comando da gcloud CLI para registrar ou atualizar um cluster, especifique os parâmetros admin-users e/ou admin-groups da seguinte maneira:

gcloud container attached clusters [register|update] CLUSTER_NAME \
    --admin-users=principal://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/subject SUBJECT_VALUE \
    --admin-groups=principalSet://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/group/GROUP_ID

Substitua:

  • CLUSTER_NAME: o nome do cluster.
  • WORKFORCE_POOL_ID: o ID que identifica exclusivamente o pool de identidade da força de trabalho no Google Cloud. Ao formatar o ID, siga as diretrizes recomendadas fornecidas na documentação do IAM, em Parâmetros de consulta.
  • SUBJECT_VALUE: o ID que identifica exclusivamente um usuário externo. Por exemplo, o ID pode ser um endereço de e-mail, como alex@cymbalgroup.com.
  • GROUP_ID: um ID que identifica exclusivamente um grupo externo.

A seguir

Para gerenciar o cluster do console do Google Cloud com o Cloud Identity, consulte Fazer login usando a identidade do Google Cloud.