Visão geral do Policy Analyzer

O Policy Analyzer permite que você descubra quais principais (por exemplo, usuários, contas de serviço, grupos e domínios) têm qual acesso a quais recursos do Google Cloud com base nas políticas de permissão do IAM.

O Policy Analyzer pode ajudar você a responder perguntas como estas:

  • Quem pode acessar essa conta de serviço do IAM?
  • Quem pode ler dados nesse conjunto de dados do BigQuery que contêm informações de identificação pessoal (PII, na sigla em inglês)?
  • Quais papéis e permissões o grupo dev-testers tem em qualquer recurso nesse projeto?
  • Que instâncias de máquina virtual (VM) do Compute Engine podem ser excluídas pelo Projeto no projeto A?
  • Quem pode acessar este bucket do Cloud Storage às 19h?

Como o analisador de políticas funciona

Para usar o Policy Analyzer, crie uma consulta de análise, especifique um escopo para a análise e execute a consulta.

Consultas de análise

Para usar o Policy Analyzer, crie uma consulta de análise especificando um ou mais dos campos a seguir:

  • Participantes: as identidades (por exemplo, usuários, contas de serviço, grupos e domínios) cujo acesso você quer verificar
  • Acesso: as permissões e os papéis que você quer verificar.
  • Recursos: os recursos que você quer verificar o acesso.
  • (Somente API) Contexto da condição: o contexto (por exemplo, hora do dia) em que você quer verificar o acesso.

Normalmente, você especifica um ou dois desses campos na consulta de análise e, em seguida, usa os resultados da consulta para receber mais informações sobre os campos que não foram especificados. Por exemplo, para saber quem tem determinada permissão em um recurso, especifique o acesso e o recurso na consulta de análise, mas não especifique o principal.

Para ver mais exemplos dos tipos de consultas que podem ser criadas, consulte Tipos de consulta comuns.

Escopo da análise

Para executar uma consulta de análise, você precisa especificar um escopo para analisar. O escopo é uma organização, uma pasta ou um projeto ao qual você quer restringir a análise. Somente as políticas de permissão do IAM anexadas ao recurso usado como escopo e aos descendentes dele serão analisadas.

Na API REST e na CLI gcloud, você especifica o escopo manualmente. No Console do Cloud, o escopo é determinado automaticamente com base no projeto, pasta ou organização que você está gerenciando.

Depois de criar uma consulta de análise e especificar o escopo, é possível executar a consulta para analisar as políticas nesse escopo.

Resultados da consulta

Quando você executa uma consulta de análise, o Policy Analyzer relata todas as vinculações de papéis que contêm os principais, acesso e recursos especificados na consulta. Para cada vinculação de papel, são informados os participantes na vinculação, o acesso (papel e permissões) que a vinculação concede e o recurso a que a vinculação concede acesso.

Você pode analisar esses resultados para entender melhor o acesso no seu projeto, pasta ou organização. Por exemplo, se você executar uma consulta para descobrir quais principais têm acesso a um recurso específico, será necessário analisá-los nos resultados da consulta.

É possível ajustar as informações nos resultados da consulta ativando as opções de consulta.

Tipos de políticas compatíveis

O IAM Policy Analyzer é compatível apenas com políticas de permissão do IAM.

O Policy Analyzer não é compatível com as seguintes formas de controle de acesso:

Herança de políticas

Para considerar a herança de políticas, o Policy Analyzer analisa automaticamente todas as políticas de permissão relevantes no escopo especificado, independentemente de onde elas estejam na hierarquia de recursos.

Por exemplo, imagine que você está tentando descobrir quem pode acessar uma conta de serviço IAM:

  • Se você definir o escopo da consulta para um projeto, o Policy Analyzer analisará a política de permissão da conta de serviço e a política de permissão do projeto.
  • Se você definir o escopo da consulta para uma organização, o Policy Analyzer analisará a política de permissão da conta de serviço, a política de permissão do projeto que tem a conta de serviço, as políticas de permissão de qualquer pasta que contenha o projeto e a política de permissão da organização.

Acesso condicional

Se uma vinculação de papel tiver uma condição, ela só concederá um acesso principal quando essa condição for atendida. O Policy Analyzer sempre informa as condições anexadas a vinculações de papel relevantes. As vinculações de papel relevantes são aquelas que contêm os principais, acesso e recursos especificados na consulta de análise.

