Aplicar o menor privilégio às recomendações

Nesta página, fornecemos uma visão geral do recomendador do Cloud IAM. O recomendador do Cloud IAM ajuda a aplicar o princípio do menor privilégio, garantindo que os membros tenham apenas as permissões de que realmente precisam.

Como funciona o recomendador do Cloud IAM

O Cloud IAM usa o recomendador para comparar atribuições de papel no nível do projeto com as permissões que cada membro usou durante os últimos 90 dias. Se você conceder um papel no nível do projeto a um membro e o membro não usar todas as permissões desse papel, o recomendador do Cloud IAM provavelmente recomendará a revogação do papel. Se necessário, o recomendador do Cloud IAM também recomenda papéis menos permissíveis como substitutos.

O recomendador do Cloud IAM também usa machine learning para identificar as permissões que um membro provavelmente precisará no futuro, mesmo que o membro não tenha usado essas permissões nos últimos 90 dias.

O recomendador do Cloud IAM não aplica recomendações automaticamente. Em vez disso, você precisa analisar cada recomendação e, em seguida, aplicar ou dispensar a recomendação.

O recomendador do Cloud IAM avalia somente as atribuições de papel feitas no nível do projeto e que já existem há pelo menos 90 dias. Ele não avalia nenhum dos seguintes itens:

Permissões usadas por cada membro

Para criar recomendações, o recomendador do Cloud IAM identifica as permissões que cada membro usou nos últimos 90 dias. Existem algumas formas de um membro poder usar uma permissão:

  • Diretamente, chamando uma API que requer a permissão

    Por exemplo, o método roles.list na API REST do Cloud IAM requer a permissão iam.roles.list. Quando você chama o método roles.list, você usa a permissão iam.roles.list.

  • Indiretamente, usando o Console do Google Cloud para trabalhar com recursos do Google Cloud

    Por exemplo, no Console do Cloud, é possível editar uma instância de máquina virtual (VM) do Compute Engine, que exige permissões diferentes com base nas configurações alteradas. No entanto, o Console do Cloud também exibe as configurações atuais que exigem a permissão compute.instances.get.

    Como resultado, ao editar uma instância de VM no Console do Cloud, você usa a permissão compute.instances.get.

Machine learning

Às vezes, um membro pode precisar de permissões não utilizadas nos últimos 90 dias para fazer o trabalho. Para identificar as permissões adicionais que um membro provavelmente precisará, o recomendador do Cloud IAM usa um modelo de machine learning.

O modelo de machine learning do recomendador do Cloud IAM é treinado em vários conjuntos de sinais:

  • Padrões comuns de co-ocorrência no histórico observado: o fato de um usuário ter usado as permissões A, B e C no passado sugere que A, B e C podem estar relacionados de alguma forma e que eles são necessários juntos para realizar uma tarefa no Google Cloud. Se o modelo de ML observar esse padrão com frequência suficiente, na próxima vez que um usuário diferente usar as permissões A e B, o modelo sugerirá que o usuário também precisará da permissão C.

  • Conhecimento de domínio conforme codificado nas definições do papel: o Cloud IAM fornece centenas de papéis predefinidos diferentes que são específicos do serviço. Se um papel predefinido contém um conjunto de permissões, é um forte sinal de que essas permissões devem ser concedidas em conjunto.

Além desses sinais, o modelo também usa a incorporação de palavras para calcular a semelhança semântica das permissões. Permissões semanticamente semelhantes serão consideradas "próximas" umas das outras após a incorporação e têm maior probabilidade de serem concedidas juntas. Por exemplo, bigquery.datasets.get e bigquery.tables.list estarão muito próximas uma da outra após a incorporação.

Todos os dados usados no pipeline de machine learning do recomendação do Cloud IAM têm k-anonymity, o que significa que os indivíduos no conjunto de dados anônimos não podem ser identificados novamente. Para atingir esse nível de anonimato, descartamos todas as informações de identificação pessoal, como o ID de usuário relacionado a cada padrão de uso de permissão. Em seguida, descartaremos todos os padrões de uso que não são exibidos com frequência suficiente no Google Cloud. O modelo global é treinado sobre esses dados anônimos.

O modelo global pode ser ainda mais personalizado para cada organização usando federated learning, um processo de machine learning que treina modelos sem exportar dados.

Registro de auditoria

Quando você aplica ou descarta uma recomendação, o recomendador do Cloud IAM cria uma entrada de registro. É possível ver essas entradas no recomendador do Cloud IAM ou visualizá-las nos registros de auditoria do Google Cloud.

Outros tipos de controles de acesso

