Este guia é destinado a administradores de plataformas que precisam configurar o gateway do Connect para uso pelas contas de serviço do projeto, usando o Grupos do Google para autorização. Antes de ler esta página, confira se você conhece os conceitos da nossa visão geral. Para autorizar contas individuais, consulte a configuração padrão.
Com essa configuração, os usuários podem fazer login em clusters de frotas configurados usando a Google Cloud CLI, o gateway do Connect e o Google Cloud console.
Este recurso usa os Grupos do Google associados ao Google Workspace ou a qualquer edição do Cloud Identity.
Tipos de cluster compatíveis
É possível configurar o controle de acesso com os Grupos do Google pelo gateway do Connect para os seguintes tipos de cluster:
- GKE em Google Cloud: todas as versões disponíveis. Para configurar o gateway do Connect, configure os Grupos do Google para RBAC, e, em seguida, conceda papéis do IAM aos Grupos do Google.
- Google Distributed Cloud (somente software) no VMware e bare metal: todas as versões disponíveis.
- Google Distributed Cloud conectado: todas as versões disponíveis.
- Clusters anexados do GKE: versão 1.28.0-gke.2 e mais recentes.
GKE na AWS e GKE no Azure: todas as versões disponíveis.
Para usar esse recurso com ambientes que não estão na lista anterior, entre em contato com o Cloud Customer Care ou a equipe de gateway do Connect.
Como funciona
Conforme descrito na visão geral, geralmente é útil poder conceder aos usuários acesso a clusters com base na participação deles nos Grupos do Google, ou seja, grupos criados no Google Workspace. Autorizar com base na associação ao grupo significa que você não precisa configurar uma autorização separada para cada conta, o que simplifica o gerenciamento das políticas e facilita a auditoria. Por exemplo, é fácil compartilhar o acesso ao cluster para uma equipe, eliminando a necessidade de adicionar/remover manualmente usuários individuais dos clusters quando eles ingressam ou saem da equipe. É possível configurar o gateway do Connect para receber informações de associação dos Grupos do Google para cada usuário que faz login no cluster. Em seguida, você pode usar essas informações nas políticas de controle de acesso.
Veja a seguir o fluxo típico de um usuário fazendo a autenticação e a execução de comandos em um cluster com esse serviço ativado. Para que esse fluxo seja bem-sucedido, é necessário haver uma política de RBAC no cluster para um grupo que:
Contém o usuário
alice@example.comcomo membro.É um grupo aninhado de
gke-security-groups@example.com.
- O usuário
alice@example.comfaz login usando a identidade do Google e, se planeja usar o cluster na linha de comando, recebe o gateway do clusterkubeconfigconforme descrito em Como usar o gateway do Connect. - O usuário envia uma solicitação executando um
kubectlcomando ou abrindo as páginas Cargas de trabalho ou Navegador de objetos do Google Kubernetes Engine no Google Cloud console. - A solicitação é recebida pelo serviço Connect, que executa uma verificação de autorização com IAM.
- O serviço do Connect encaminha a solicitação ao agente do Connect em execução no cluster. A solicitação é acompanhada com as informações de credencial do usuário para uso na autenticação e autorização no cluster.
- O agente do Connect encaminha a solicitação para o servidor da API Kubernetes.
- O servidor da API Kubernetes encaminha a solicitação para o pod
anthos-identity-serviceno cluster, que valida a solicitação. - O pod
anthos-identity-serviceretorna as informações do usuário e do grupo para o servidor da API Kubernetes. O servidor da API Kubernetes pode usar essas informações para autorizar a solicitação com base nas políticas de RBAC configuradas do cluster.
Antes de começar
- Faça login na sua Google Cloud conta do. Se você começou a usar o Google Cloudagora, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
-
Instale a Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Verifique se você tem as permissões necessárias para concluir este guia.
Ative as APIs Connect Gateway, GKE Connect, GKE Hub, Anthos Identity Service e Cloud Resource Manager:
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador de Service Usage role (
roles/serviceusage.serviceUsageAdmin), que contém aserviceusage.services.enablepermissão. Saiba como conceder papéis.gcloud services enable connectgateway.googleapis.com
gkeconnect.googleapis.com gkehub.googleapis.com anthosidentityservice.googleapis.com cloudresourcemanager.googleapis.com -
Instale a Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
Verifique se você tem as permissões necessárias para concluir este guia.
Ative as APIs Connect Gateway, GKE Connect, GKE Hub, Anthos Identity Service e Cloud Resource Manager:
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador de Service Usage role (
roles/serviceusage.serviceUsageAdmin), que contém aserviceusage.services.enablepermissão. Saiba como conceder papéis.gcloud services enable connectgateway.googleapis.com
gkeconnect.googleapis.com gkehub.googleapis.com anthosidentityservice.googleapis.com cloudresourcemanager.googleapis.com - Para clusters fora do Google Cloud, os componentes de autenticação no seu cluster precisam chamar a API Cloud Identity. Verifique se você tem políticas de rede que exigem que o tráfego de saída do cluster passe por um proxy.
Funções exigidas
Para ter as permissões necessárias para configurar o gateway do Connect e os clusters, peça ao administrador para conceder a você o papel do IAM de Editor (roles/editor) no projeto.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando personalizados papéis ou outros predefinidos papéis.
Configurar usuários e grupos
Verifique se os grupos que você quer usar com este recurso estão configurados da seguinte maneira:
- Verifique se há um grupo no Google Workspace da sua organização com o formato
gke-security-groups@YOUR-DOMAIN. Se você não tiver um grupo desse tipo, siga as instruções em Criar um grupo na sua organização para criar o grupo no Google Admin Console. - Siga as instruções em Adicionar um grupo a outro
grupo para adicionar os grupos que você
quer usar para controle de acesso como grupos aninhados de
gke-security-groups. Não adicione usuários individuais como membros degke-security-groups.
As contas de usuário que você quer usar com esse recurso devem usar o mesmo nome de domínio do grupo.
Configurar o suporte para grupos
O gateway do Connect usa componentes de autenticação no cluster para recuperar informações de associação a grupos. Para ativar os componentes necessários, consulte um dos documentos a seguir, dependendo do tipo de cluster:
- GKE em Google Cloud: configure os Grupos do Google para RBAC, e pule para a seção Conceder papéis do IAM a grupos.
- Clusters anexados do GKE:
Google Distributed Cloud: ative o suporte para grupos atualizando o recurso personalizado ClientConfig no cluster. O Distributed Cloud cria automaticamente um ClientConfig chamado
defaultno namespacekube-publicem cada cluster. Para verificar se esse recurso personalizado existe, execute o seguinte comando:kubectl --kubeconfig CLUSTER_KUBECONFIG get ClientConfig default -n kube-publicSubstitua
CLUSTER_KUBECONFIGpelo caminho para o kubeconfig do cluster.
As seções a seguir mostram como atualizar o recurso personalizado ClientConfig para ativar o suporte a grupos. Essas seções se aplicam apenas a clusters do Google Distributed Cloud. Para outros tipos de clusters, como GKE em Google Cloud; GKE na AWS; e GKE no Azure, pule para a seção Conceder papéis do IAM a grupos.
Para o Distributed Cloud, é possível configurar o suporte para grupos de clusters individuais ou de uma frota. O tipo de cluster usado determina como você configura o suporte a grupos, da seguinte maneira:
- Distributed Cloud conectado: apenas clusters individuais. A configuração no nível da frota não é compatível.
- Google Distributed Cloud (somente software) no VMware e bare metal: clusters ou frotas individuais.
Configurar o suporte a grupos usando a API Fleet do GKE
Para o Google Distributed Cloud (somente software) no VMware e bare metal, é possível configurar o suporte a grupos no nível da frota. Se você já tiver configurado a autenticação no nível da frota, como para um provedor de identidade diferente, a autenticação de grupo já estará ativada. No entanto, se a política de rede exigir que o tráfego de saída passe por um proxy, será necessário atualizar a configuração atual com informações sobre esse proxy.
Para configurar o suporte a grupos no nível da frota, selecione uma das seguintes opções:
Console
No Google Cloud console do, acesse a página Serviço de Identidade do GKE.
Clique em Ativar o serviço de identidade.
Selecione os clusters do Google Distributed Cloud (somente software) no VMware e bare metal que você quer configurar.
Clique em Atualizar configuração. O painel Editar configuração de clusters do serviço de identidade será aberto.
Na seção Configurar provedores de identidade , você pode escolher reter, adicionar, atualizar ou remover um provedor de identidade.
Clique em Continuar para ir para a próxima etapa de configuração. Se você tiver selecionado pelo menos um cluster qualificado para essa configuração, a seção Autenticação do Google será exibida.
Selecione Ativar para habilitar a autenticação do Google para os clusters selecionados. Se você precisar acessar o provedor de identidade do Google usando um proxy, digite os detalhes do Proxy.
Clique em Atualizar configuração. Isso aplica a configuração de identidade nos clusters selecionados.
gcloud
- Ative o recurso de serviço de identidade no nível da frota e configure os clusters, conforme descrito em Configurar o gerenciamento de autenticação no nível da frota.
No arquivo
auth-config.yamlque contém a especificação do ClientConfig, adicione o seguinte campo:spec: authentication: - name: google-authentication-method google: disable: falseO valor
falseno campogoogle.disableativa o suporte a grupos. Para desativar o suporte a grupos, modifique esse valor paratrue.Opcional: se você precisar acessar o provedor de identidade do Google usando um proxy, adicione o campo
proxyà configuração anterior:spec: authentication: - name: google-authentication-method google: disable: false proxy: PROXY_URLSubstitua
PROXY_URLpelo endereço do servidor proxy para se conectar à identidade do Google. Por exemplo:http://user:password@10.10.10.10:8888Aplique a configuração a um cluster na frota:
gcloud container fleet identity-service apply \ --membership=CLUSTER_NAME \ --config=/path/to/auth-config.yaml
Substitua
CLUSTER_NAMEpelo nome de assinatura exclusivo do cluster na frota.
Depois de configurar o suporte a grupos no nível da frota, o controlador da frota gerencia a configuração. A configuração no nível da frota substitui todas as mudanças locais feitas na configuração em um cluster específico.
Configurar o suporte a grupos para clusters individuais
Para todos os clusters do Distributed Cloud, incluindo o Distributed Cloud conectado, ative o suporte a grupos atualizando o ClientConfig default em cada cluster:
Receba os detalhes da assinatura do cluster:
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get memberships membership -o yamlSubstitua
USER_CLUSTER_KUBECONFIGpelo caminho do arquivo kubeconfig do cluster. Se houver vários contextos no kubeconfig o contexto atual será usado. Talvez seja necessário redefinir o contexto atual para o cluster correto antes de executar o comando.Na resposta, consulte o campo
spec.owner.idpara recuperar os detalhes da associação do cluster. O identificador de assinatura tem o formato//gkehub.googleapis.com/projects/PROJECT_NUMBER/locations/global/memberships/MEMBERSHIP.O resultado será assim:
id: //gkehub.googleapis.com/projects/123456789/locations/global/memberships/xy-ab12cd34efAbra o ClientConfig
defaultno cluster para edição:kubectl --kubeconfig USER_CLUSTER_KUBECONFIG -n kube-public edit clientconfig defaultPara ativar o suporte a grupos, adicione o campo
googleao campospec.authentication:spec: internalServer: https://kubernetes.default.svc authentication: - google: audiences: - "CLUSTER_IDENTIFIER" name: google-authentication-methodSubstitua
CLUSTER_IDENTIFIERpelos detalhes da assinatura do cluster.Verifique se o campo
internalServertem o valorhttps://kubernetes.default.svc.Opcional: se você precisar acessar o provedor de identidade do Google usando um proxy, adicione o campo
proxyà configuração anterior:spec: internalServer: https://kubernetes.default.svc authentication: - google: audiences: - "CLUSTER_IDENTIFIER" name: google-authentication-method proxy: PROXY_URLSubstitua
PROXY_URLpelo endereço do servidor proxy para se conectar à identidade do Google. Por exemplo:http://user:password@10.10.10.10:8888
Conceder papéis do IAM aos Grupos do Google
Os grupos precisam dos seguintes papéis adicionais Google Cloud para interagir com clusters conectados por meio do gateway:
roles/gkehub.gatewayAdmin. Esse papel permite que os membros do grupo acessem a API do gateway do Connect.- Se os membros do grupo só precisarem de acesso somente leitura aos clusters conectados,
roles/gkehub.gatewayReaderpoderá ser usado. - Se membros do grupo precisarem de acesso de leitura/gravação aos clusters conectados,
roles/gkehub.gatewayEditorpoderá ser usado.
- Se os membros do grupo só precisarem de acesso somente leitura aos clusters conectados,
roles/gkehub.viewer). Esse papel permite que os membros do grupo vejam as assinaturas do cluster registradas.
Você concede esses papéis usando o comando gcloud projects add-iam-policy-binding da seguinte maneira:
gcloud projects add-iam-policy-binding --member=group:GROUP_NAME@DOMAIN --role=GATEWAY_ROLE PROJECT_ID gcloud projects add-iam-policy-binding --member=group:GROUP_NAME@DOMAIN --role=roles/gkehub.viewer PROJECT_ID
onde
- GROUP_NAME é o Grupo do Google a que você quer conceder o papel.
- DOMAIN é seu domínio do Google Workspace.
- GROUP_NAME@DOMAIN é um grupo aninhado em gke-security-groups@DOMAIN
- GATEWAY_ROLE é um dos campos
roles/gkehub.gatewayAdmin,roles/gkehub.gatewayReaderougkehub.gatewayEditor. - PROJECT_ID é seu projeto
Saiba mais sobre como conceder permissões e papéis do IAM em Como conceder, alterar e revogar acesso a recursos.
Configurar políticas de controle de acesso baseado em papéis (RBAC, na sigla em inglês)
Por fim, o servidor da API Kubernetes de cada cluster precisa autorizar os comandos kubectl que passam pelo gateway dos grupos especificados. Para cada cluster, você precisa adicionar uma política de permissões do RBAC que especifica quais permissões o grupo tem no cluster.
No exemplo a seguir, você verá como conceder aos membros do grupo cluster-admin-team permissões cluster-admin no cluster, salvar o arquivo da política como /tmp/admin-permission.yaml e aplicá-lo ao cluster associado no contexto atual. Inclua também o grupo cluster-admin-team no grupo gke-security-groups.
cat <<EOF > /tmp/admin-permission.yaml
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
EOF
# Apply permission policy to the cluster.
kubectl apply --kubeconfig=KUBECONFIG_PATH -f /tmp/admin-permission.yaml
Saiba mais sobre como especificar permissões de RBAC em Como usar a autorização RBAC.
A seguir
- Saiba como usar o gateway do Connect para se conectar a clusters a partir da linha de comando.
- Confira um exemplo de como usar o gateway do Connect como parte da sua automação de DevOps no tutorial Como integrar com o Cloud Build.