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

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

Como funciona o recomendador do IAM

O IAM usa o recomendador para comparar concessões de papel com as permissões que cada membro usou nos últimos 90 dias. Se você conceder um papel a um membro e o membro não usar todas as permissões desse papel, o recomendador do IAM provavelmente recomendará a revogação do papel. Se necessário, o recomendador do IAM também recomendará papéis menos permissivos como substitutos. Esse substituto recomendado pode ser um papel personalizado novo/existente ou um ou mais papéis predefinidos. Exceto no caso de recomendações para contas de serviço gerenciadas pelo Google, o recomendador do IAM nunca sugere uma alteração que aumenta o nível de acesso de um membro.

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

O recomendador do 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 IAM avalia somente as concessões de papel feitas no nível do projeto, da pasta ou da organização, que 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 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 IAM requer a permissão iam.roles.list. Quando você chama o método roles.list, você usa a permissão iam.roles.list.

    Da mesma forma, ao chamar o método testIamPermissions para um recurso, você usa efetivamente todas as permissões que está testando.

  • 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

Em alguns casos, é provável que um membro precise de determinadas permissões incluídas nos papéis atuais, mas que não tenha usado nos últimos 90 dias. Para identificar essas permissões, o recomendador do IAM usa um modelo de machine learning (ML).

O modelo de machine learning do recomendador do IAM é treinado com 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 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, isso é um forte sinal de que estas permissões precisam 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 terão 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 recomendador do IAM têm k-anonimato. Isso significa que os indivíduos do conjunto de dados anônimos não podem ser identificados novamente. Para atingir este 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 com 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.

Prioridade da recomendação

As recomendações recebem níveis de prioridade com base na urgência percebida. Os níveis de prioridade variam de P0 (prioridade mais alta) a P4 (prioridade mais baixa).

As recomendações do IAM podem ter níveis de prioridade P2 ou P4. As recomendações para vinculações de papéis com papéis básicos (proprietário, editor e visualizador) têm prioridade P2. Essas recomendações têm alta prioridade porque os papéis básicos são altamente permissivos, e a aplicação de recomendações para esses papéis pode reduzir muito as permissões concedidas em excesso. Todas as outras recomendações têm prioridade P4.

É possível ver os níveis de prioridade das recomendações listando as recomendações usando a ferramenta gcloud ou a API REST.

Subtipos de recomendação

As recomendações que o recomendador do IAM gera são divididas em vários subtipos diferentes. Se você estiver usando a ferramenta gcloud ou a API REST, use esses subtipos para filtrar as recomendações.

Subtipo Descrição
REMOVE_ROLE Uma recomendação para remover o papel do membro.
REPLACE_ROLE Uma recomendação para substituir o papel do membro por um papel menos permissivo.
SERVICE_AGENT_WITH_DEFAULT_ROLE Uma recomendação para substituir o papel de Proprietário, Editor ou Visualizador de uma conta de serviço gerenciada pelo Google pelo papel concedido automaticamente à conta de serviço quando ela foi criada. Para mais informações, consulte Recomendações para contas de serviço gerenciadas pelo Google.
SERVICE_AGENT_WITHOUT_DEFAULT_ROLE Uma recomendação para substituir o papel de Proprietário, Editor ou Visualizador de uma conta de serviço gerenciada pelo Google por um papel menos permissivo. Para mais informações, consulte Recomendações para contas de serviço gerenciadas pelo Google.

Recomendações para contas de serviço gerenciadas pelo Google

Para contas de serviço gerenciadas pelo Google, o recomendador do IAM fornece recomendações apenas para vinculações de papéis com papéis básicos (Proprietário, Editor ou Visualizador). Essas recomendações são divididas em dois subtipos de recomendação.

SERVICE_AGENT_WITH_DEFAULT_ROLE

Durante a criação, algumas contas de serviço gerenciadas pelo Google recebem automaticamente um papel de agente de serviço para garantir que os serviços do Google Cloud funcionem corretamente. Se você substituir esse papel por um papel básico, como Proprietário, Editor ou Visualizador, o recomendador do IAM poderá sugerir que você restaure o papel original do agente de serviço para remover permissões em excesso, mesmo que ele tenha permissões que não estão no papel básico. Essas recomendações têm o subtipo SERVICE_AGENT_WITH_DEFAULT_ROLE. Elas ajudam a remover com segurança as permissões em excesso e garantir que todos os serviços do Google Cloud funcionem corretamente.

As recomendações de SERVICE_AGENT_WITH_DEFAULT_ROLE são o único tipo de recomendação que pode sugerir papéis com permissões que não estejam no papel atual.

SERVICE_AGENT_WITHOUT_DEFAULT_ROLE

