Estabeleça ligação ao seu cluster em conformidade com a CNCF

Este documento descreve três métodos de ligação ao cluster anexado em conformidade com a CNCF:

Estes três métodos de ligação a um cluster registado são ativados por um serviço Google denominado gateway de ligação. Para ver detalhes sobre a porta de entrada de ligação, consulte o artigo Estabelecer ligação a clusters registados com a porta de entrada de ligação.

Esta página destina-se a administradores de TI e operadores que querem configurar, monitorizar e gerir a infraestrutura na nuvem. Para saber mais sobre as funções comuns e exemplos de tarefas que referimos no Google Cloud conteúdo, consulte Funções e tarefas comuns do utilizador do GKE.

Antes de começar

Antes de executar qualquer um dos métodos, certifique-se de que anexou o cluster. Para ver detalhes, consulte o artigo Anexe o seu cluster em conformidade com a CNCF.

Antes de avançar com o método n.º 2 ou o método n.º 3, tem de cumprir pré-requisitos adicionais. Para mais detalhes, consulte as seguintes secções.

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

Para usar o método n.º 2 de ligação ao cluster anexado, certifique-se de que tem os seguintes pré-requisitos:

  • A versão mais recente da CLI do Google Cloud. Para obter informações sobre a atualização da CLI gcloud, consulte o artigo gcloud components update.
  • Versões de clusters anexados 1.26.0-gke.8, 1.27.0-gke.5, 1.28.0-gke.2 ou posteriores.

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

Para usar o método n.º 3 de ligação ao cluster anexado, certifique-se de que tem 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. Certifique-se de que está a usar as versões 1.27.0-gke.5, 1.28.0-gke.2 ou posteriores do cluster anexado.

  3. Configure a federação de identidades da força de trabalho (para que os utilizadores ou os grupos externos possam usar a API GKE attached clusters):

  4. Opcional: atribua aos seus utilizadores ou grupos externos as funções de gestão de identidade e de acesso (IAM) adequadas. Este passo só é necessário se quiser conceder aos utilizadores ou grupos a capacidade de criar ou atualizar clusters; não é necessário para aceder simplesmente a um cluster.

    Tenha em atenção que as funções são coleções de autorizações. Quando atribui uma função a uma entidade (utilizador, grupo ou conta de serviço), está a conceder a essa entidade todas as autorizações que a função contém.

    Utilizadores

    Para utilizadores individuais, tem de atribuir a função de 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 o seguinte:

    • PROJECT_ID: o ID do seu projeto Google Cloud .
    • WORKFORCE_POOL_ID: o ID que identifica exclusivamente o seu workforce identity pool no Google Cloud. Ao formatar o ID, certifique-se de que segue as diretrizes recomendadas fornecidas na documentação da IAM em Parâmetros de consulta.
    • SUBJECT_VALUE: o ID que identifica de forma exclusiva um utilizador externo. Por exemplo, o ID pode ser um endereço de email, como alex@cymbalgroup.com.

    Grupos

    Para grupos, tem de atribuir a função 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 o seguinte:

    • PROJECT_ID: o ID do seu projeto Google Cloud .
    • WORKFORCE_POOL_ID: o ID que identifica exclusivamente o seu workforce identity pool no Google Cloud. Ao formatar o ID, certifique-se de que segue as diretrizes recomendadas fornecidas na documentação do IAM em Parâmetros de consulta.
    • GROUP_ID: um ID que identifica de forma exclusiva um grupo externo.

    Para mais informações sobre as funções e as autorizações da API necessárias para os clusters anexados do GKE, consulte o artigo Funções e autorizações da API.

Método n.º 1: ligue-se ao cluster anexado como utilizador do Google

Para se ligar a um cluster associado como utilizador da Google, 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 Google Cloud projeto.

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

    • Método automático: se, quando anexou o cluster, especificou utilizadores da Google no campo --admin-users do comando gcloud container attached clusters register, estes utilizadores receberam automaticamente privilégios de administrador no cluster. Por conseguinte, pode ignorar este passo.

    • Método manual: configure manualmente as regras de RBAC para utilizadores individuais do Google criando um manifesto YAML do Kubernetes. Para ver detalhes, consulte o artigo Usar a autorização RBAC.

  3. Obtenha um ficheiro 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 cujas credenciais de associação quer.

Depois de realizar estes passos, pode estabelecer ligação ao cluster associado como utilizador do Google.

Método n.º 2: ligue-se ao cluster associado com os Grupos Google

Este método permite-lhe estabelecer ligação a um cluster anexado como membro de um grupo Google. Por outras palavras, concede a um grupo Google acesso a um cluster e todos os utilizadores pertencentes a esse grupo Google têm acesso ao cluster.

A utilização dos 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. O método n.º 1, descrito neste documento, exigiria que criasse regras RBAC no ficheiro de manifesto do Kubernetes para 225 utilizadores. No entanto, o método n.º 2 poupa-lhe tempo, uma vez que só tem de criar regras RBAC para três grupos Google.

Para autorizar os grupos Google a estabelecerem ligação a um cluster anexado, 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 projetoGoogle Cloud .

  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. Conceda funções de IAM a 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 permissões sobre o cluster anexado 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 que tipo de autorização 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 executar estes passos, os utilizadores pertencentes a determinados grupos Google podem ligar-se ao cluster anexado. No exemplo apresentado, os utilizadores pertencentes ao grupo do Google cluster-admin-team podem estabelecer ligação ao cluster como administradores.

Método n.º 3: conceda acesso a identidades externas quando anexar ou atualizar um cluster

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

Para associar um cluster em conformidade com a CNCF, siga os passos em Associe o seu cluster em conformidade com a CNCF. Para atualizar um cluster em conformidade com a CNCF, siga os passos em Atualize o seu cluster em conformidade com a CNCF.

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

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 o seguinte:

  • CLUSTER_NAME: o nome do cluster.
  • WORKFORCE_POOL_ID: o ID que identifica exclusivamente o seu workforce identity pool no Google Cloud. Ao formatar o ID, certifique-se de que segue as diretrizes recomendadas fornecidas na documentação do IAM em Parâmetros de consulta.
  • SUBJECT_VALUE: o ID que identifica de forma exclusiva um utilizador externo. Por exemplo, o ID pode ser um endereço de email, como alex@cymbalgroup.com.
  • GROUP_ID: um ID que identifica de forma exclusiva um grupo externo.

O que se segue?

Para gerir o cluster a partir da Google Cloud consola com o seu Cloud Identity, consulte Inicie sessão com a sua Google Cloud identidade.