Configure os Grupos Google para RBAC

Esta página mostra como configurar o Grupos Google para funcionar com o controlo de acesso baseado em funções (RBAC) do Kubernetes nos seus clusters do Google Kubernetes Engine (GKE).

Os Grupos Google para RBAC permitem-lhe atribuir autorizações RBAC a membros de Grupos Google no Google Workspace. Os administradores do Google Workspace mantêm os utilizadores e os grupos completamente fora do GKE ou da Trusted Cloud consola. Por conseguinte, os administradores do cluster não precisam de informações detalhadas sobre os utilizadores.

A utilização dos Grupos Google para o RBAC também lhe permite integrar-se com as suas práticas de gestão de contas de utilizador existentes, como revogar o acesso quando alguém abandona a sua organização.

Esta página destina-se a especialistas e operadores de segurança que querem usar o Google Groups com o RBAC do Kubernetes em clusters do GKE. Para saber mais sobre as funções comuns e as tarefas de exemplo que referimos no conteúdo, consulte o artigo Funções e tarefas comuns do utilizador do GKE. Trusted Cloud by S3NS

Antes de ler esta página, certifique-se de que conhece as limitações dos Grupos Google ao criar grupos e adicionar utilizadores como membros.

Para usar o Google Groups para RBAC, conclua as seguintes tarefas:

  1. Cumpra os requisitos.
  2. Configure o Google Groups.
  3. Ative o Google Groups para o CABF num cluster.
  4. Definir e atribuir autorizações RBAC aos Grupos Google.

Requisitos

Para usar o Google Groups para RBAC, tem de ter acesso ao Google Workspace ou a qualquer edição do Cloud ID.

Limitações

  • O GKE suporta utilizadores com associação a um máximo de 2000 grupos no grupo de segurança, incluindo associações aninhadas, com o Grupos Google para RBAC.

Configure os seus Grupos Google

Os passos seguintes mostram como configurar um grupo no Google Groups que funciona com o RBAC:

  1. Crie um grupo no seu domínio com o nome gke-security-groups. O nome gke-security-groups é obrigatório. Certifique-se de que o grupo tem a autorização Ver membros selecionada para Membros do grupo. Para ver detalhes, consulte o artigo Defina autorizações para gerir membros e conteúdo.

  2. Crie grupos, se ainda não existirem, que representem conjuntos de utilizadores que devem ter autorizações diferentes nos seus clusters, como programadores e administradores de clusters. Cada grupo tem de ter a autorização Ver membros para Membros do grupo.

  3. Adicione os seus grupos como grupos aninhados ao grupo gke-security-groups. Não adicione utilizadores individuais como membros de gke-security-groups.

Para mais informações sobre a gestão dos Grupos Google, consulte o Centro de Ajuda do Grupos Google.

Para verificar se um utilizador específico pode realizar uma ação num recurso de cluster, o GKE verifica se o utilizador é membro de um grupo com acesso e se esse grupo está aninhado no grupo gke-security-groups.

As informações sobre membros dos Grupos Google são armazenadas em cache durante um curto período. As alterações nas associações a grupos podem demorar alguns minutos a propagarem-se a todos os seus clusters. Além da latência das alterações de grupo, o armazenamento em cache padrão das credenciais de utilizador no cluster é de cerca de uma hora.

Ative os Grupos Google para RBAC em clusters

Pode ativar os Grupos Google para RBAC em clusters padrão e do Autopilot do GKE novos e existentes através da CLI Google Cloud ou da Trusted Cloud consola.

Crie um novo cluster

gcloud

Padrão

Para criar um novo cluster padrão e ativar os Grupos Google para RBAC, execute o seguinte comando:

gcloud container clusters create CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --security-group="gke-security-groups@DOMAIN"

Substitua o seguinte:

  • CLUSTER_NAME: o nome do novo cluster.
  • CONTROL_PLANE_LOCATION: a localização do Compute Engine do plano de controlo do seu cluster. Indique uma região para clusters regionais ou uma zona para clusters zonais.
  • DOMAIN: o nome do domínio do gke-security-groups grupo que criou.

Autopilot

Para criar um novo cluster do Autopilot e ativar os Grupos Google para RBAC, execute o seguinte comando:

gcloud container clusters create-auto CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --security-group="gke-security-groups@DOMAIN"

Consola

Para criar um novo cluster e ativar a funcionalidade Grupos Google para RBAC, siga os seguintes passos:

  1. Aceda à página do Google Kubernetes Engine na Trusted Cloud consola.

    Aceda ao Google Kubernetes Engine

  2. Clique em Criar.

  3. Clique em Configurar para o modo de cluster que quer usar.

  4. Para clusters do Autopilot, expanda a secção Opções avançadas para localizar as opções de Segurança.

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

  6. Selecione a caixa de verificação Ativar grupos Google para RBAC.

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

  8. Clique em Criar.

Atualize um cluster existente

gcloud

Para atualizar um cluster existente para ativar os Grupos Google para RBAC, execute o seguinte comando:

gcloud container clusters update CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION \
    --security-group="gke-security-groups@DOMAIN"

Substitua o seguinte:

  • CLUSTER_NAME: o nome do cluster.
  • CONTROL_PLANE_LOCATION: a localização do Compute Engine do plano de controlo do seu cluster. Indique uma região para clusters regionais ou uma zona para clusters zonais.
  • DOMAIN: o nome do domínio do gke-security-groups grupo que criou.

Consola

