Este guia destina-se aos administradores da plataforma que precisam de configurar a gateway do Connect para utilização pelas contas de utilizador do respetivo projeto, através dos Grupos Google para autorização. Antes de ler esta página, certifique-se de que conhece os conceitos na nossa vista geral. Para autorizar contas individuais, consulte a configuração predefinida.
Esta configuração permite que os utilizadores iniciem sessão em clusters da frota configurados através da CLI Google Cloud, da gateway Connect e da consola Google Cloud .
Esta funcionalidade usa o Google Groups associado ao Google Workspace ou a qualquer edição do Cloud ID.
Tipos de clusters suportados
Se estiver a usar clusters do GKE no Google Cloud com o Connect Gateway, não precisa de seguir toda esta configuração com o GKE Identity Service para usar os Grupos Google para autorização. Em alternativa, siga as instruções em Configure os Grupos Google para o RBAC, que também permite que os utilizadores iniciem sessão em clusters do GKE a partir da consola Google Cloud através dos Grupos Google para controlo de acesso. Depois de o fazer, siga as instruções abaixo em Conceda funções da IAM aos Grupos Google para permitir que os membros do grupo acedam aos clusters através do gateway do Connect.
Pode configurar o controlo de acesso com os Grupos Google através do gateway Connect para os seguintes tipos de clusters:
- Clusters do GKE registados (todas as versões suportadas).
- Google Distributed Cloud no VMware e bare metal (versão 1.13 e posterior).
- GKE no AWS e GKE no Azure (versão 1.25 e posteriores).
Clusters anexados (versão 1.26.0-gke.8, 1.27.0-gke.5, 1.28.0-gke.2 e posteriores).
Se precisar de atualizar clusters no local para usar esta funcionalidade, consulte os artigos Atualizar clusters no VMWare e Atualizar clusters em hardware simples.
Para usar esta funcionalidade com ambientes que não sejam os indicados nesta secção, contacte o apoio técnico ao cliente do Google Cloud ou a equipa da gateway de ligação.
Como funciona
Conforme descrito na vista geral, é frequentemente útil poder conceder aos utilizadores acesso a clusters com base na respetiva associação aos Grupos Google, ou seja, grupos criados no Google Workspace. A autorização baseada na associação a grupos significa que não tem de configurar uma autorização separada para cada conta, o que simplifica a gestão das políticas e facilita a auditoria. Por exemplo, pode partilhar facilmente o acesso ao cluster com uma equipa, eliminando a necessidade de adicionar/remover manualmente utilizadores individuais dos clusters quando estes entram ou saem da equipa. Com alguma configuração adicional através do serviço de identidade do GKE, pode configurar o gateway Connect para obter informações de associação ao grupo Google para cada utilizador que inicia sessão no cluster. Em seguida, pode usar estas informações de grupos nas suas políticas de controlo de acesso.
A imagem seguinte mostra o fluxo típico de um utilizador que se autentica e executa comandos num cluster com este serviço ativado. Para que este fluxo seja bem-sucedido, tem de existir uma política de RBAC no cluster para um grupo que:
Contém o utilizador
alice@example.com
como membro.É um grupo aninhado de
gke-security-groups@example.com
.
- O utilizador
alice@example.com
inicia sessão com a respetiva identidade Google e, se planear usar o cluster a partir da linha de comandos, obtém o gateway do clusterkubeconfig
, conforme descrito em Usar o gateway do Connect. - O utilizador envia um pedido executando um comando
kubectl
ou abrindo as páginas Workloads ou Object Browser do Google Kubernetes Engine na consola Google Cloud . - O pedido é recebido pelo serviço Connect, que executa uma verificação de autorização com o IAM.
- O serviço Connect encaminha o pedido para o agente Connect em execução no cluster. O pedido é acompanhado das informações de credenciais do utilizador para utilização na autenticação e autorização no cluster.
- O agente Connect encaminha o pedido para o servidor da API Kubernetes.
- O servidor da API Kubernetes encaminha o pedido para o serviço de identidade do GKE, que valida o pedido.
- O GKE Identity Service devolve as informações do utilizador e do grupo ao servidor da API Kubernetes. O servidor da API Kubernetes pode, então, usar estas informações para autorizar o pedido com base nas políticas RBAC configuradas do cluster.
Antes de começar
Certifique-se de que tem as seguintes ferramentas de linha de comandos instaladas:
- A versão mais recente da CLI do Google Cloud, a ferramenta de linha de comandos para interagir com o Google Cloud.
- A ferramenta de linha de comandos do Kubernetes,
kubectl
, para interagir com os seus clusters.
Se estiver a usar o Cloud Shell como ambiente de shell para interagir com o Google Cloud, estas ferramentas são instaladas automaticamente.
Certifique-se de que inicializou a CLI gcloud para utilização com o seu projeto.
Este guia pressupõe que tem
roles/owner
no seu projeto. Se não for proprietário do projeto, pode precisar de autorizações adicionais para executar alguns dos passos de configuração.Para clusters fora Google Cloud, o GKE Identity Service tem de chamar a API Google Identity a partir do seu cluster. Verifique se a sua política de rede exige que o tráfego de saída passe por um proxy.
Configure utilizadores e grupos
Certifique-se de que os grupos que quer usar com esta funcionalidade estão configurados da seguinte forma:
- Certifique-se de que existe um grupo no Google Workspace da sua organização com o formato
gke-security-groups@YOUR-DOMAIN
. Se não tiver um grupo deste tipo, siga as instruções em Crie um grupo na sua organização para criar o grupo através da Consola do administrador do Google Workspace. - Siga as instruções em Adicione um grupo a outro grupo para adicionar os grupos que quer usar para o controlo de acesso como grupos aninhados de
gke-security-groups
. Não adicione utilizadores individuais como membros degke-security-groups
.
As contas de utilizador que quer usar com esta funcionalidade devem usar o mesmo nome de domínio que o do respetivo grupo.
Ativar APIs
Para adicionar a gateway ao seu projeto, ative a API Connect gateway e as respetivas APIs de dependência necessárias. Se os seus utilizadores só quiserem autenticar-se em clusters através da Google Cloud consola, não precisa de ativar a connectgateway.googleapis.com
, mas tem de ativar as APIs restantes.
PROJECT_ID=example_project
gcloud services enable --project=${PROJECT_ID} \
connectgateway.googleapis.com \
gkeconnect.googleapis.com \
gkehub.googleapis.com \
cloudresourcemanager.googleapis.com
Configure o serviço de identidade do GKE
A funcionalidade de compatibilidade com os grupos Google do gateway de ligação usa o serviço de identidade do GKE para obter informações sobre a associação a grupos da Google. Pode saber mais sobre o GKE Identity Service no artigo Apresentamos o GKE Identity Service.
Se estiver a usar clusters do GKE com o gateway, não precisa de configurar o serviço de identidade do GKE para usar o suporte de Grupos Google. Em alternativa, siga as instruções em Configure os Grupos Google para o CABF e continue para Conceda funções do IAM para conceder acesso a clusters através do gateway.
Se estiver a usar clusters anexados do GKE com o gateway, o GKE Identity Service não é necessário para o suporte de Grupos Google. Siga as instruções para o tipo de cluster escolhido para configurar o apoio técnico dos Grupos Google:
- Estabeleça ligação ao cluster anexado do EKS
- Estabeleça ligação ao cluster anexado do AKS
- Estabeleça ligação aos seus outros tipos de clusters
Certifique-se de que o serviço de identidade do GKE está instalado
O GKE Identity Service está instalado por predefinição em clusters do GKE a partir da versão 1.7 (embora o suporte dos Grupos Google exija a versão 1.13 ou superior). Pode confirmar se está instalado corretamente no cluster executando o seguinte comando:
kubectl --kubeconfig CLUSTER_KUBECONFIG get all -n anthos-identity-service
Substitua CLUSTER_KUBECONFIG
pelo caminho para o kubeconfig do cluster.
Configure o apoio técnico do Grupos do Google
Se estiver a usar o GKE no AWS ou o GKE no Azure, o seu cluster é configurado automaticamente para suportar os Grupos Google e pode avançar para Conceder funções do IAM aos Grupos Google.
Se estiver a usar o Google Distributed Cloud no VMware ou bare metal, a forma como configura o GKE Identity Service determina como tem de configurar a funcionalidade Grupos Google.
Se estiver a usar o GKE Identity Service pela primeira vez, pode escolher entre configurar grupos Google ao nível da frota (recomendado) ou a configuração por cluster.
Se não for a primeira vez que usa o GKE Identity Service, tenha em atenção uma das seguintes situações:
- Se já configurou o serviço de identidade do GKE para outro fornecedor de identidade ao nível da frota, a funcionalidade Grupos Google é ativada por predefinição. Consulte a secção Frota abaixo para ver mais detalhes e qualquer configuração adicional de que possa precisar.
Se já configurou o GKE Identity Service para outro fornecedor de identidade por cluster, consulte a secção Por cluster abaixo para obter instruções sobre como atualizar a configuração para a funcionalidade Grupos Google.
Fleet
Pode usar a Google Cloud consola ou a linha de comandos para configurar o acesso aos Grupos Google ao nível da frota.
Se já configurou o serviço de identidade do GKE ao nível da frota com outro fornecedor de identidade (como o Microsoft AD FS ou o Okta), a funcionalidade de grupos Google da gateway Connect já está ativada por predefinição nos clusters configurados, desde que o fornecedor de identidade Google seja acessível sem ter de usar um proxy.
Consola
Se ainda não configurou o GKE Identity Service para uma frota, siga as instruções em Configure clusters for GKE Identity Service.
Selecione clusters e atualize a configuração
- Na Google Cloud consola, aceda à página Gestor de funcionalidades.
Aceda ao Gestor de funcionalidades
- Clique em Detalhes no painel Serviço de identidade. São apresentados os detalhes do cluster do seu projeto.
- Clique em Atualizar serviço de identidade para abrir o painel de configuração.
- Selecione os clusters que quer configurar. Pode escolher clusters individuais ou especificar que quer que todos os clusters sejam configurados com a mesma configuração de identidade.
- Na secção Configurar fornecedores de identidade, pode optar por manter, adicionar, atualizar ou remover um fornecedor de identidade.
- Clique em Continuar para avançar para o passo de configuração seguinte. Se tiver selecionado, pelo menos, um cluster elegível para esta configuração, é apresentada a secção Autenticação Google.
- Selecione Ativar para ativar a autenticação Google para os clusters selecionados. Se precisar de aceder ao fornecedor de identidade da Google através de um proxy, introduza os detalhes do proxy.
- Clique em Atualizar configuração. Isto aplica a configuração de identidade nos clusters selecionados.
gcloud
Se ainda não tiver configurado o GKE Identity Service para uma frota,
siga as instruções em Configure clusters for GKE Identity Service.
Especifique apenas a seguinte configuração no ficheiro auth-config.yaml
:
spec:
authentication:
- name: google-authentication-method
google:
disable: false
Configurar o acesso aos Grupos Google através de um proxy
Se precisar de aceder ao fornecedor de identidade da Google através de um proxy, use um campo proxy
no seu ficheiro auth-config.yaml
. Pode ter de definir esta opção se, por exemplo, o seu cluster estiver numa rede privada e precisar de se ligar a um fornecedor de identidade público.
Tem de adicionar esta configuração, mesmo que já tenha configurado o GKE Identity Service para outro fornecedor.
Para configurar o proxy
, veja como pode atualizar a secção authentication
do ficheiro de configuração existente auth-config.yaml
.
spec:
authentication:
- name: google-authentication-method
google:
disable: false
proxy: PROXY_URL
onde
disable
(opcional) indica se quer ativar ou desativar a funcionalidade Grupos do Google para clusters. Este valor está predefinido como false. Se quiser recusar esta funcionalidade, pode defini-la como verdadeira.PROXY_URL
(opcional) é o endereço do servidor proxy para estabelecer ligação à identidade Google. Por exemplo:http://user:password@10.10.10.10:8888
Aplique a configuração
Para aplicar a configuração a um cluster, execute o seguinte comando:
gcloud container fleet identity-service apply \ --membership=CLUSTER_NAME \ --config=/path/to/auth-config.yaml
onde
CLUSTER_NAME
é o nome de subscrição exclusivo do cluster na frota.
Depois de aplicada, esta configuração é gerida pelo controlador do GKE Identity Service. Todas as alterações locais feitas à configuração do cliente do GKE Identity Service são reconciliadas pelo controlador com a configuração especificada nesta configuração.
Por cluster
Para configurar o cluster para usar o GKE Identity Service com a funcionalidade Grupos Google,
tem de atualizar o GKE Identity Service do cluster ClientConfig
.
Este é um tipo de recurso personalizado (CRD) do Kubernetes usado para a configuração do cluster.
Cada cluster tem um recurso ClientConfig
denominado default
no espaço de nomes kube-public
que atualiza com os detalhes da configuração.
Para editar a configuração, use o seguinte comando.
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG -n kube-public edit clientconfig default
onde
USER_CLUSTER_KUBECONFIG
é o caminho para o ficheiro kubeconfig do seu cluster.
Se existirem vários contextos no kubeconfig, é usado o contexto atual. Pode ter de repor o contexto atual para o cluster correto antes de executar o comando.
Segue-se um exemplo de como pode atualizar o ClientConfig
com um novo método de autenticação com uma configuração do tipo google
para ativar a funcionalidade Grupos Google.
Se o campo internalServer
estiver vazio, certifique-se de que está definido como https://kubernetes.default.svc
, conforme mostrado abaixo.
spec:
authentication:
- google:
audiences:
- "CLUSTER_IDENTIFIER"
name: google-authentication-method
proxy: PROXY_URL
internalServer: https://kubernetes.default.svc
onde
CLUSTER_IDENTIFIER
(obrigatório) indica os detalhes da subscrição do seu cluster.
Pode aceder aos detalhes da associação do cluster através do comando:
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get memberships membership -o yaml
onde
USER_CLUSTER_KUBECONFIG
é o caminho para o ficheiro kubeconfig do cluster.
Na resposta, consulte o campo spec.owner.id
para obter os detalhes de associação do cluster.
Segue-se um exemplo de resposta que mostra os detalhes de associação de um cluster:
id: //gkehub.googleapis.com/projects/123456789/locations/global/memberships/xy-ab12cd34ef
que corresponde ao seguinte formato:
//gkehub.googleapis.com/projects/PROJECT_NUMBER/locations/global/memberships/MEMBERSHIP
Conceda funções de IAM a Grupos Google
Os grupos precisam das seguintes funções adicionais Google Cloud para interagir com clusters ligados através do gateway:
roles/gkehub.gatewayAdmin
. Esta função permite que os membros do grupo acedam à API do gateway Connect.- Se os membros do grupo só precisarem de acesso só de leitura a clusters ligados, pode usar o
roles/gkehub.gatewayReader
em alternativa. - Se os membros do grupo precisarem de acesso de leitura/escrita a clusters ligados, pode usar o
roles/gkehub.gatewayEditor
.
- Se os membros do grupo só precisarem de acesso só de leitura a clusters ligados, pode usar o
roles/gkehub.viewer
. Esta função permite que os membros do grupo vejam as associações de clusters registadas.
Concede estas funções através do comando gcloud projects add-iam-policy-binding
, da seguinte forma:
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 Google ao qual quer conceder a função
- DOMAIN é o seu domínio do Google Workspace
- GROUP_NAME@DOMAIN é um grupo aninhado em gke-security-groups@DOMAIN
- GATEWAY_ROLE é um de
roles/gkehub.gatewayAdmin
,roles/gkehub.gatewayReader
ougkehub.gatewayEditor
. - PROJECT_ID é o seu projeto
Pode saber mais sobre a concessão de autorizações e funções do IAM em Conceder, alterar e revogar o acesso a recursos.
Configure políticas de controlo de acesso baseado em funções (CABF)
Por último, o servidor da API Kubernetes de cada cluster tem de poder autorizar comandos kubectl
que chegam através do gateway dos seus grupos especificados. Para cada cluster, tem de adicionar uma política de autorizações RBAC que especifique as autorizações que o grupo tem no cluster.
No exemplo seguinte, vai ver como conceder autorizações cluster-admin
aos membros do grupo cluster-admin-team
no cluster, guardar o ficheiro de política como /tmp/admin-permission.yaml e aplicá-lo ao cluster associado ao contexto atual. Certifique-se de que também inclui 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
Pode saber mais sobre a especificação de autorizações RBAC em Usar a autorização RBAC.
O que se segue?
- Saiba como usar a gateway Connect para estabelecer ligação a clusters a partir da linha de comandos.
- Veja um exemplo de como usar o gateway Connect como parte da sua automatização de DevOps no nosso tutorial Integração com o Cloud Build.