Se uma conta de serviço gerenciada pelo Google não receber automaticamente um papel durante a criação, as recomendações serão baseadas exclusivamente nas permissões usadas pela conta de serviço. Essas recomendações têm o subtipo SERVICE_AGENT_WITHOUT_DEFAULT_ROLE.

Insights

As recomendações são criadas com base em um ou mais insights do IAM. Os insights da política do IAM são informações baseadas em ML sobre o uso de permissões.

Ao contrário das recomendações, os insights de política do IAM podem ser gerados para vinculações de papéis que existem há menos de 90 dias.

Alguns insights fornecem evidências de recomendações. No entanto, é possível usar insights de modo independente das recomendações. Para saber como usar os insights, consulte Como usar insights.

Gravidade do insight

Os insights recebem níveis de gravidade com base na urgência percebida. Os níveis de gravidade podem ser LOW, MEDIUM, HIGH ou CRITICAL.

Os insights de política do IAM podem ter um nível de gravidade LOW ou HIGH. Os insights para vinculações de papel com papéis básicos (proprietário, editor e visualizador) têm um nível de gravidade HIGH. Esses insights têm uma alta gravidade porque os papéis básicos são altamente permissivos, e a análise de insights para esses papéis pode reduzir muito as permissões concedidas em excesso. Todos os outros insights têm um nível de gravidade LOW.

Audit logging

Quando você aplica ou descarta uma recomendação, o recomendador do IAM cria uma entrada de registro. É possível ver essas entradas no recomendador do 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 IAM. Por exemplo, o Cloud Storage fornece listas de controle de acesso (ACLs) e o Google Kubernetes Engine (GKE) oferece suporte ao controle de acesso baseado em papéis (RBAC) do Kubernetes.

O recomendador do IAM analisa apenas os controles de acesso do 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 IAM.

Como analisar as recomendações

Quando você clica em uma recomendação no Console do Cloud, ele exibe uma lista de permissões codificadas por cores e símbolos. Essa lista indica como as permissões do membro serão alteradas se você aplicar a recomendação.

Os tipos de permissão associados a cada cor e símbolo são os seguintes:

  • cinza sem símbolo: permissões que estão no papel atual do membro e nos papéis recomendados.

  • Vermelho com um sinal de menos : permissões que estão no papel atual do membro, mas não nos papéis recomendados porque o membro não os usou nos últimos 90 dias.

  • Verde com um sinal de adição : permissões que não estão no papel atual do membro, mas estão nos papéis recomendados. Esse tipo de permissão aparece somente em recomendações para contas de serviço gerenciadas pelo Google.

  • Azul com um ícone de Machine learning : permissões que estão no papel atual do membro e nos papéis recomendados, não porque o membro usou as permissões nos últimos 90 dias, mas porque o recomendador determinou por meio do machine learning que ele provavelmente precisará dessas permissões no futuro. Esta página mostra um exemplo de cenário em que você pode ver uma permissão sugerida pelo ML.

Recomendações para papéis personalizados

Ao sugerir substituições para um papel, o recomendador do IAM sempre sugere um papel personalizado atual ou um ou mais papéis predefinidos, que parecem ser mais adequados às necessidades do membro.

Para algumas recomendações no nível do projeto, também há a opção de criar um novo papel personalizado que inclua apenas as permissões recomendadas. É possível modificar a recomendação de papel personalizado adicionando ou removendo permissões.

Se você quiser aplicar o princípio do menor privilégio da maneira mais estrita possível, escolha o novo papel personalizado. O recomendador do IAM cria o papel personalizado no nível do projeto. Você é responsável por manter e atualizar os papéis personalizados dos seus projetos.

Se preferir usar um papel gerenciado pelo Google, escolha o papel predefinido. O Google Cloud atualiza esses papéis regularmente adicionando ou removendo permissões. Para receber notificações sobre essas atualizações, inscreva-se no feed de notícias do registro de alterações de permissões. Quando você escolhe o papel predefinido, o membro continua tendo pelo menos algumas permissões e possivelmente um grande número de permissões que não foram usadas.

O recomendador do IAM não recomenda novos papéis personalizados nos seguintes casos:

  • A recomendação é para um papel no nível da pasta ou da organização.
  • Sua organização já tem 100 ou mais papéis personalizados
  • Seu projeto já tem 25 ou mais papéis personalizados.

Além disso, o recomendador do IAM recomenda no máximo cinco novos papéis personalizados por dia em cada projeto e no máximo 15 novos papéis personalizados em toda a organização.

Exemplos de recomendações de papéis

Estes exemplos mostram os tipos de recomendações que talvez você receba:

Revogar um papel atual

O usuário my-user@example.com recebeu o papel Navegador em um projeto. O papel Navegador inclui seis permissões que autorizam o usuário a ver os recursos no projeto. No entanto, durante os últimos 90 dias, my-user@example.com não viu nenhum recurso.

