Como criar políticas do Cloud IAM

Nesta página, explicamos como criar políticas do Cloud Identity and Access Management (Cloud IAM) para autorização no Google Kubernetes Engine.

Visão geral

Todas as chamadas às APIs do Google Cloud Platform (GCP), do GKE e do Kubernetes exigem que a conta que está fazendo a solicitação tenha as permissões necessárias. Por padrão, ninguém, exceto você ou outras pessoas que tenham permissão concedida por políticas no nível de pasta e organização, pode acessar seu projeto nem os recursos dele sem ser autenticado e autorizado. É possível usar o Cloud IAM para gerenciar quem pode acessar seu projeto e o que podem fazer.

Para conceder acesso aos usuários e contas de serviço ao seu projeto do GCP, é preciso adicioná-los como membros da equipe do projeto. Em seguida, você precisa atribuir papéis. Os papéis definem quais recursos do GCP uma conta pode acessar e quais operações eles podem executar.

No GKE, use o Cloud IAM para gerenciar os usuários e contas de serviço que podem acessar e executar operações nos clusters.

Antes de começar

Prepare-se para a tarefa tomando as seguintes medidas:

  • Verifique se você ativou a API Google Kubernetes Engine.
  • Ativar a API Google Kubernetes Engine
  • Verifique se o SDK do Cloud está instalado.
  • Defina o código do projeto padrão:
    gcloud config set project [PROJECT_ID]
  • Se você estiver trabalhando com clusters zonais, defina a zona de computação padrão:
    gcloud config set compute/zone [COMPUTE_ZONE]
  • Se você estiver trabalhando com clusters regionais, defina a região de computação padrão:
    gcloud config set compute/region [COMPUTE_REGION]
  • Atualize a gcloud para a versão mais recente:
    gcloud components update

Interação com controle de acesso baseado em papéis

O sistema nativo de controle de acesso baseado em papéis (RBAC, na sigla em inglês) do Kubernetes também gerencia o acesso ao cluster. O RBAC controla o acesso no nível do cluster e do namespace, enquanto o Cloud IAM funciona para envolvidos no projeto.

O Cloud IAM e o RBAC podem funcionar em conjunto, e uma entidade precisa ter permissões suficientes em qualquer nível para trabalhar com recursos no cluster.

Papéis do Cloud IAM

Nas seções a seguir, descrevemos os papéis do Cloud IAM disponíveis no GCP.

Papéis predefinidos do GKE

O Cloud IAM fornece papéis predefinidos que concedem acesso a recursos específicos do GCP e impedem o acesso não autorizado a outros recursos.

O Cloud IAM oferece os seguintes papéis predefinidos para o GKE:

Título do papel Nome do papel Recursos Usuários pretendidos
Administrador do GKE roles/container.admin Acesso total aos clusters e aos respectivos recursos do Kubernetes.
  • Proprietários/administradores de projeto
  • Engenheiros de plantão
  • Administradores de sistema
Desenvolvedor do GKE roles/container.developer Acesso total aos recursos do Kubernetes em execução nos clusters.
  • Desenvolvedores
  • Engenheiros de lançamento
Leitor do GKE roles/container.viewer Acesso somente leitura a clusters e aos respectivos recursos do Kubernetes.
  • Usuários que só precisam visualizar os clusters e os respectivos recursos
Administrador de cluster do GKE roles/container.clusterAdmin
    Quando pareado com o Usuário de conta de serviço, concede permissão para criar, excluir, atualizar e visualizar apenas clusters. Sem acesso aos recursos do Kubernetes.
  • Usuários que precisam apenas gerenciar clusters e não precisam acessar as cargas de trabalho do cluster.
Visualizador de cluster do GKE roles/container.clusterViewer Permissão para conseguir e listar clusters. Sem acesso aos recursos do Kubernetes.
  • Usuários que precisam de acesso somente leitura a clusters.
  • Adequado para recuperar informações de cluster para configurar o kubectl.

Para saber mais sobre as permissões concedidas por cada papel do GKE, consulte Permissões concedidas pelos papéis do Cloud IAM.

Papéis primários do Cloud IAM

Os papéis primários do Cloud IAM concedem aos usuários acesso global para envolvidos no projeto a todos os recursos do GCP. Para manter o projeto e os clusters seguros, é preciso usar papéis predefinidos sempre que possível.

Para saber mais sobre eles, consulte Papéis primários na documentação do Cloud IAM.

Papel de usuário de conta de serviço