Em alguns casos, o Policy Analyzer também pode analisar a condição, o que significa que ela pode informar se a condição seria atendida. O Policy Analyzer pode analisar os seguintes tipos de condições:

Se uma vinculação de papel relevante contiver uma condição, o analisador de políticas fará uma das seguintes ações:

  • Se o Policy Analyzer puder analisar a condição, ele fará um dos seguintes procedimentos:

    • Se a condição for avaliada como verdadeira, o Policy Analyzer incluirá a vinculação de papel nos resultados da consulta e marcará a avaliação de condição como TRUE.
    • Se a condição for avaliada como falsa, o Policy Analyzer não incluirá o papel nos resultados da consulta.
  • Se o Policy Analyzer não conseguir analisar uma condição para uma vinculação de papel relevante, ele incluirá o papel nos resultados da consulta e marcará a avaliação de condição como CONDITIONAL.

Tipos de consulta comuns

Nesta seção, descrevemos como usar consultas de análise para responder a perguntas relacionadas ao acesso.

Quais principais podem acessar este recurso?

Para determinar quais principais podem acessar um recurso, crie uma consulta de análise que especifique o recurso e, opcionalmente, os papéis e permissões que você quer verificar.

Essas consultas podem ajudar você a responder perguntas como as seguintes:

  • Quem tem acesso a esta conta de serviço IAM?
  • Quem tem permissão para personificar esta conta de serviço do IAM?
  • Quem são os administradores do faturamento no projeto A?
  • (Somente CLI da API e gcloud): quem pode atualizar o projeto A falsificando a conta de serviço?

Para saber como criar e enviar essas consultas, consulte Determinar quais principais podem acessar um recurso.

Quais principais têm esses papéis e permissões?

Para determinar quais principais têm determinados papéis e permissões, crie uma consulta de análise que especifique um principal e um conjunto de papéis e permissões que você quer verificar.

Essas consultas podem ajudar você a responder perguntas como as seguintes:

  • Quem tem permissão para personificar contas de serviço na minha organização?
  • Quem são os administradores do faturamento na minha organização?
  • Quem pode ler dados nesse conjunto de dados do BigQuery que contêm informações de identificação pessoal (PII, na sigla em inglês)?
  • (Somente CLI do gcloud e da API): Quem na minha organização pode ler um conjunto de dados do BigQuery fingindo ser uma conta de serviço?

Para saber como criar e enviar essas consultas, consulte Determinar quais principais têm determinados papéis ou permissões.

Quais papéis e permissões o principal tem nesse recurso?

Para determinar quais papéis e permissões um principal tem em um recurso específico, crie uma consulta de análise que especifique um principal e um recurso em que você quer verificar as permissões.

Essas consultas podem ajudar você a responder perguntas como as seguintes:

  • Quais papéis e permissões o usuário Sasha tem nesse conjunto de dados do BigQuery?
  • Quais papéis e permissões o grupo dev-testers tem em qualquer recurso nesse projeto?
  • (Somente CLI do API e gcloud): quais papéis e permissões o usuário Dana terá nesse conjunto de dados do BigQuery se ele personificar uma conta de serviço?

Para saber como criar e enviar essas consultas, consulte Determinar qual acesso um participante tem em um recurso.

Quais recursos este principal pode acessar?

Para determinar quais recursos um principal específico pode acessar, crie uma consulta de análise que especifique um principal e os papéis e permissões que você quer verificar.

Essas consultas podem ajudar você a responder perguntas como as seguintes:

  • Quais conjuntos de dados do BigQuery o usuário Mahan tem permissão para ler?
  • De quais conjuntos de dados do BigQuery o grupo dev-testers é o proprietário?
  • Que VMs o Tal pode excluir no projeto A?
  • (Somente CLI de API e gcloud): quais VMs o usuário João pode excluir ao representar uma conta de serviço?

Para saber como criar e enviar essas consultas, consulte Determinar quais recursos um principal pode acessar.

Consultas de análise salvas

Se você estiver usando a API REST, poderá salvar consultas de análise para reutilizá-las ou compartilhá-las com outras pessoas. Execute uma consulta salva como você faria com qualquer outra consulta.

Para saber mais sobre como salvar consultas, consulte Gerenciar consultas salvas.

Exportar resultados da consulta

