Configurar o Grupos do Google para RBAC


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:

  1. Cumpra os requisitos.
  2. Configure seus Grupos do Google.
  3. Ative o Grupos do Google para RBAC em um cluster.
  4. 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 oferece suporte a usuários com associação em até 500 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:

  1. Crie um Grupo do Google no seu domínio, chamado gke-security-groups. O nome de gke-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.

  2. 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.

  3. Adicione seus grupos como grupos aninhados ao grupo gke-security-groups. Não adicione usuários individuais como membros de gke-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 grupo gke-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:

  1. Acesse a página do Google Kubernetes Engine no Console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Clique em Criar.

  3. Clique em Configurar no modo de cluster que você quer usar.

  4. Para clusters do Autopilot, expanda a seção Advanced Options para localizar as opções de Security.

  5. Para clusters padrão, na seção Cluster, clique em Segurança.

  6. Marque a caixa de seleção Ativar Grupos do Google para RBAC (Beta).

  7. Preencha o Grupo de segurança com gke-security-groups@DOMAIN.

  8. 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 grupo gke-security-groups que você criou.

Console

Para atualizar um cluster existente para ativar o Grupos do Google para RBAC, execute as seguintes etapas:

  1. Acesse a página do Google Kubernetes Engine no Console do Google Cloud.

    Acessar o Google Kubernetes Engine

  2. Clique no nome do cluster que você quer atualizar.

  3. Na guia Detalhes, localize a seção Segurança.

  4. No campo Grupos do Google para RBAC, clique em Editar Grupos do Google para RBAC.

  5. Marque a caixa de seleção Ativar Grupos do Google para RBAC (Beta).

  6. Preencha o Grupo de segurança com gke-security-groups@DOMAIN.

  7. 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, como gke-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, como gke-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

  1. Ative a geração de registros de acesso a dados para seu projeto do Google Cloud. Para ativar a geração de registros:

    1. Acesse a página Registros de auditoria no Console do Google Cloud.

      Vá para "Registros de Auditoria"

    2. Na tabela, selecione API do Kubernetes Engine.

    3. No menu Tipo de registro, selecione:

      • Leitura de administradores
      • Leitura de dados
      • Gravação de dados
    4. Clique em Save.

    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.

  2. Execute um comando usando kubectl no cluster, como o seguinte:

    kubectl create ns helloworld
    
  3. Insira uma consulta personalizada na página Explorador de registros. Para executar a consulta, faça o seguinte:

    1. Acesse a página do Explorador de registros no Console do Google Cloud:

      Acessar o Explorador de registros

    2. Clique na seta da caixa Visualização da consulta, na parte superior da página.

    3. 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.
    4. Selecione Executar consulta. Pelo menos um resultado deve aparecer. Se não houver resultados, tente aumentar o período.

    5. Selecione o cluster que você quer examinar.

    6. Clique em Expandir campos aninhados.

    7. 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.

  4. Como opção, restaure a geração de registros de acesso a dados para as configurações anteriores, evitando outras cobranças.

A seguir