Controle de acesso


Ao criar um projeto do Google Cloud, você é o único usuário no projeto. Por padrão, nenhum outro usuário tem acesso ao seu projeto ou recursos dele, incluindo os recursos do Google Kubernetes Engine (GKE). O GKE é compatível com várias opções para gerenciar o acesso a recursos no projeto e nos clusters dele usando o controle de acesso baseado em papéis (RBAC, na sigla em inglês).

Esses mecanismos têm algumas funções semelhantes, mas são direcionados para diferentes tipos de recursos. Cada um é explicado em uma das seções abaixo. No entanto, estas são algumas características:

  • O RBAC do Kubernetes é incorporado ao Kubernetes e concede permissões granulares a objetos nos clusters do Kubernetes. As permissões existem como objetos ClusterRole ou Role no cluster. Os objetos RoleBinding concedem papéis a usuários do Kubernetes , usuários do Google Cloud, contas de serviço do IAM ou Grupos do Google.

    Se você usa principalmente o GKE e precisa de permissões refinadas para cada objeto e operação no cluster, o RBAC do Kubernetes é a melhor escolha.

  • O IAM gerencia recursos do Google Cloud, incluindo clusters e tipos de objetos dentro deles. As permissões são atribuídas aos participantes do IAM.

    Não há mecanismo para conceder permissões a objetos específicos do Kubernetes no IAM. Por exemplo, é possível conceder permissão a um usuário para criar CustomResourceDefinitions (CRDs). No entanto, isso não é possível para criar somente uma CustomResourceDefinition em particular ou limitar a produção a um namespace individual ou a um cluster especial no projeto. Se aplicado no nível da pasta, um papel do IAM concede privilégios a todos os clusters no projeto ou em todos os projetos filho.

    Se você usa vários componentes do Google Cloud e não precisa gerenciar permissões granulares específicas do Kubernetes, o IAM é recomendável.

Kubernetes RBAC

O Kubernetes conta com suporte integrado para RBAC, o que permite criar papéis específicos que existem no cluster do Kubernetes. É possível definir o escopo de um papel para um objeto específico do Kubernetes ou um tipo de objeto do Kubernetes. Também é possível definir quais ações (chamadas de verbos) o papel concede em relação a esse objeto. Um RoleBinding também é um objeto do Kubernetes que concede papéis aos usuários. Em um usuário do GKE, pode ser qualquer um dos seguintes:

  • Usuário do Google Cloud
  • Conta de serviço do IAM
  • Conta de serviço do Kubernetes
  • Usuário do Google Workspace
  • Grupos do Google do Google Workspace
  • Usuários autenticados com certificados do cliente X509

Para saber mais, consulte Controle de acesso baseado em papel.

IAM

O IAM permite definir papéis e atribuí-los a participantes. Um papel é um conjunto de permissões e, quando atribuído a um participante, controla o acesso a um ou mais recursos do Google Cloud. Os papéis se dividem em três categorias amplas:

Um participante pode ser qualquer um dos seguintes:

  • Conta de usuário
  • Conta de serviço
  • Grupos do Google do Google Workspace
  • Domínio do Google Workspace
  • Domínio do Cloud Identity

Uma política do IAM atribui um conjunto de permissões a um ou mais participantes do Google Cloud.

Você também pode usar o IAM para criar e configurar contas de serviço, que são contas do Google Cloud associadas ao projeto e podem executar tarefas em seu nome. Papéis e permissões são atribuídos a contas de serviço da mesma maneira que a usuários humanos.

As contas de serviço também oferecem outras funcionalidades. Para saber mais, consulte Como criar políticas de IAM.

Recomendações de IAM

Use os seguintes papéis predefinidos do IAM para facilitar cenários comuns:

Para uma lista dos papéis predefinidos do IAM, consulte Papéis predefinidos do GKE.

Além disso, considere criar uma conta de serviço do IAM personalizada para seus nós usarem em vez da conta de serviço padrão do Compute Engine. Conceda à conta de serviço personalizada as permissões mínimas necessárias para o funcionamento do GKE. Para mais instruções, consulte Usar contas de serviço IAM de privilégio mínimo.

Interação do IAM com o Kubernetes RBAC

O IAM e o RBAC do Kubernetes trabalham juntos para ajudar a gerenciar o acesso ao cluster. O RBAC controla o acesso no nível do cluster e do namespace, enquanto o IAM funciona no nível do projeto. Uma entidade precisa ter permissões suficientes em qualquer nível para trabalhar com recursos no cluster.

A seguir