Este documento descreve três métodos de ligação ao cluster anexado em conformidade com a CNCF:
- O método n.º 1 liga-se ao seu cluster como um utilizador Google.
- O método n.º 2 estabelece ligação ao seu cluster como membro de um grupo Google.
- O método n.º 3 liga-se ao seu cluster como um utilizador ou um grupo que não é da Google.
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:
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
.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.
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):
- Para utilizadores do Azure, consulte o artigo Configure a federação de identidades da força de trabalho com o Azure AD.
- Para utilizadores do Okta, consulte o artigo Configure a federação de identidades da força de trabalho com o Okta.
- Para utilizadores de outras plataformas, consulte o artigo Configure a federação de identidades de força de trabalho.
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, comoalex@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:
Ative as APIs
connectgateway
ecloudresourcemanager
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.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 comandogcloud 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.
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:
Ative as APIs
connectgateway
ecloudresourcemanager
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 .Crie um grupo denominado
gke-security-groups
como um grupo no domínio do seu projeto, se não existir.Crie um ou mais subgrupos no grupo
gke-security-groups
para autenticação de cluster.Adicione utilizadores aos subgrupos recém-criados.
Conceda funções de IAM a Grupos Google:
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.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 GoogleGROUP_NAME
: o nome do grupo ao qual conceder acessoDOMAIN
: o seu domínio do Google WorkspaceGATEWAY_ROLE
: a função selecionada. Por exemploroles/gkehub.gatewayAdmin
,roles/gkehub.gatewayEditor
ouroles/gkehub.gatewayReader
.
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
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 ficheirokubeconfig
.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, comoalex@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.