Neste documento, descrevemos dois métodos de conexão com o cluster anexado do EKS.
- O método 1 se conecta ao cluster como um usuário do Google.
- O método 2 se conecta ao cluster como membro de um Grupo do Google.
- O método 3 se conecta ao cluster como um usuário ou grupo que não é do Google.
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. Para detalhes, consulte Anexar seu cluster EKS.
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:
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
.Verifique se você está usando a versão 1.27.0-gke.5 do cluster anexado, 1.28.0-gke.2 ou posterior.
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:
- Para usuários do Azure, consulte Configurar a federação de identidade da força de trabalho com o Azure AD.
- Para usuários do Okta, consulte Configurar a federação de identidade da força de trabalho com o Okta.
- Para usuários de outras plataformas, consulte Configurar a federação de identidade da força de trabalho.
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, comoalex@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:
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 projeto do Google Cloud.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 comandogcloud 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.
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:
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 projeto do Google Cloud.Crie um grupo chamado
gke-security-groups
como um grupo no domínio do projeto se ele não existir.Crie um ou mais subgrupos no grupo
gke-security-groups
para autenticação de cluster.Adicione usuários aos subgrupos recém-criados.
Conceder papéis do IAM aos Grupos do Google:
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).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 GoogleGROUP_NAME
: o nome do grupo ao qual conceder acessoDOMAIN
: seu domínio do Google WorkspaceGATEWAY_ROLE
: o papel selecionado. Por exemplo,roles/gkehub.gatewayAdmin
,roles/gkehub.gatewayEditor
ouroles/gkehub.gatewayReader
.
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
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 arquivokubeconfig
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 do EKS, siga as etapas em Anexar um cluster do EKS. Para atualizar um cluster do EKS, siga as etapas em Atualizar o cluster do EKS.
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, comoalex@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.