Portanto, o recomendador do IAM sugere que você revogue o papel Navegador de my-user@example.com:

Substituir um papel atual

Uma conta de serviço recebeu o papel Editor (roles/editor) em um projeto. Esse papel básico inclui mais de 3.000 permissões e concede amplo acesso ao projeto. No entanto, durante os últimos 90 dias, a conta de serviço usou apenas algumas permissões.

Portanto, o recomendador do IAM sugere que você revogue o papel Editor e substitua-o por uma combinação de dois outros papéis, o que remove milhares de permissões excedentes:

Criar um papel personalizado

O usuário my-user@example.com recebeu o papel Administrador do Cloud Trace (roles/cloudtrace.admin) em um projeto. O papel inclui mais de 10 permissões, mas nos últimos 90 dias, my-user@example.com usou apenas 4 delas.

Portanto, o recomendador do IAM sugere que você crie um papel personalizado que inclua apenas as permissões que my-user@example.com realmente usou:

O recomendador do IAM também sugere outra opção, que é substituir o papel atual pelo de Usuário do Cloud Trace (roles/cloudtrace.user). Esse papel predefinido inclui menos permissões que o papel Administrador do Cloud Trace.

Substituição de papéis com permissões sugeridas por machine learning

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

O recomendador do IAM sugere que você revogue o papel Editor e o substitua pelo papel Administrador de objetos do Storage (roles/storage.objectAdmin), que concede controle total dos objetos em um bucket do Cloud Storage. Essa alteração remove milhares de permissões em excesso.

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

O recomendador do IAM usa um ícone de machine learning para identificar essas outras permissões. Neste exemplo, a permissão resourcemanager.projects.get foi recomendada com base no machine learning:

Disponibilidade de recomendações

No Console do Cloud, a página IAM mostra todos os membros do projeto e lista os papéis que cada membro tem no projeto. Ele também indica se uma recomendação está disponível para cada papel.

Quando as recomendações estão disponíveis, o Console do Cloud mostra um ícone de Recomendação disponível na coluna Permissões analisadas ao lado do uso de permissões do membro. Esse ícone indica que o membro tem permissões de que provavelmente não precisa. Clique no ícone para analisar e aplicar a recomendação.

É normal que alguns papéis não tenham recomendações. Nesses casos, a coluna Permissões analisadas mostra um ícone ou o uso de permissões do membro sem o ícone Recomendação disponível:

  • A coluna Permissões analisadas mostra um ícone nos seguintes casos:

    • Não há dados de uso suficientes sobre o membro. Se o recomendador do IAM não tiver informações suficientes sobre como o membro usa o Google Cloud, ele não poderá fazer recomendações para os papéis dele.

      Talvez você veja recomendações para o membro no futuro, depois que o recomendador do IAM coletar mais dados.

    • O membro é uma conta de serviço gerenciada pelo Google e o papel não é um papel básico. Para contas de serviço gerenciadas pelo Google, o recomendador do IAM fornece recomendações apenas para papéis básicos (Proprietário, Editor ou Visualizador). Ele não analisa outras vinculações de papéis para contas de serviço gerenciadas pelo Google.

    • A vinculação do papel é condicional. Se a vinculação do papel incluir uma condição, o papel será concedido somente se determinadas permissões estiverem presentes. O recomendador do IAM não faz recomendações para essas vinculações de papel.

    • A recomendação atual para a vinculação de papel foi dispensada, ou então aplicada e revertida. Se você dispensar uma recomendação para alterar o papel de um membro ou aplicar uma recomendação e depois revertê-la, o Console do Cloud não a exibirá novamente.

      No futuro, se o recomendador do IAM fizer uma nova recomendação para alterar o papel do membro, o Console do Cloud mostrará a nova recomendação, mesmo que você tenha dispensado ou revertido a recomendação anterior.

      Veja as recomendações dispensadas e revertidas no histórico de recomendações. As recomendações dispensadas ficam disponíveis até se tornarem obsoletas. As recomendações revertidas ficam disponíveis por 90 dias.

  • A coluna Permissões analisadas mostra o uso da permissão do membro sem o ícone Recomendação disponível nos seguintes casos:

    • Não há papéis do IAM predefinidos que sejam mais apropriados do que o papel atual. Se um membro já tiver um papel predefinido que minimiza as permissões dele ou inclua menos permissões do que outros papéis predefinidos, o recomendador do IAM não poderá recomendar um papel predefinido diferente.

      Você pode reduzir as permissões do membro criando um papel personalizado para ele.

    • Nenhum outro membro tem o papel básico de Proprietário do projeto. Pelo menos um membro precisa ter o papel Proprietário (roles/owner) em cada projeto. Se apenas um membro tiver esse papel, o recomendador do IAM não recomendará a revogação ou a substituição do papel.

A seguir