É possível executar consultas de maneira assíncrona e exportar os resultados da consulta para o BigQuery ou o Cloud Storage usando analyzeIamPolicyLongrunning.

Para saber como exportar os resultados da consulta para o BigQuery, consulte Gravar análise de políticas no BigQuery.

Para saber como exportar os resultados da consulta para o Cloud Storage, consulte Gravar análise de políticas no Cloud Storage.

Opções de consulta

O Policy Analyzer oferece várias opções que adicionam mais detalhes aos resultados da consulta.

Para saber como ativá-las, consulte Ativar opções.

Expansão de grupos

Se você ativar a expansão de grupo, todos os grupos nos resultados da consulta serão expandidos em membros individuais. Essa expansão é limitada a 1.000 membros por grupo. Se você tiver permissões de grupo suficientes, os grupos aninhados também serão expandidos. Essa opção só será eficaz se você não especificar um principal na consulta.

Por exemplo, imagine que você ative a expansão de grupo para a consulta "Quem tem a permissão storage.buckets.delete para project-1?" se o Policy Analyzer encontrar qualquer grupo que tenha a permissão storage.buckets.delete, os resultados da consulta listarão não apenas o identificador de grupo, mas também todos os membros individuais no grupo.

Essa opção permite entender o acesso de usuários individuais, mesmo que esse acesso seja resultado da associação deles a um grupo.

Expansão de papéis

Se você ativar a expansão de papéis, os resultados da consulta listarão todas as permissões dentro de cada papel, além do próprio papel. Esta opção estará disponível apenas se você não especificar permissões ou papéis na consulta.

Por exemplo, imagine que você ative a expansão de papel para a consulta "Que acesso o my-user@example.com tem no bucket bucket-1?" se o Policy Analyzer encontrar qualquer papel que forneça acesso de my-user@example.com a bucket-1, os resultados da consulta listarão não apenas o nome do papel, mas também todas as permissões incluídas no papel.

Esta opção permite ver exatamente quais permissões os participantes têm.

Expansão de recursos

Se você ativar a expansão de recursos para uma consulta do Policy Analyzer, os resultados da consulta listarão todos os recursos descendentes relevantes para qualquer recurso pai (projetos, pastas e organizações) nos resultados da consulta. Essa expansão é limitada a 1.000 recursos por recurso pai para consultas do Policy Analyzer e 100.000 recursos por recurso pai a consultas de longa duração do Policy Analyzer.

Por exemplo, pense em como a expansão de recursos afetaria as seguintes consultas:

  • Quem tem a permissão storage.buckets.delete para project-1?

    Se você ativar a expansão de recursos para essa consulta, a seção de recursos dos resultados da consulta listará não apenas o projeto, mas também todos os buckets de armazenamento dentro do projeto.

  • Em quais recursos o my-user@example.com tem a permissão compute.instances.setIamPolicy?

    Se você ativar a expansão de recursos para essa consulta e o Policy Analyzer descobrir que my-user@example.com tem um papel no nível do projeto que contém essa permissão, a seção de recursos dos resultados da consulta listará não apenas o projeto, mas também todas as instâncias do Compute Engine dentro do projeto.

Esta opção permite uma compreensão detalhada dos recursos que seus principais podem acessar.

Representação da conta de serviço:

Se você estiver usando a API REST ou a CLI gcloud, poderá ativar a análise de representação de conta de serviço.

Se essa opção estiver ativada, o analisador de políticas executará consultas de análise adicionais para determinar quem pode representar as contas de serviço com acesso especificado aos recursos especificados. O Policy Analyzer executa uma consulta para cada conta de serviço nos resultados da consulta. Essas consultas analisam quem tem as seguintes permissões na conta de serviço:

  • iam.serviceAccounts.actAs
  • iam.serviceAccounts.getAccessToken
  • iam.serviceAccounts.getOpenIdToken
  • iam.serviceAccounts.implicitDelegation
  • iam.serviceAccounts.signBlob
  • iam.serviceAccounts.signJwt

Cotas e limites

O Cloud Asset Inventory aplica a taxa de solicitações recebidas, incluindo solicitações de análise de política, com base no projeto do consumidor. O Cloud Asset Inventory também limita a expansão de grupo nas associações a grupos e a expansão de recursos na hierarquia de recursos.

Para ver as cotas e os limites padrão do analisador de políticas, consulte Cotas e limites na documentação do Cloud Asset Inventory.

A seguir