Nesta página, mostramos como configurar o Grupos do Google para trabalhar com o controle de acesso baseado em papéis (RBAC, na sigla em inglês) do Kubernetes nos clusters do Google Kubernetes Engine (GKE).
Os Grupos do Google para RBAC permitem atribuir permissões do RBAC a membros de Grupos no Google Workspace. Os administradores do Google Workspace mantêm os usuários e grupos completamente fora do GKE ou do Google Cloud console. Portanto, os administradores do cluster não precisarão de informações detalhadas sobre os usuários.
O uso do Grupos do Google para RBAC também permite a integração com suas práticas de gerenciamento de contas de usuário existentes, como a revogação do acesso quando alguém sai da sua organização.
Esta página é destinada a especialistas em segurança e operadores que querem usar os Grupos do Google com o RBAC do Kubernetes em clusters do GKE. Para saber mais sobre papéis comuns e tarefas de exemplo referenciados no Google Cloud content, consulte Funções e tarefas comuns do usuário do GKE.
Antes de ler esta página, verifique se você conhece as limitações dos Grupos do Google ao criar grupos e adicionar usuários como membros.
Para usar os Grupos do Google para RBAC, conclua as seguintes tarefas:
- Cumpra os requisitos.
- Configure seus Grupos do Google.
- Ative o Grupos do Google para RBAC em um cluster.
- Defina e atribua permissões de RBAC aos Grupos.
Requisitos
Para usar os Grupos do Google para o RBAC, é necessário ter acesso a Google Workspace ou a qualquer edição do Cloud Identity.
Limitações
- O GKE permite usuários com associação em até 2.000 grupos no grupo de segurança, incluindo associações aninhadas, com Grupos do Google para RBAC.
Configurar seus Grupos do Google
As etapas a seguir mostram como configurar um grupo no Grupos que funciona com o RBAC:
Crie um Grupo do Google no seu domínio, chamado
gke-security-groups. O nome degke-security-groupsé obrigatório. Verifique se o grupo tem a permissão Visualizar membros selecionada para Membros do grupo. Para detalhes, consulte Definir permissões para gerenciar membros e conteúdo.Se ainda não houver, crie grupos que representem conjuntos de usuários que devem ter permissões diferentes nos seus clusters, como desenvolvedores e administradores de cluster. Cada grupo precisa ter a permissão Visualizar membros para Membros do grupo.
Adicione seus grupos como grupos aninhados ao grupo
gke-security-groups. Não adicione usuários individuais como membros degke-security-groups.
Para mais informações sobre como gerenciar Grupos do Google, consulte a Central de Ajuda do Grupos do Google.
Para verificar se um usuário específico pode executar uma ação em um recurso de cluster,
o GKE verifica se o usuário é membro de um grupo com acesso e se
esse grupo é membro do grupo gke-security-groups.
As informações sobre a associação ao Grupos são armazenadas em cache por um curto período. Pode levar alguns minutos para que as alterações nas associações ao Grupo sejam propagadas a todos os clusters. Além da latência de alterações de grupos, o armazenamento em cache (padrão) de credenciais de usuário no cluster leva cerca de uma hora.
Ativar os Grupos do Google para RBAC em clusters
É possível ativar os Grupos do Google para RBAC em clusters novos e atuais do GKE Standard e Autopilot usando a Google Cloud CLI ou o Google Cloud console.
Criar um novo cluster
gcloud
Padrão
Para criar um novo cluster padrão e ativar os Grupos do Google para RBAC, execute o seguinte comando:
gcloud container clusters create CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION \
--security-group="gke-security-groups@DOMAIN"
Substitua:
CLUSTER_NAME: o nome do novo cluster;CONTROL_PLANE_LOCATION: o local do Compute Engine do plano de controle do seu cluster; Forneça uma região para clusters regionais ou uma zona para clusters zonais.DOMAIN: o nome de domínio do grupogke-security-groupsque você criou.
Piloto automático
Para criar um novo cluster do Autopilot e ativar os Grupos do Google para RBAC, execute o seguinte comando:
gcloud container clusters create-auto CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION \
--security-group="gke-security-groups@DOMAIN"
Console
Para criar um novo cluster e ativar o recurso Grupos do Google para RBAC, siga estas etapas:
Acesse a página Google Kubernetes Engine no Google Cloud console.
Clique em add_box Criar.
Clique em Configurar no modo de cluster que você quer usar.
Para clusters do Autopilot, expanda a seção Advanced Options para localizar as opções de Security.
Para clusters padrão, na seção Cluster, clique em Segurança.
Marque a caixa de seleção Ativar Grupos do Google para RBAC (Beta).
Preencha o Grupo de segurança com
gke-security-groups@DOMAIN.Clique em Criar.
Atualizar um cluster atual
gcloud
Para atualizar um cluster existente para ativar o Grupos do Google para RBAC, execute o seguinte comando:
gcloud container clusters update CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION \
--security-group="gke-security-groups@DOMAIN"
Substitua:
CLUSTER_NAME: o nome do cluster.CONTROL_PLANE_LOCATION: o local do Compute Engine do plano de controle do seu cluster; Forneça uma região para clusters regionais ou uma zona para clusters zonais.DOMAIN: o nome de domínio do grupogke-security-groupsque você criou.
Console
Para atualizar um cluster existente para ativar o Grupos do Google para RBAC, execute as seguintes etapas:
Acesse a página Google Kubernetes Engine no Google Cloud console.
Clique no nome do cluster que você quer atualizar.
Na guia Detalhes, localize a seção Segurança.
No campo Grupos do Google para RBAC, clique em edit Editar Grupos do Google para RBAC.
Marque a caixa de seleção Ativar Grupos do Google para RBAC (Beta).
Preencha o Grupo de segurança com
gke-security-groups@DOMAIN.Clique em Save changes.
Definir e atribuir permissões
Depois de criar e configurar os Grupos do Google para RBAC, use papéis e vinculações de papéis
para definir permissões do RBAC e atribuir essas permissões aos Grupos
que são membros do grupo gke-security-groups. Veja mais instruções em
Definir e atribuir permissões.
Verificar a configuração de RBAC nos Grupos do Google
As seções a seguir mostram como verificar se a configuração dos Grupos do Google para RBAC foi bem-sucedida, usando a CLI gcloud ou o Google Cloud console.
Verificar usando a CLI gcloud
Execute um comando can-i do kubectl para verificar se é possível executar uma ação específica em um recurso específico do Kubernetes. Use esse método para automatizar
o acesso do RBAC de teste como parte do fluxo de trabalho de CI/CD. Por exemplo, o comando
a seguir testa o acesso de get aos recursos de pods no namespace dev:
kubectl auth can-i get pods \
--namespace=dev \
--as=USER \
--as-group=GROUP
Substitua:
USER: o nome do usuário a ser representado, comogke-user@example.com. O usuário especificado precisa ser membro do grupo para o qual você está testando o acesso.GROUP: o nome do grupo a ser personificado, comogke-dev-users@example.com.
Se USER tiver acesso, a saída será yes. Caso contrário, a saída será no.
Verificar usando o Google Cloud console
Também é possível verificar o acesso do RBAC executando um comando kubectl no cluster e verificando os registros.
Antes de começar
Antes de começar, verifique se você atendeu aos seguintes pré-requisitos:
- Você não interagiu com o cluster que quer testar (por exemplo, se não executou nenhum comando
kubectl) por pelo menos uma hora. A autenticação está armazenada em cache por uma hora. Ao permitir que as credenciais em cache expirem, você garante que a solicitação seja registrada quando acontecer. - Você é membro de pelo menos um dos grupos que são membros do grupo
gke-security-groups, o que ajuda a garantir que algumas informações dos Grupos do Google sejam registradas.
Ativar registros e executar um comando de teste
Ative a geração de registros de acesso aos dados para seu Google Cloud projeto. Para ativar a geração de registros:
Acesse a página Registros de auditoria no Google Cloud console.
Na tabela, selecione API Kubernetes Engine.
No menu Tipo de registro, selecione:
- Leitura de administradores
- Leitura de dados
- Gravação de dados
Clique em Salvar.
Para mais informações sobre como ativar a geração de registros de auditoria, consulte Como configurar registros de acesso a dados com o Console do Cloud.
Execute um comando usando
kubectlno cluster, como o seguinte:kubectl create ns helloworldInsira uma consulta personalizada na página Explorador de registros. Para executar a consulta, faça o seguinte:
Acesse a página Análise de registros no Google Cloud console.
Clique na seta da caixa Visualização da consulta, na parte superior da página.
Na caixa suspensa em exibição, especifique a seguinte consulta:
resource.type="k8s_cluster" resource.labels.location="CLUSTER_LOCATION" resource.labels.cluster_name="CLUSTER_NAME" protoPayload.resourceName="authorization.k8s.io/v1/selfsubjectaccessreviews" protoPayload.authenticationInfo.principalEmail="EMAIL_ADDRESS"Substitua:
CLUSTER_LOCATION: a região ou zona do cluster.CLUSTER_NAME: o nome do cluster.EMAIL_ADDRESS: o endereço de e-mail registrado da sua Conta do Google.
Selecione Executar consulta. Pelo menos um resultado deve aparecer. Se não houver resultados, tente aumentar o período.
Selecione o cluster que você quer examinar.
Clique em Expandir campos aninhados.
O campo
labels.authorization.k8s.io/decisioncontém o resultado se a solicitação foi permitida ou negada.O campo
labels."authorization.k8s.io/reason"contém o nome de um grupo do Google. Esse grupo é membro dogke-security-groupe é mapeado para o grupo do Kubernetes que determina o acesso.
Como opção, restaure a geração de registros de acesso aos dados para as configurações anteriores, evitando outras cobranças.
Efeitos da exclusão de grupos
Depois de configurar os Grupos do Google para RBAC, as concessões de acesso do RBAC dependem da existência dos Grupos do Google que você criou. Considere os seguintes efeitos da exclusão de um dos grupos:
gke-security-group: o GKE usa o ID exclusivo do grupogke-security-grouppara encontrar os assuntos referenciados nas políticas de RBAC. Se você excluir esse grupo, todas as concessões de acesso para os Grupos do Google para RBAC vão falhar.Se você recriar o grupo
gke-security-group, será necessário reativar os Grupos do Google para RBAC no cluster seguindo as etapas na seção Atualizar um cluster atual. A reativação dos Grupos do Google para RBAC atualiza o cluster para usar o ID do grupo do novo grupogke-security-group.Grupos de membros: se você excluir um dos grupos de membros configurados para os Grupos do Google para RBAC, todas as vinculações de RBAC desse grupo vão falhar. Como resultado, todos os membros desse grupo perdem o acesso correspondente.
Para corrigir uma exclusão não intencional de um grupo de membros, crie um novo grupo com exatamente o mesmo nome do grupo excluído. Torne o novo grupo um membro do
gke-security-groupgrupo seguindo as etapas na seção Configurar seus Grupos do Google.
A seguir
- Saiba como configurar o controle de acesso baseado em papéis.
- Saiba mais sobre o controle de acesso no GKE.
- Saiba mais sobre IAM.
- Leia sobre o OpenID Connect (OIDC).
- Saiba mais sobre as práticas recomendadas do RBAC.