Para atualizar um cluster existente para ativar os Grupos Google para RBAC, siga os passos abaixo:

  1. Aceda à página do Google Kubernetes Engine na Trusted Cloud consola.

    Aceda ao Google Kubernetes Engine

  2. Clique no nome do cluster que quer atualizar.

  3. No separador Detalhes, localize a secção Segurança.

  4. No campo Google Groups for RBAC, clique em Editar Google Groups for RBAC.

  5. Selecione a caixa de verificação Ativar grupos Google para RBAC.

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

  7. Clique em Guardar alterações.

Defina e atribua autorizações

Depois de criar e configurar os Grupos Google para o RBAC, use funções e associações de funções para definir autorizações RBAC e atribuir essas autorizações a Grupos Google que são membros do grupo gke-security-groups. Para ver instruções, consulte o artigo Defina e atribua autorizações.

Valide os Grupos Google para a configuração do RBAC

As secções seguintes mostram como verificar se a configuração dos Grupos Google para RBAC foi bem-sucedida, através da CLI gcloud ou daTrusted Cloud consola.

Valide através da CLI gcloud

Execute um comando can-i kubectl para verificar se pode realizar uma ação específica num recurso específico do Kubernetes. Pode usar este método para automatizar os testes de acesso RBAC como parte do seu fluxo de trabalho de CI/CD.Por exemplo, o seguinte comando testa o acesso get aos recursos pods no espaço de nomes dev:

kubectl auth can-i get pods \
    --namespace=dev \
    --as=USER \
    --as-group=GROUP

Substitua o seguinte:

  • USER: o nome do utilizador a roubar a identidade, como gke-user@example.com. O utilizador especificado tem de ser membro do grupo para o qual está a testar o acesso.
  • GROUP: o nome do grupo a roubar a identidade, como gke-dev-users@example.com.

Se USER tiver acesso, o resultado é yes. Caso contrário, a saída é no.

Valide através da Trusted Cloud consola

Também pode validar o acesso RBAC executando um comando kubectl no seu cluster e verificando os registos.

Antes de começar

Antes de começar, certifique-se do seguinte:

  • Não interagiu com o cluster que quer testar (por exemplo, não executou nenhum comando kubectl) durante, pelo menos, uma hora. A autenticação é colocada em cache durante uma hora. Deixar as credenciais em cache expirar permite-lhe certificar-se de que o pedido é registado quando ocorre.
  • É 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 Google são registadas.

Ative os registos e execute um comando de teste

  1. Ative o registo de acesso aos dados para o seu Trusted Cloud projeto. Para ativar o registo:

    1. Aceda à página Registos de auditoria na Trusted Cloud consola.

      Aceder aos registos de auditoria

    2. Na tabela, selecione API Kubernetes Engine.

    3. No menu Tipo de registo, selecione:

      • Admin Read
      • Dados lidos
      • Gravação de dados
    4. Clique em Guardar.

    Para mais informações sobre como ativar o registo de auditoria, consulte o artigo Configurar registos de acesso a dados com a Cloud Console.

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

    kubectl create ns helloworld
    
  3. Introduza uma consulta personalizada na página do Explorador de registos. Para executar a consulta:

    1. Aceda à página Explorador de registos na Trusted Cloud consola.

      Aceda ao Explorador de registos

    2. Clique na seta na caixa Pré-visualização da consulta na parte superior da página.

    3. Na caixa de menu pendente apresentada, 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 o seguinte:

      • CLUSTER_LOCATION: a região ou a zona do cluster.
      • CLUSTER_NAME: o nome do cluster.
      • EMAIL_ADDRESS: o endereço de email registado da sua conta Google.
    4. Selecione Executar consulta. Deve aparecer, pelo menos, um resultado. Se não forem apresentados resultados, experimente aumentar o intervalo de tempo.

    5. Selecione o cluster que quer examinar.

    6. Clique em Expandir campos aninhados.

    7. O campo protoPayload.request.spec.group contém os grupos onde:

      • Os grupos são membros de gke-security-group.
      • É membro do grupo.

      Esta lista deve corresponder ao conjunto de grupos dos quais é membro. Se não existirem grupos, pode haver um problema com a forma como os grupos estão configurados.

  4. Opcionalmente, restaure o registo de acesso aos dados para as definições anteriores para evitar cobranças adicionais.

Efeitos da eliminação de grupos

Depois de configurar os Grupos Google para o RBAC, as concessões de acesso RBAC dependem da existência dos Grupos Google que criou. Considere os seguintes efeitos da eliminação de um dos grupos:

  • gke-security-group: o GKE usa o ID exclusivo do grupo gke-security-group para encontrar os assuntos aos quais faz referência nas suas políticas de RBAC. Se eliminar este grupo, todas as concessões de acesso para os Grupos Google para RBAC falham.

    Se recriar o grupo gke-security-group, tem de reativar os Grupos Google para RBAC no cluster através dos passos na secção Atualize um cluster existente. A reativação do Grupos Google para atualizações de RBAC atualiza o cluster para usar o ID do grupo do novo gke-security-group grupo.

  • Grupos de membros: se eliminar um dos grupos de membros que configurou para os Grupos Google para RBAC, todas as associações de RBAC desse grupo falham. Como resultado, todos os membros desse grupo perdem o acesso correspondente.

    Para corrigir uma eliminação não intencional de um grupo de membros, crie um novo grupo com exatamente o mesmo nome do grupo eliminado. Torne o novo grupo membro do grupo gke-security-group seguindo os passos na secção Configure os Grupos Google.

O que se segue?