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).
Visão geral
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 Console do Google Cloud. 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.
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 ao Google Workspace ou a qualquer edição do Cloud Identity.
Ao criar grupos e adicionar usuários como participantes, verifique os limites do Grupos.
Limitação
- O GKE permite usuários com associação em até 2.00 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 Console do Google Cloud.
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 \
--region=COMPUTE_REGION \
--security-group="gke-security-groups@DOMAIN"
Substitua:
CLUSTER_NAME
: o nome do novo cluster;COMPUTE_REGION
: a região do Compute Engine para o novo cluster. Para clusters zonais, use--zone=COMPUTE_ZONE
.DOMAIN
: o nome de domínio do grupogke-security-groups
que 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 \
--region=COMPUTE_REGION \
--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 do Google Kubernetes Engine no Console do Google Cloud.
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 \
--region=COMPUTE_REGION \
--security-group="gke-security-groups@DOMAIN"
Substitua:
CLUSTER_NAME
: o nome do cluster.COMPUTE_REGION
: a região do Compute Engine do cluster. Para clusters zonais, use--zone=COMPUTE_ZONE
.DOMAIN
: o nome de domínio do grupogke-security-groups
que você criou.
Console
Para atualizar um cluster existente para ativar o Grupos do Google para RBAC, execute as seguintes etapas:
Acesse a página do Google Kubernetes Engine no Console do Google Cloud.
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 console do Google Cloud.
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 console do Google Cloud
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 garante que algumas informações dos Grupos sejam registradas.
Ativar registros e executar um comando de teste
Ative a geração de registros de acesso a dados para seu projeto do Google Cloud. Para ativar a geração de registros:
Acesse a página Registros de auditoria no Console do Google Cloud.
Na tabela, selecione API do 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
kubectl
no cluster, como o seguinte:kubectl create ns helloworld
Insira uma consulta personalizada na página Explorador de registros. Para executar a consulta, faça o seguinte:
Acesse a página do Explorador de registros no Console do Google Cloud:
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/v1beta1/subjectaccessreviews" protoPayload.response.spec.user="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
protoPayload.request.spec.group
contém os grupos em que:- Os grupos são membros do
gke-security-group
. - Você é membro do grupo.
Essa lista deve corresponder ao conjunto de grupos de que você é membro. Se nenhum grupo aparecer, talvez haja um problema com a configuração dos grupos.
- Os grupos são membros do
Como opção, restaure a geração de registros de acesso a dados para as configurações anteriores, evitando outras cobranças.