Esta página explica as diferenças entre a Identity and Access Management (IAM) e o controlo de acesso baseado em funções (CABF) do Kubernetes no Google Kubernetes Engine para ajudar a gerir o acesso aos recursos no seu projeto.
Esta página destina-se a especialistas em segurança que controlam o acesso às autorizações e querem compreender as diferenças e a sobreposição entre o IAM e o CABF. 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. Google Cloud
Quando cria um Google Cloud projeto, é o único utilizador no projeto. Por predefinição, nenhum outro utilizador tem acesso ao seu projeto nem aos respetivos recursos, incluindo os recursos do Google Kubernetes Engine (GKE). O GKE suporta várias opções para gerir o acesso a recursos no seu projeto e respetivos clusters através do controlo de acesso baseado em funções (CABF).
Antes de ler esta página, certifique-se de que conhece o seguinte:
Estes mecanismos têm alguma sobreposição funcional, mas destinam-se a diferentes tipos de recursos. Cada uma é explicada numa secção dedicada nesta página, mas, resumidamente:
O RBAC do Kubernetes está integrado no Kubernetes e concede autorizações detalhadas a objetos em clusters do Kubernetes. As autorizações existem como objetos ClusterRole ou Role no cluster. Os objetos RoleBinding concedem funções a utilizadores do Kubernetes, utilizadores, contas de serviço do IAM ou grupos Google.Google Cloud
Se usar principalmente o GKE e precisar de autorizações detalhadas para cada objeto e operação no seu cluster, o RBAC do Kubernetes é a melhor escolha.
A IAM gere Google Cloud recursos, incluindo clusters e tipos de objetos nos clusters. As autorizações são atribuídas a principais do IAM.
Não existe nenhum mecanismo para conceder autorizações para objetos Kubernetes específicos no IAM. Por exemplo, pode conceder a um utilizador autorização para criar CustomResourceDefinitions (CRDs), mas não pode conceder-lhe autorização para criar apenas uma CustomResourceDefinition específica nem limitar a criação a um espaço de nomes específico ou a um cluster específico no projeto. Uma função de IAM concede privilégios em todos os clusters no projeto ou em todos os clusters em todos os projetos secundários se a função for aplicada ao nível da pasta.
Se usar vários Google Cloud componentes e não precisar de gerir autorizações específicas do Kubernetes detalhadas, o IAM é uma boa opção.
RBAC do Kubernetes
O Kubernetes tem suporte incorporado para RBAC que lhe permite criar funções detalhadas, que existem no cluster do Kubernetes. Uma função pode ser definida para um objeto Kubernetes específico ou um tipo de objeto Kubernetes e define que ações (denominadas verbos) a função concede em relação a esse objeto. Um RoleBinding também é um objeto do Kubernetes e concede funções aos utilizadores. Um utilizador do GKE pode ser qualquer um dos seguintes:
- Google Cloud user
- Conta de serviço do IAM
- ServiceAccount do Kubernetes
- Utilizador do Google Workspace
- Grupo Google do Google Workspace
- Utilizadores autenticados através de certificados de cliente X509
Para saber mais, consulte o artigo Controlo de acesso baseado em funções.
IAM
O IAM permite-lhe conceder funções a principais. Uma função é uma coleção de autorizações e, quando concedida a um principal, permite que esse principal aceda a um ou mais Google Cloud recursos. Para mais informações sobre os principais, as funções e outra terminologia de IAM, consulte a vista geral do IAM.
No GKE, um principal pode ser qualquer uma das seguintes opções:
- Conta de utilizador
- Conta de serviço
- Grupo Google do Google Workspace
- Domínio do Google Workspace
- Domínio do Cloud ID
Para mais informações sobre a utilização da IAM para controlar o acesso no GKE, consulte o artigo Crie políticas de autorização da IAM.
Tipos de políticas de IAM
O IAM suporta os seguintes tipos de políticas:
- Políticas de permissão: concedem funções a principais. Para ver detalhes, consulte a Política de permissão.
- Políticas de recusa: impedem que os principais usem autorizações de IAM específicas, independentemente das funções que lhes são concedidas. Para ver detalhes, consulte as políticas de recusa.
Use políticas de recusa para restringir a execução de ações específicas por parte de determinados responsáveis no seu projeto, pasta ou organização, mesmo que uma política de autorização do IAM conceda a esses responsáveis uma função que contenha as autorizações relevantes.
Recomendações de IAM
Considere usar as seguintes funções predefinidas do IAM para facilitar cenários comuns:
- Kubernetes Engine Cluster Viewer (
roles/container.clusterViewer
): engenheiros de DevOps, engenheiros e programadores de aplicações que só precisam de se ligar ao cluster. - Administrador do cluster do Kubernetes Engine (
roles/container.clusterAdmin
): administradores da plataforma e operadores de clusters que precisam de gerir um ou mais clusters num projeto Google Cloud .
Para ver uma lista das funções de IAM predefinidas disponíveis, consulte o artigo Funções de GKE predefinidas.
O GKE usa contas de serviço da IAM anexadas aos seus nós para
executar tarefas do sistema, como registo e monitorização. No mínimo, estas contas de serviço de nós
têm de ter a função
Conta de serviço de nós predefinida do Kubernetes Engine
(roles/container.defaultNodeServiceAccount
) no seu projeto. Por predefinição,
o GKE usa a
conta de serviço predefinida do Compute Engine,
que é criada automaticamente no seu projeto, como a conta de serviço do nó.
Interação do IAM com o CABF do Kubernetes
O IAM e o CABF do Kubernetes funcionam em conjunto para ajudar a gerir o acesso ao seu cluster. O CABF controla o acesso ao nível do cluster e do espaço de nomes, enquanto o IAM funciona ao nível do projeto. Uma entidade tem de ter autorizações suficientes ao nível do cluster ou do espaço de nomes para trabalhar com recursos no seu cluster.
O que se segue?
- Leia a vista geral de segurança do GKE.
- Saiba como usar o RBAC do Kubernetes.
- Saiba como criar políticas de IAM para o GKE.
- Saiba como usar as condições do IAM para equilibradores de carga.