Alguns serviços do Google Cloud fornecem controles de acesso separados do Cloud IAM. Por exemplo, o Cloud Storage fornece ACLs e o Google Kubernetes Engine (GKE) oferece suporte ao controle de acesso baseado em papéis (RBAC).

O recomendador do Cloud IAM analisa apenas os controles de acesso do Cloud IAM. Se você usa outros tipos de controle de acesso, tenha muito cuidado ao analisar suas recomendações e considere como esses controles de acesso estão relacionados às políticas do Cloud IAM.

Exemplos de recomendações de papéis

Os exemplos a seguir mostram os tipos de recomendações que talvez você receba:

Revogar um papel atual

O usuário fuyo@example.com recebeu um papel personalizado em um projeto. O papel personalizado inclui uma permissão, iam.serviceAccounts.actAs, que dá a fuyo@example.com a capacidade de atuar como uma conta de serviço. No entanto, durante os últimos 90 dias, fuyo@example.com não agiu como uma conta de serviço nesse projeto.

Portanto, o recomendado do Cloud IAM sugere que você revogue o papel personalizado de fuyo@example.com:

Substituir um papel atual

Uma conta de serviço recebeu o papel de Proprietário (roles/owner) em um projeto. Esse papel primário inclui mais de 2.500 permissões e concede acesso quase ilimitado a um projeto. No entanto, durante os últimos 90 dias, a conta de serviço usou apenas algumas centenas de permissões.

Portanto, o recomendador do Cloud IAM sugere que você revogue o papel de Proprietário e a substitua por uma combinação de quatro outros papéis, o que remove milhares de permissões concedidas além do necessário:

Adicionar permissões sugeridas por machine learning

Uma conta de serviço recebeu o papel de Editor (roles/editor) em um projeto. Esse papel primário inclui mais de 2.000 permissões e concede amplo acesso a um projeto. No entanto, durante os últimos 90 dias, a conta de serviço usou menos de 10 permissões.

O recomendador do Cloud IAM sugere que você revogue o papel de Editor e substitua-o pelo papel de Administrador de objetos de armazenamento (storage.objectAdmin), que concede controle total de objetos em um intervalo do Cloud Storage. Essa alteração remove milhares de permissões concedidas além do necessário.

Esse papel inclui várias permissões que a conta de serviço não usou nos últimos 90 dias. No entanto, usando machine learning, o recomendador do Cloud IAM prevê que a conta de serviço precisará dessas permissões no futuro.

O recomendador do Cloud IAM usa machine learning para identificar essas permissões extras. Neste exemplo, a permissão resourcemanager.projects.get foi recomendada com base em machine learning:

Permissões exigidas

Esta seção descreve as permissões do Cloud IAM de que você precisa para trabalhar com o recomendador do Cloud IAM.

Ver recomendações

Para visualizar as recomendações do recomendador do Cloud IAM, você precisa ter as seguintes permissões para o projeto que está visualizando:

  • iam.roles.get
  • iam.roles.list
  • recommender.iamPolicyRecommendations.get
  • recommender.iamPolicyRecommendations.list
  • resourcemanager.projects.getIamPolicy

Para obter essas permissões seguindo o princípio do menor privilégio, peça ao administrador para conceder a você os seguintes papéis predefinidos:

  • Papel de Leitor (roles/iam.roleViewer)
  • Visualizador do Recomendador do IAM (roles/recommender.iamViewer) ou Revisor de segurança do IAM (roles/iam.securityReviewer)

Como alternativa, o administrador pode conceder a você um papel diferente que inclua as permissões necessárias, como um papel personalizado ou um papel predefinido mais permissivo.

Aplicar e dispensar recomendações

Para aplicar e dispensar recomendações do recomendador do Cloud IAM, você precisa ter as seguintes permissões para o projeto que está gerenciando:

  • iam.roles.get
  • iam.roles.list
  • recommender.iamPolicyRecommendations.get
  • recommender.iamPolicyRecommendations.list
  • recommender.iamPolicyRecommendations.update
  • resourcemanager.projects.getIamPolicy
  • resourcemanager.projects.setIamPolicy

Para obter essas permissões seguindo o princípio do menor privilégio, peça ao administrador para conceder a você os seguintes papéis predefinidos:

  • Papel de Leitor (roles/iam.roleViewer)
  • Administrador do recomendador do IAM (roles/recommender.iamAdmin)
  • Administrador de IAM do projeto (roles/resourcemanager.projectIamAdmin)

Como alternativa, o administrador pode conceder a você um papel diferente que inclua as permissões necessárias, como um papel personalizado ou um papel predefinido mais permissivo.

A seguir