O papel de Usuário de conta de serviço concede aos usuários permissão para concluir determinadas tarefas usando uma conta de serviço do GCP. No GKE, os usuários que precisam criar ou atualizar clusters podem precisar dessa função. Faça o pareamento do papel de Usuário de conta de serviço com outros, dependendo do nível de acesso exigido por uma entidade.

Por exemplo, se um usuário com o papel de Administrador do Cluster precisar criar um cluster, ele precisará acessar a conta de serviço dos nós do cluster. É preciso conceder a ele o papel de Usuário da conta de serviço na política do Cloud IAM dessa conta de serviço para garantir que ele tenha permissão para usá-la:

gcloud iam service-accounts add-iam-policy-binding \
  [SA_NAME]@[PROJECT_ID].iam.gserviceaccount.com \
  --member=user:[USER] \
  --role=roles/iam.serviceAccountUser
Título do papel Nome do papel Recursos Permissões
Usuário de conta de serviço roles/iam.serviceAccountUser Acesso a contas de serviço para envolvidos no projeto ou específicas do serviço.
  • iam.serviceAccounts.actAs
  • iam.serviceAccounts.get
  • iam.serviceAccounts.list
  • resourcemanager.projects.get
  • resourcemanager.projects.list

Papel de Usuário do agente de serviço de host

O papel de Usuário do agente de serviço de host é usado apenas em clusters de VPC compartilhada.

Título do papel Nome do papel Recursos Permissões
Usuário do agente de serviço de host roles/container.hostServiceAgentUser Usado com a VPC compartilhada. Concede permissão para gerenciar recursos de rede no projeto host. Este papel é concedido à conta de serviço do GKE de um projeto de serviço. O papel permite que a conta de serviço do GKE de um projeto de serviço use a conta de serviço do GKE do respectivo projeto host. Esse papel não é concedido aos usuários.
  • container.hostServiceAgent.use
  • compute.firewalls.get

Papéis personalizados

Se os papéis predefinidos não atenderem às suas necessidades, crie papéis personalizados com permissões definidas por você.

Para aprender como criar e atribuir papéis personalizados, consulte Como criar e gerenciar papéis personalizados.

Permissões concedidas por papéis do Cloud IAM

Veja as permissões concedidas por cada papel usando a ferramenta de linha de comando gcloud ou o Console do GCP.

gcloud

Para exibir as permissões concedidas por um papel específico, execute o comando a seguir. [ROLE] é qualquer papel do Cloud IAM. Os papéis do GKE têm o prefixo roles/container.:

gcloud iam roles describe roles/[ROLE]

Exemplo:

gcloud iam roles describe roles/container.admin

Console

Para visualizar as permissões concedidas por um papel específico, faça o seguinte:

  1. Acesse a seção Papéis no menu IAM do Console do GCP.

    Acessar o menu IAM

  2. No campo Filtrar tabela, insira "GKE"

  3. Selecione o papel desejado.

Como gerenciar políticas do Cloud IAM

Para saber como gerenciar papéis e permissões do Cloud IAM para usuários, consulte Como conceder, alterar e revogar acesso aos membros do projeto na documentação do Cloud IAM.

Para contas de serviço, consulte Como atribuir papéis a contas de serviço.

Exemplos

Veja alguns exemplos de como o Cloud IAM funciona com o GKE:

  • Um novo funcionário entrou para uma empresa. É preciso adicioná-lo ao projeto do GCP, mas ele precisa apenas visualizar os clusters do projeto e outros recursos do GCP. O proprietário do projeto atribui a ele o papel de Visualizador para envolvidos no projeto, que contém a permissão compute.projects.get necessária para visualizar projetos e os respectivos recursos.
  • O funcionário está trabalhando com operações e precisa atualizar um cluster usando a gcloud ou o Console do Google Cloud Platform. Essa operação requer a permissão container.clusters.update. Portanto, o proprietário do projeto atribui o papel de Administrador do cluster. O funcionário agora tem os papéis de Administrador do cluster e Visualizador.
  • O funcionário precisa investigar por que uma implantação está tendo problemas. Ele precisa executar kubectl get pods para ver os pods em execução no cluster. O funcionário já tem o papel de Visualizador, que concede essa permissão.
  • O funcionário precisa criar um novo cluster. O proprietário do projeto concede ao funcionário o papel de Usuário de conta de serviço para que a conta do funcionário possa acessar a conta de serviço padrão do GKE.

A seguir

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Kubernetes Engine