Nesta página, mostramos como usar a ferramenta para descobrir quais principais (usuários, contas de serviço, grupos e domínios) têm qual acesso a quais recursos do Google Cloud.
Os exemplos nesta página mostram como executar uma consulta de análise de política e visualizar imediatamente os resultados. Se quiser exportar os resultados para uma análise mais aprofundada, use AnalyzeIamPolicyLongrunning
para gravar os resultados da consulta no BigQuery ou no Cloud Storage.
Antes de começar
Ative a Cloud Asset API.
Ative a API no projeto ou na organização que usará para enviar a consulta. Não precisa ser o mesmo recurso que está no escopo da sua consulta.
Opcional: entenda como a ferramenta Análise de políticas políticas funciona.
Opcional: se você quiser executar mais de 20 consultas de análise de política por organização por dia, verifique se você tem uma ativação no nível da organização do nível premium do Security Command Center. Para mais informações, consulte Perguntas sobre faturamento.
Papéis e permissões necessárias
As seguintes funções e permissões são necessárias para analisar as políticas de permissão.
Papéis do IAM obrigatórios
Para receber as permissões necessárias para analisar uma política de permissão, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto, na pasta ou na organização que será responsável pela consulta:
-
Leitor de recursos do Cloud (
roles/cloudasset.viewer
) -
Para analisar políticas com papéis personalizados do IAM:
Leitor de papéis (
roles/iam.roleViewer
) -
Para usar a Google Cloud CLI para analisar políticas:
Consumidor do Service Usage (
roles/serviceusage.serviceUsageConsumer
)
Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.
Esses papéis predefinidos contêm as permissões necessárias para analisar uma política de permissão. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As seguintes permissões são necessárias para analisar uma política de permissão:
-
cloudasset.assets.analyzeIamPolicy
-
cloudasset.assets.searchAllResources
-
cloudasset.assets.searchAllIamPolicies
-
Para analisar políticas com papéis personalizados do IAM:
iam.roles.get
-
Para usar a Google Cloud CLI para analisar políticas:
serviceusage.services.use
Também é possível receber essas permissões com papéis personalizados ou outros papéis predefinidos.
Permissões necessárias do Google Workspace
Se você quiser expandir grupos nos resultados da consulta e ver se um principal
tem determinados papéis ou permissões como resultado da associação a um
grupo do Google Workspace, será necessária a permissão groups.read
do Google Workspace.
Essa permissão está contida no papel "Administrador de grupos" e em papéis
mais avançados, como "Administrador de grupos" ou "Superadministrador". Para saber como
conceder essas funções, consulte Atribuir funções de administrador específicas.
Determinar quais principais podem acessar um recurso
Use a ferramenta Análise de políticas para verificar quais principais têm determinados papéis ou permissões em um recurso específico no projeto, na pasta ou na organização. Para conseguir essas informações, crie uma consulta com o recurso em que você quer analisar o acesso e um ou mais papéis ou permissões para verificar.
Console
No console do Google Cloud, acesse a página Policy Analyzer.
Na seção Analisar políticas, encontre o painel Consulta personalizada e clique em Criar consulta personalizada.
No campo Selecionar escopo da consulta, selecione o projeto, a pasta ou a organização em que você quer definir o escopo da consulta. a ferramenta Análise de políticas vai analisar o acesso referente ao projeto, à pasta ou à organização, bem como quaisquer recursos que estiverem dentro.
Escolha o recurso e o papel ou a permissão a serem verificados:
- No campo Parâmetro 1, selecione Recurso no menu suspenso.
- No campo Recurso, insira o nome completo do recurso em que você quer analisar o acesso. Se você não souber o nome completo do recurso, comece a digitar o nome de exibição do recurso e, em seguida, selecione-o na lista de recursos fornecida.
- Clique em Adicionar seletor.
- No campo Parâmetro 2, selecione Papel ou Permissão.
- No campo Selecionar papel ou Selecionar permissão, selecione o papel ou a permissão que você quer verificar.
- Opcional: para verificar outros papéis e permissões, continue adicionando os seletores Papel e Permissão até que todos os papéis e as permissões que você quer verificar estejam listados.
Opcional: clique em Continuar e selecione as opções avançadas que você quer ativar para essa consulta.
No painel Consulta personalizada, clique em Analisar > Executar consulta. A página do relatório mostra os parâmetros de consulta inseridos e uma tabela de resultados de todos os principais com os papéis ou permissões especificados no recurso especificado.
As consultas de análise de política no console do Google Cloud são executadas por até um minuto. Depois de um minuto, o console do Google Cloud interrompe a consulta e exibe todos os resultados disponíveis. Se a consulta não for concluída nesse período, o console do Google Cloud exibirá um banner indicando que os resultados estão incompletos. Para conseguir mais resultados sobre essas consultas, exporte-os para o BigQuery.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
RESOURCE_TYPE
: o tipo de recurso para o qual você quer restringir sua pesquisa. Somente as políticas de permissão do IAM anexadas a este recurso e aos descendentes dele serão analisadas. Use o valorproject
,folder
ouorganization
.RESOURCE_ID
: o ID do projeto, da pasta ou da organização do Google Cloud para a qual você quer definir o escopo da sua pesquisa. Somente as políticas de permissão do IAM anexadas a este recurso e aos descendentes dele serão analisadas. Os IDs do projeto são strings alfanuméricas, comomy-project
. Os códigos de pastas e organizações são numéricos, como123456789012
.FULL_RESOURCE_NAME
: o nome completo do recurso com o acesso que você quer analisar. Para ver uma lista de formatos de nome completo do recurso, consulte Formato de nome de recurso.PERMISSIONS
: uma lista separada por vírgulas das permissões que você quer verificar, por exemplo,compute.instances.get,compute.instances.start
. Se você listar várias permissões, a Análise de políticas vai procurar qualquer uma delas.
Execute o comando gcloud asset analyze-iam-policy:
Linux, macOS ou Cloud Shell
gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID \ --full-resource-name=FULL_RESOURCE_NAME \ --permissions='PERMISSIONS'
Windows (PowerShell)
gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID ` --full-resource-name=FULL_RESOURCE_NAME ` --permissions='PERMISSIONS'
Windows (cmd.exe)
gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID ^ --full-resource-name=FULL_RESOURCE_NAME ^ --permissions='PERMISSIONS'
Você recebe uma resposta YAML com os resultados da análise. Cada resultado da análise lista um conjunto de acessos, identidades e recursos relevantes para a consulta, seguidos pela vinculação de papéis do IAM relacionada. Se a vinculação de papel for condicional, o resultado da análise também incluirá o resultado da avaliação da condição. Se não for possível avaliar a condição, o
resultado será CONDITIONAL
.
Os principais que têm qualquer uma das permissões especificadas no recurso especificado são listados nos
campos identities
na resposta. O exemplo a seguir mostra um único resultado da análise com o campo identities
destacado.
... --- ACLs: - accesses: - permission: compute.instances.get - permission: compute.instances.start identities: - name: user:my-user@example.com resources: - fullResourceName: //cloudresourcemanager.googleapis.com/projects/my-project policy: attachedResource: //cloudresourcemanager.googleapis.com/projects/my-project binding: members: - user: my-user@example.com role: roles/compute.admin --- ...
Se a solicitação expirar antes de a consulta terminar, você receberá um erro DEADLINE_EXCEEDED
. Para conseguir mais resultados para essas consultas, grave-os no BigQuery ou no Cloud Storage usando a versão de longa duração do analyze-iam-policy
. Para instruções, consulte
Gravar análise de política no
BigQuery ou
Gravar análise de política no
Cloud Storage.
REST
Para determinar quais principais têm determinadas permissões em um
recurso, use o método
analyzeIamPolicy
da API Cloud Asset Inventory.
Antes de usar os dados da solicitação, faça as substituições a seguir:
RESOURCE_TYPE
: o tipo de recurso para o qual você quer restringir sua pesquisa. Somente as políticas de permissão do IAM anexadas a este recurso e aos descendentes dele serão analisadas. Use o valorprojects
,folders
ouorganizations
.RESOURCE_ID
: o ID do projeto, da pasta ou da organização do Google Cloud para a qual você quer definir o escopo da sua pesquisa. Somente as políticas de permissão do IAM anexadas a este recurso e aos descendentes dele serão analisadas. Os IDs do projeto são strings alfanuméricas, comomy-project
. Os códigos de pastas e organizações são numéricos, como123456789012
.FULL_RESOURCE_NAME
: o nome completo do recurso com o acesso que você quer analisar. Para ver uma lista de formatos de nome completo do recurso, consulte Formato de nome de recurso.PERMISSION_1
,PERMISSION_2
...PERMISSION_N
: as permissões que você quer verificar, por exemplo,compute.instances.get
. Se você listar várias permissões, a Análise de políticas vai procurar qualquer uma delas.
Método HTTP e URL:
POST https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID:analyzeIamPolicy
Corpo JSON da solicitação:
{ "analysisQuery": { "resourceSelector": { "fullResourceName": "FULL_RESOURCE_NAME" }, "accessSelector": { "permissions": [ "PERMISSION_1", "PERMISSION_2", "PERMISSION_N" ] } } }
Para enviar a solicitação, expanda uma destas opções:
Você recebe uma resposta JSON com os resultados da análise. Cada resultado da análise descreve uma vinculação de papel do IAM relevante e lista os recursos, acessos e principais nessa vinculação. Se a vinculação de papel for condicional, o resultado da análise também incluirá o resultado da avaliação da condição. Se não for possível avaliar a condição, o resultado será listado como
CONDITIONAL
.
Os principais que têm qualquer uma das permissões especificadas no recurso especificado são listados nos
campos identities
na resposta. O exemplo a seguir mostra um único resultado da análise com o campo identities
destacado.
... { "attachedResourceFullName": "//cloudresourcemanager.googleapis.com/projects/my-project", "iamBinding": { "role": "roles/compute.admin", "members": [ "user:my-user@example.com" ] }, "accessControlLists": [ { "resources": [ { "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project" } ], "accesses": [ { "permission": "compute.instances.get" }, { "permission": "compute.instances.start" } ] } ], "identityList": { "identities": [ { "name": "user:my-user@example.com" } ] }, "fullyExplored": true }, ...
Se a solicitação expirar antes de a consulta terminar, você receberá um erro DEADLINE_EXCEEDED
. Para conseguir mais resultados para essas consultas, grave-os no BigQuery ou no Cloud Storage usando a versão de longa duração do analyzeIamPolicy
. Para instruções, consulte
Gravar análise de política no
BigQuery ou
Gravar análise de política no
Cloud Storage.
Determinar quais principais têm determinados papéis ou permissões
É possível usar a ferramenta Análise de políticas para verificar quais principais têm papéis ou permissões específicas em qualquer recurso do Google Cloud na organização. Para conseguir essas informações, crie uma consulta que inclua um ou mais papéis ou permissões que você quer verificar, mas não especifique um recurso.
Console
No console do Google Cloud, acesse a página Policy Analyzer.
Na seção Analisar políticas, encontre o painel Consulta personalizada e clique em Criar consulta personalizada.
No campo Selecionar escopo da consulta, selecione o projeto, a pasta ou a organização em que você quer definir o escopo da consulta. a ferramenta Análise de políticas vai analisar o acesso referente ao projeto, à pasta ou à organização, bem como quaisquer recursos que estiverem dentro.
No campo Parâmetro 1, selecione Papel ou Permissão.
No campo Selecionar papel ou Selecionar permissão, selecione o papel ou a permissão que você quer verificar.
Opcional: para verificar papéis e permissões adicionais, faça o seguinte:
- Clique em Adicionar seletor.
- No campo Parâmetro 2, selecione Papel ou Permissão.
- No campo Selecionar papel ou Selecionar permissão, selecione o papel ou a permissão que você quer verificar.
- Continue adicionando os seletores Papel e Permissão até que todos os papéis e as permissões que você quer verificar estejam listados.
Opcional: clique em Continuar e selecione as opções avançadas que você quer ativar para essa consulta.
No painel Consulta personalizada, clique em Analisar > Executar consulta. A página do relatório mostra os parâmetros de consulta inseridos e uma tabela de resultados de todos os principais com os papéis ou permissões especificados em qualquer recurso no escopo.
As consultas de análise de política no console do Google Cloud são executadas por até um minuto. Depois de um minuto, o console do Google Cloud interrompe a consulta e exibe todos os resultados disponíveis. Se a consulta não for concluída nesse período, o console do Google Cloud exibirá um banner indicando que os resultados estão incompletos. Para conseguir mais resultados sobre essas consultas, exporte-os para o BigQuery.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
RESOURCE_TYPE
: o tipo de recurso para o qual você quer restringir sua pesquisa. Somente as políticas de permissão do IAM anexadas a este recurso e aos descendentes dele serão analisadas. Use o valorproject
,folder
ouorganization
.RESOURCE_ID
: o ID do projeto, da pasta ou da organização do Google Cloud para a qual você quer definir o escopo da sua pesquisa. Somente as políticas de permissão do IAM anexadas a este recurso e aos descendentes dele serão analisadas. Os IDs do projeto são strings alfanuméricas, comomy-project
. Os códigos de pastas e organizações são numéricos, como123456789012
.ROLES
: uma lista separada por vírgulas dos papéis que você quer verificar, por exemplo,roles/compute.admin,roles/compute.imageUser
. Se você listar vários papéis, o analisador de políticas verificará qualquer um deles.PERMISSIONS
: uma lista separada por vírgulas das permissões que você quer verificar, por exemplo,compute.instances.get,compute.instances.start
. Se você listar várias permissões, a Análise de políticas vai procurar qualquer uma delas.
Execute o comando gcloud asset analyze-iam-policy:
Linux, macOS ou Cloud Shell
gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID \ --roles='ROLES' \ --permissions='PERMISSIONS'
Windows (PowerShell)
gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID ` --roles='ROLES' ` --permissions='PERMISSIONS'
Windows (cmd.exe)
gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID ^ --roles='ROLES' ^ --permissions='PERMISSIONS'
Você recebe uma resposta JSON com os resultados da análise. Cada resultado da análise descreve uma vinculação de papel do IAM relevante e lista os recursos, acessos e principais nessa vinculação. Se a vinculação de papel for condicional, o resultado da análise também incluirá o resultado da avaliação da condição. Se não for possível avaliar a condição, o resultado será listado como
CONDITIONAL
.
Os principais que têm qualquer um dos papéis ou permissões especificados são listados nos
campos identities
na resposta. O exemplo a seguir mostra um único resultado da análise com o campo identities
destacado.
... --- ACLs: - accesses: - permission: compute.instances.get - permission: compute.instances.start - role: roles/compute.admin identities: - name: user:my-user@example.com resources: - fullResourceName: //cloudresourcemanager.googleapis.com/projects/my-project policy: attachedResource: //cloudresourcemanager.googleapis.com/projects/my-project binding: members: - user: my-user@example.com role: roles/compute.admin --- ...
Se a solicitação expirar antes de a consulta terminar, você receberá um erro DEADLINE_EXCEEDED
. Para conseguir mais resultados para essas consultas, grave-os no BigQuery ou no Cloud Storage usando a versão de longa duração do analyze-iam-policy
. Para instruções, consulte
Gravar análise de política no
BigQuery ou
Gravar análise de política no
Cloud Storage.
REST
Para determinar quais principais têm determinados papéis ou permissões, use o método
analyzeIamPolicy
da API Cloud Asset Inventory.
Antes de usar os dados da solicitação, faça as substituições a seguir:
RESOURCE_TYPE
: o tipo de recurso para o qual você quer restringir sua pesquisa. Somente as políticas de permissão do IAM anexadas a este recurso e aos descendentes dele serão analisadas. Use o valorprojects
,folders
ouorganizations
.RESOURCE_ID
: o ID do projeto, da pasta ou da organização do Google Cloud para a qual você quer definir o escopo da sua pesquisa. Somente as políticas de permissão do IAM anexadas a este recurso e aos descendentes dele serão analisadas. Os IDs do projeto são strings alfanuméricas, comomy-project
. Os códigos de pastas e organizações são numéricos, como123456789012
.ROLE_1
,ROLE_2
...ROLE_N
: os papéis que você quer verificar, por exemplo,roles/compute.admin
. Se você listar vários papéis, a Análise de políticas vai verificar se há algum deles.PERMISSION_1
,PERMISSION_2
...PERMISSION_N
: as permissões que você quer verificar, por exemplo,compute.instances.get
. Se você listar várias permissões, a Análise de políticas vai procurar qualquer uma delas.
Método HTTP e URL:
POST https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID:analyzeIamPolicy
Corpo JSON da solicitação:
{ "analysisQuery": { "accessSelector": { "roles": [ "ROLE_1", "ROLE_2", "ROLE_N" ], "permissions": [ "PERMISSION_1", "PERMISSION_2", "PERMISSION_N" ] } } }
Para enviar a solicitação, expanda uma destas opções:
Você recebe uma resposta JSON com os resultados da análise. Cada resultado da análise descreve uma vinculação de papel do IAM relevante e lista os recursos, acessos e principais nessa vinculação. Se a vinculação de papel for condicional, o resultado da análise também incluirá o resultado da avaliação da condição. Se não for possível avaliar a condição, o resultado será listado como
CONDITIONAL
.
Os principais que têm qualquer um dos papéis ou permissões especificados são listados nos
campos identities
na resposta. O exemplo a seguir mostra um único resultado da análise com o campo identities
destacado.
... { "attachedResourceFullName": "//cloudresourcemanager.googleapis.com/projects/my-project", "iamBinding": { "role": "roles/compute.admin", "members": [ "user:my-user@example.com" ] }, "accessControlLists": [ { "resources": [ { "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project" } ], "accesses": [ { "permission": "compute.instances.get" }, { "role": "roles/compute.admin" } ] } ], "identityList": { "identities": [ { "name": "user:my-user@example.com" } ] }, "fullyExplored": true }, ...
Se a solicitação expirar antes de a consulta terminar, você receberá um erro DEADLINE_EXCEEDED
. Para conseguir mais resultados para essas consultas, grave-os no BigQuery ou no Cloud Storage usando a versão de longa duração do analyzeIamPolicy
. Para instruções, consulte
Gravar análise de política no
BigQuery ou
Gravar análise de política no
Cloud Storage.
Determinar qual acesso um principal tem a um recurso
Use a ferramenta Análise de políticas para verificar quais papéis ou permissões um principal tem em um recurso na sua organização. Para conseguir essas informações, crie uma consulta que inclua o principal em que você quer analisar o acesso e o recurso para o qual você quer verificar as permissões.
Console
No console do Google Cloud, acesse a página Policy Analyzer.
Na seção Analisar políticas, encontre o painel Consulta personalizada e clique em Criar consulta personalizada.
No campo Selecionar escopo da consulta, selecione o projeto, a pasta ou a organização em que você quer definir o escopo da consulta. a ferramenta Análise de políticas vai analisar o acesso referente ao projeto, à pasta ou à organização, bem como quaisquer recursos que estiverem dentro.
Escolha o recurso e o principal para verificar:
- No campo Parâmetro 1, selecione Recurso no menu suspenso.
- No campo Recurso, insira o nome completo do recurso em que você quer analisar o acesso. Se você não souber o nome completo do recurso, comece a digitar o nome de exibição do recurso e, em seguida, selecione-o na lista de recursos fornecida.
- Clique em Adicionar seletor.
- No campo Parâmetro 2, selecione Principal no menu suspenso.
- No campo Principal, comece a digitar o nome de um usuário, conta de serviço ou grupo. Em seguida, selecione o usuário, a conta de serviço ou o grupo com o acesso que você quer analisar na lista de principais fornecida.
Opcional: clique em Continuar e selecione as opções avançadas que você quer ativar para essa consulta.
No painel Consulta personalizada, clique em Analisar > Executar consulta. A página do relatório mostra os parâmetros de consulta inseridos e uma tabela de resultados de todos os papéis que o principal especificado tem no recurso especificado.
As consultas de análise de política no console do Google Cloud são executadas por até um minuto. Depois de um minuto, o console do Google Cloud interrompe a consulta e exibe todos os resultados disponíveis. Se a consulta não for concluída nesse período, o console do Google Cloud exibirá um banner indicando que os resultados estão incompletos. Para conseguir mais resultados sobre essas consultas, exporte-os para o BigQuery.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
RESOURCE_TYPE
: o tipo de recurso para o qual você quer restringir sua pesquisa. Somente as políticas de permissão do IAM anexadas a este recurso e aos descendentes dele serão analisadas. Use o valorproject
,folder
ouorganization
.RESOURCE_ID
: o ID do projeto, da pasta ou da organização do Google Cloud para a qual você quer definir o escopo da sua pesquisa. Somente as políticas de permissão do IAM anexadas a este recurso e aos descendentes dele serão analisadas. Os IDs do projeto são strings alfanuméricas, comomy-project
. Os códigos de pastas e organizações são numéricos, como123456789012
.FULL_RESOURCE_NAME
: o nome completo do recurso com o acesso que você quer analisar. Para ver uma lista de formatos de nome completo do recurso, consulte Formato de nome de recurso.PRINCIPAL
: o principal com o acesso que você quer analisar, no formatoPRINCIPAL_TYPE:ID
. Por exemplo,user:my-user@example.com
. Para uma lista completa dos tipos principais, consulte Identificadores principais.
Execute o comando gcloud asset analyze-iam-policy:
Linux, macOS ou Cloud Shell
gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID \ --full-resource-name=FULL_RESOURCE_NAME \ --identity=PRINCIPAL
Windows (PowerShell)
gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID ` --full-resource-name=FULL_RESOURCE_NAME ` --identity=PRINCIPAL
Windows (cmd.exe)
gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID ^ --full-resource-name=FULL_RESOURCE_NAME ^ --identity=PRINCIPAL
Você recebe uma resposta YAML com os resultados da análise. Cada resultado da análise lista um conjunto de acessos, identidades e recursos relevantes para a consulta, seguidos pela vinculação de papéis do IAM relacionada. Se a vinculação de papel for condicional, o resultado da análise também incluirá o resultado da avaliação da condição. Se não for possível avaliar a condição, o
resultado será CONDITIONAL
.
Os papéis que a principal tem no recurso especificado são listados nos campos accesses
da resposta. O exemplo a seguir mostra um único resultado da análise com o campo accesses
destacado.
... --- ACLs: - accesses: - roles/iam.serviceAccountUser identities: - name: user:my-user@example.com resources: - fullResourceName: //cloudresourcemanager.googleapis.com/projects/my-project policy: attachedResource: //cloudresourcemanager.googleapis.com/projects/my-project binding: members: - user: my-user@example.com role: roles/iam.serviceAccountUser --- ...
Se a solicitação expirar antes de a consulta terminar, você receberá um erro DEADLINE_EXCEEDED
. Para conseguir mais resultados para essas consultas, grave-os no BigQuery ou no Cloud Storage usando a versão de longa duração do analyze-iam-policy
. Para instruções, consulte
Gravar análise de política no
BigQuery ou
Gravar análise de política no
Cloud Storage.
REST
Para determinar qual acesso um principal tem a um recurso, use o método analyzeIamPolicy
da API Cloud Asset Inventory.
Antes de usar os dados da solicitação, faça as substituições a seguir:
RESOURCE_TYPE
: o tipo de recurso para o qual você quer restringir sua pesquisa. Somente as políticas de permissão do IAM anexadas a este recurso e aos descendentes dele serão analisadas. Use o valorprojects
,folders
ouorganizations
.RESOURCE_ID
: o ID do projeto, da pasta ou da organização do Google Cloud para a qual você quer definir o escopo da sua pesquisa. Somente as políticas de permissão do IAM anexadas a este recurso e aos descendentes dele serão analisadas. Os IDs do projeto são strings alfanuméricas, comomy-project
. Os códigos de pastas e organizações são numéricos, como123456789012
.FULL_RESOURCE_NAME
: o nome completo do recurso com o acesso que você quer analisar. Para ver uma lista de formatos de nome completo do recurso, consulte Formato de nome de recurso.PRINCIPAL
: o principal com o acesso que você quer analisar, no formatoPRINCIPAL_TYPE:ID
. Por exemplo,user:my-user@example.com
. Para uma lista completa dos tipos principais, consulte Identificadores principais.
Método HTTP e URL:
POST https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID:analyzeIamPolicy
Corpo JSON da solicitação:
{ "analysisQuery": { "resourceSelector": { "fullResourceName": "FULL_RESOURCE_NAME" }, "identitySelector": { "identity": "PRINCIPAL" } } }
Para enviar a solicitação, expanda uma destas opções:
Você recebe uma resposta JSON com os resultados da análise. Cada resultado da análise descreve uma vinculação de papel do IAM relevante e lista os recursos, acessos e principais nessa vinculação. Se a vinculação de papel for condicional, o resultado da análise também incluirá o resultado da avaliação da condição. Se não for possível avaliar a condição, o resultado será listado como
CONDITIONAL
.
Os papéis que a principal tem no recurso especificado são listados nos campos accesses
da resposta. O exemplo a seguir mostra um único resultado da análise com o campo accesses
destacado.
... { "attachedResourceFullName": "//cloudresourcemanager.googleapis.com/projects/my-project", "iamBinding": { "role": "roles/iam.serviceAccountUser", "members": [ "user:my-user@example.com" ] }, "accessControlLists": [ { "resources": [ { "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project" } ], "accesses": [ { "roles": "iam.serviceAccountUser" } ] } ], "identityList": { "identities": [ { "name": "user:my-user@example.com" } ] }, "fullyExplored": true }, ...
Se a solicitação expirar antes de a consulta terminar, você receberá um erro DEADLINE_EXCEEDED
. Para conseguir mais resultados para essas consultas, grave-os no BigQuery ou no Cloud Storage usando a versão de longa duração do analyzeIamPolicy
. Para instruções, consulte
Gravar análise de política no
BigQuery ou
Gravar análise de política no
Cloud Storage.
Determinar quais recursos um principal pode acessar
Use a ferramenta Análise de políticas para verificar em quais recursos da organização um papel principal tem determinados papéis ou permissões. Para conseguir essas informações, crie uma consulta que inclua o principal com o acesso você quer analisar e um ou mais papéis ou permissões para verificar.
Console
No console do Google Cloud, acesse a página Policy Analyzer.
Na seção Analisar políticas, encontre o painel Consulta personalizada e clique em Criar consulta personalizada.
No campo Selecionar escopo da consulta, selecione o projeto, a pasta ou a organização em que você quer definir o escopo da consulta. a ferramenta Análise de políticas vai analisar o acesso referente ao projeto, à pasta ou à organização, bem como quaisquer recursos que estiverem dentro.
Escolha o principal a ser verificado e o papel ou a permissão a ser verificada:
- No campo Parâmetro 1, selecione Principal no menu suspenso.
- No campo Principal, comece a digitar o nome de um usuário, conta de serviço ou grupo. Em seguida, selecione o usuário, a conta de serviço ou o grupo com o acesso que você quer analisar na lista de principais fornecida.
- Clique em Adicionar seletor.
- No campo Parâmetro 2, selecione Papel ou Permissão.
- No campo Selecionar papel ou Selecionar permissão, selecione o papel ou a permissão que você quer verificar.
- Opcional: para verificar outros papéis e permissões, continue adicionando os seletores Papel e Permissão até que todos os papéis e as permissões que você quer verificar estejam listados.
Opcional: clique em Continuar e selecione as opções avançadas que você quer ativar para essa consulta.
No painel Consulta personalizada, clique em Analisar > Executar consulta. A página do relatório mostra os parâmetros de consulta inseridos e uma tabela de resultados de todos os recursos em que o principal especificado tem os papéis ou as permissões especificados.
As consultas de análise de política no console do Google Cloud são executadas por até um minuto. Depois de um minuto, o console do Google Cloud interrompe a consulta e exibe todos os resultados disponíveis. Se a consulta não for concluída nesse período, o console do Google Cloud exibirá um banner indicando que os resultados estão incompletos. Para conseguir mais resultados sobre essas consultas, exporte-os para o BigQuery.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
RESOURCE_TYPE
: o tipo de recurso para o qual você quer restringir sua pesquisa. Somente as políticas de permissão do IAM anexadas a este recurso e aos descendentes dele serão analisadas. Use o valorproject
,folder
ouorganization
.RESOURCE_ID
: o ID do projeto, da pasta ou da organização do Google Cloud para a qual você quer definir o escopo da sua pesquisa. Somente as políticas de permissão do IAM anexadas a este recurso e aos descendentes dele serão analisadas. Os IDs do projeto são strings alfanuméricas, comomy-project
. Os códigos de pastas e organizações são numéricos, como123456789012
.PRINCIPAL
: o principal com o acesso que você quer analisar, no formatoPRINCIPAL_TYPE:ID
. Por exemplo,user:my-user@example.com
. Para uma lista completa dos tipos principais, consulte Identificadores principais.PERMISSIONS
: uma lista separada por vírgulas das permissões que você quer verificar, por exemplo,compute.instances.get,compute.instances.start
. Se você listar várias permissões, a Análise de políticas vai procurar qualquer uma delas.
Execute o comando gcloud asset analyze-iam-policy:
Linux, macOS ou Cloud Shell
gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID \ --identity=PRINCIPAL \ --permissions='PERMISSIONS'
Windows (PowerShell)
gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID ` --identity=PRINCIPAL ` --permissions='PERMISSIONS'
Windows (cmd.exe)
gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID ^ --identity=PRINCIPAL ^ --permissions='PERMISSIONS'
Você recebe uma resposta YAML com os resultados da análise. Cada resultado da análise lista um conjunto de acessos, identidades e recursos relevantes para a consulta, seguidos pela vinculação de papéis do IAM relacionada. Se a vinculação de papel for condicional, o resultado da análise também incluirá o resultado da avaliação da condição. Se não for possível avaliar a condição, o
resultado será CONDITIONAL
.
Os recursos em que o principal especificado tem qualquer uma das permissões especificadas são listados nos
campos resources
da resposta. O exemplo a seguir mostra um único resultado da análise com o campo resources
destacado.
... --- ACLs: - accesses: - permission: compute.instances.get - permission: compute.instances.start identities: - name: user:my-user@example.com resources: - fullResourceName: //compute.googleapis.com/projects/my-project/global/images/my-image policy: attachedResource: //compute.googleapis.com/projects/my-project/global/images/my-image binding: members: - user: my-user@example.com role: roles/compute.admin --- ...
Se a solicitação expirar antes de a consulta terminar, você receberá um erro DEADLINE_EXCEEDED
. Para conseguir mais resultados para essas consultas, grave-os no BigQuery ou no Cloud Storage usando a versão de longa duração do analyze-iam-policy
. Para instruções, consulte
Gravar análise de política no
BigQuery ou
Gravar análise de política no
Cloud Storage.
REST
Para determinar quais recursos um principal pode acessar, use o método analyzeIamPolicy
da API Cloud Asset Inventory.
Antes de usar os dados da solicitação, faça as substituições a seguir:
RESOURCE_TYPE
: o tipo de recurso para o qual você quer restringir sua pesquisa. Somente as políticas de permissão do IAM anexadas a este recurso e aos descendentes dele serão analisadas. Use o valorprojects
,folders
ouorganizations
.RESOURCE_ID
: o ID do projeto, da pasta ou da organização do Google Cloud para a qual você quer definir o escopo da sua pesquisa. Somente as políticas de permissão do IAM anexadas a este recurso e aos descendentes dele serão analisadas. Os IDs do projeto são strings alfanuméricas, comomy-project
. Os códigos de pastas e organizações são numéricos, como123456789012
.PRINCIPAL
: o principal com o acesso que você quer analisar, no formatoPRINCIPAL_TYPE:ID
. Por exemplo,user:my-user@example.com
. Para uma lista completa dos tipos principais, consulte Identificadores principais.PERMISSION_1
,PERMISSION_2
...PERMISSION_N
: as permissões que você quer verificar, por exemplo,compute.instances.get
. Se você listar várias permissões, a Análise de políticas vai procurar qualquer uma delas.
Método HTTP e URL:
POST https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID:analyzeIamPolicy
Corpo JSON da solicitação:
{ "analysisQuery": { "identitySelector": { "identity": "PRINCIPAL" }, "accessSelector": { "permissions": [ "PERMISSION_1", "PERMISSION_2", "PERMISSION_N" ] } } }
Para enviar a solicitação, expanda uma destas opções:
Você recebe uma resposta JSON com os resultados da análise. Cada resultado da análise descreve uma vinculação de papel do IAM relevante e lista os recursos, acessos e principais nessa vinculação. Se a vinculação de papel for condicional, o resultado da análise também incluirá o resultado da avaliação da condição. Se não for possível avaliar a condição, o resultado será listado como
CONDITIONAL
.
Os recursos em que o principal especificado tem qualquer uma das permissões especificadas são listados nos
campos resources
da resposta. O exemplo a seguir mostra um único resultado da análise com o campo resources
destacado.
... { "attachedResourceFullName": "//compute.googleapis.com/projects/my-project/global/images/my-image", "iamBinding": { "role": "roles/compute.admin", "members": [ "user:my-user@example.com" ] }, "accessControlLists": [ { "resources": [ { "fullResourceName": "//compute.googleapis.com/projects/my-project/global/images/my-image" } ], "accesses": [ { "permission": "compute.instances.get" }, { "permission": "compute.instances.start" } ] } ], "identityList": { "identities": [ { "name": "user:my-user@example.com" } ] }, "fullyExplored": true }, ...
Se a solicitação expirar antes de a consulta terminar, você receberá um erro DEADLINE_EXCEEDED
. Para conseguir mais resultados para essas consultas, grave-os no BigQuery ou no Cloud Storage usando a versão de longa duração do analyzeIamPolicy
. Para instruções, consulte
Gravar análise de política no
BigQuery ou
Gravar análise de política no
Cloud Storage.
Determinar o acesso em um horário específico
Se houver contexto suficiente, a Análise de políticas poderá analisar vinculações de papéis condicionais do IAM que só concedem acesso em momentos específicos. Essas condições são chamadas de condições de data/hora. Para que a ferramenta Análise de políticas políticas analise com precisão as vinculações de papéis com condições de data/hora, é necessário definir o horário de acesso na solicitação.
A ferramenta também pode analisar condições de recursos sem outras entradas do usuário. Para mais informações sobre como a ferramenta Análise de políticas funciona com condições, consulte Acesso condicional.
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
RESOURCE_TYPE
: o tipo de recurso para o qual você quer restringir sua pesquisa. Somente as políticas de permissão do IAM anexadas a este recurso e aos descendentes dele serão analisadas. Use o valorproject
,folder
ouorganization
.RESOURCE_ID
: o ID do projeto, da pasta ou da organização do Google Cloud para a qual você quer definir o escopo da sua pesquisa. Somente as políticas de permissão do IAM anexadas a este recurso e aos descendentes dele serão analisadas. Os IDs do projeto são strings alfanuméricas, comomy-project
. Os códigos de pastas e organizações são numéricos, como123456789012
.PERMISSIONS
: Opcional. Uma lista separada por vírgulas das permissões que você quer verificar, por exemplo,compute.instances.get,compute.instances.start
. Se você listar várias permissões, a Análise de políticas vai procurar qualquer uma delas.-
FULL_RESOURCE_NAME
: opcional. O nome completo do recurso com o acesso que você quer analisar. Para uma lista de formatos de nomes de recursos completos, consulte Formato de nomes de recursos. PERMISSIONS
: Opcional. Uma lista separada por vírgulas das permissões que você quer verificar, por exemplo,compute.instances.get,compute.instances.start
. Se você listar várias permissões, a Análise de políticas vai procurar qualquer uma delas.ACCESS_TIME
: a hora que você quer verificar. Esse horário precisa estar no futuro. Use um carimbo de data/hora no formato RFC 3339, por exemplo,2099-02-01T00:00:00Z
.
Execute o comando gcloud asset analyze-iam-policy:
Linux, macOS ou Cloud Shell
gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID \ --identity=PRINCIPAL \ --full-resource-name=FULL_RESOURCE_NAME \ --permissions='PERMISSIONS' \ --access-time=ACCESS_TIME
Windows (PowerShell)
gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID ` --identity=PRINCIPAL ` --full-resource-name=FULL_RESOURCE_NAME ` --permissions='PERMISSIONS' ` --access-time=ACCESS_TIME
Windows (cmd.exe)
gcloud asset analyze-iam-policy --RESOURCE_TYPE=RESOURCE_ID ^ --identity=PRINCIPAL ^ --full-resource-name=FULL_RESOURCE_NAME ^ --permissions='PERMISSIONS' ^ --access-time=ACCESS_TIME
Você recebe uma resposta YAML com os resultados da análise. Cada resultado da análise lista um conjunto de acessos, identidades e recursos relevantes para a consulta, seguidos pela vinculação de papéis do IAM relacionada. Se a vinculação de papel for condicional, o resultado da análise também incluirá o resultado da avaliação da condição. Se não for possível avaliar a condição, o
resultado será CONDITIONAL
.
Quando você inclui a hora de acesso na solicitação, a ferramenta Análise de políticas políticas pode avaliar as condições
de data/hora. Se a condição for avaliada como falsa, esse papel não será incluído na resposta. Se a condição for avaliada como verdadeira, o resultado da avaliação da condição será listado como TRUE
.
... --- ACLs: - accesses: - permission: compute.instances.get - permission: compute.instances.start conditionEvaluationValue: 'TRUE' identities: - name: user:my-user@example.com resources: - fullResourceName: //cloudresourcemanager.googleapis.com/projects/my-project policy: attachedResource: //cloudresourcemanager.googleapis.com/projects/my-project binding: condition: expression: request.time.getHours("America/Los_Angeles") >= 5 title: No access before 5am PST members: - user: my-user@example.com role: roles/compute.admin --- ...
Se a solicitação expirar antes de a consulta terminar, você receberá um erro DEADLINE_EXCEEDED
. Para conseguir mais resultados para essas consultas, grave-os no BigQuery ou no Cloud Storage usando a versão de longa duração do analyze-iam-policy
. Para instruções, consulte
Gravar análise de política no
BigQuery ou
Gravar análise de política no
Cloud Storage.
REST
Para determinar quais principais terão determinadas permissões em um recurso em
um momento específico, use o método
analyzeIamPolicy
da API Cloud Asset Inventory.
Antes de usar os dados da solicitação, faça as substituições a seguir:
RESOURCE_TYPE
: o tipo de recurso para o qual você quer restringir sua pesquisa. Somente as políticas de permissão do IAM anexadas a este recurso e aos descendentes dele serão analisadas. Use o valorprojects
,folders
ouorganizations
.RESOURCE_ID
: o ID do projeto, da pasta ou da organização do Google Cloud para a qual você quer definir o escopo da sua pesquisa. Somente as políticas de permissão do IAM anexadas a este recurso e aos descendentes dele serão analisadas. Os IDs do projeto são strings alfanuméricas, comomy-project
. Os códigos de pastas e organizações são numéricos, como123456789012
.PERMISSION_1
,PERMISSION_2
...PERMISSION_N
: opcional. As permissões que você quer verificar, por exemplo,compute.instances.get
. Se você listar várias permissões, a Análise de políticas vai procurar qualquer uma delas.-
FULL_RESOURCE_NAME
: opcional. O nome completo do recurso com o acesso que você quer analisar. Para uma lista de formatos de nomes de recursos completos, consulte Formato de nomes de recursos. PERMISSION_1
,PERMISSION_2
...PERMISSION_N
: opcional. As permissões que você quer verificar, por exemplo,compute.instances.get
. Se você listar várias permissões, a Análise de políticas vai procurar qualquer uma delas.ACCESS_TIME
: a hora que você quer verificar. Esse horário precisa estar no futuro. Use um carimbo de data/hora no formato RFC 3339, por exemplo,2099-02-01T00:00:00Z
.
Método HTTP e URL:
POST https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID:analyzeIamPolicy
Corpo JSON da solicitação:
{ "analysisQuery": { "identitySelector": { "identity": "PRINCIPAL" }, "resourceSelector": { "fullResourceName": "FULL_RESOURCE_NAME" }, "accessSelector": { "permissions": [ "PERMISSION_1", "PERMISSION_2", "PERMISSION_N" ] }, "conditionContext": { "accessTime": "ACCESS_TIME" } } }
Para enviar a solicitação, expanda uma destas opções:
Você recebe uma resposta JSON com os resultados da análise. Cada resultado da análise descreve uma vinculação de papel do IAM relevante e lista os recursos, acessos e principais nessa vinculação. Se a vinculação de papel for condicional, o resultado da análise também incluirá o resultado da avaliação da condição. Se não for possível avaliar a condição, o resultado será listado como
CONDITIONAL
.
Quando você inclui a hora de acesso na solicitação, a ferramenta Análise de políticas políticas pode avaliar as condições
de data/hora. Se a condição for avaliada como falsa, esse papel não será incluído na resposta. Se a condição for avaliada como verdadeira, o valor de avaliação da condição na resposta da análise será TRUE
.
... { "attachedResourceFullName": "//cloudresourcemanager.googleapis.com/projects/my-project", "iamBinding": { "role": "roles/compute.admin", "members": [ "user:my-user@example.com" ], "condition": { "expression": "request.time.getHours(\"America/Los_Angeles\") \u003e= 5", "title": "No access before 5am PST" } }, "accessControlLists": [ { "resources": [ { "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project" } ], "accesses": [ { "permission": "compute.instances.get" }, { "permission": "compute.instances.start" } ], "conditionEvaluation": { "evaluationValue": "TRUE" } } ], "identityList": { "identities": [ { "name": "user:my-user@example.com" } ] }, "fullyExplored": true }, ...
Se a solicitação expirar antes de a consulta terminar, você receberá um erro DEADLINE_EXCEEDED
. Para conseguir mais resultados para essas consultas, grave-os no BigQuery ou no Cloud Storage usando a versão de longa duração do analyzeIamPolicy
. Para instruções, consulte
Gravar análise de política no
BigQuery ou
Gravar análise de política no
Cloud Storage.
Ativar opções
Você pode ativar as opções a seguir para receber resultados de consulta mais detalhados.
Console
Opção | Descrição |
---|---|
Listar recursos nos recursos que correspondem à consulta | Se você ativar essa opção, os resultados da consulta vão listar até 1.000 recursos descendentes relevantes para qualquer recurso pai (projetos, pastas e organizações) nos resultados da consulta. |
Listar usuários individuais nos grupos |
Se você ativar essa opção, todos os grupos nos resultados da consulta serão expandidos em membros individuais. Se você tiver permissões de grupo suficientes, os grupos aninhados também serão expandidos. Essa expansão é limitada a 1.000 membros por grupo. Esta opção só estará disponível se você não especificar um principal na consulta. |
Listar permissões nos papéis |
Se você ativar essa opção, os resultados da consulta listarão todas as permissões dentro de cada papel, além do próprio papel. Essa opção só estará disponível se você não especificar permissões ou papéis na consulta. |
gcloud
Nesta seção, descrevemos várias sinalizações comuns que podem ser adicionadas ao usar a CLI gcloud para analisar as políticas de permissão. Para uma lista completa de opções, consulte Flags opcionais.
Flag | Descrição |
---|---|
--analyze-service-account-impersonation |
Se essa opção estiver ativada, a ferramenta vai executar outras consultas de análise para determinar quem pode representar as contas de serviço que têm acesso especificado aos recursos especificados. A ferramenta executa uma consulta para cada conta de serviço nos resultados da consulta. Essas consultas analisam quem tem qualquer uma das seguintes permissões na conta de serviço:
Essa é uma operação muito cara, porque executa automaticamente muitas consultas. É altamente recomendável
exportar
para o BigQuery ou
exportar
para o Cloud Storage usando
|
--expand-groups |
Se você ativar essa opção, todos os grupos nos resultados da consulta serão expandidos em membros individuais. Se você tiver permissões de grupo suficientes, os grupos aninhados também serão expandidos. Essa expansão é limitada a 1.000 membros por grupo. Essa opção só é eficaz se você não especificar um principal na consulta. |
--expand-resources |
Se você ativar essa opção, os resultados da consulta vão listar até 1.000 recursos descendentes relevantes para qualquer recurso pai (projetos, pastas e organizações) nos resultados da consulta. |
--expand-roles |
Se você ativar essa opção, os resultados da consulta listarão todas as permissões dentro de cada papel, além do próprio papel. Essa opção só estará disponível se você não especificar permissões ou papéis na consulta. |
--output-group-edges |
Se você ativar essa opção, os resultados da consulta produzirão os relacionamentos de associação relevantes entre os grupos. |
--output-resource-edges |
Se você ativar essa opção, os resultados da consulta produzirão os relacionamentos pai/filho relevantes entre os recursos. |
REST
Para ativar qualquer opção, primeiro adicione um campo options
à consulta de análise. Exemplo:
{ "analysisQuery": { "resourceSelector": { "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project" }, "accessSelector": { "permissions": [ "iam.roles.get", "iam.roles.list" ] }, "options": { OPTIONS } } }
Substitua OPTIONS
pelas opções que você quer ativar, no formato "OPTION": true
. A tabela abaixo
descreve as opções disponíveis:
Opção | Descrição |
---|---|
analyzeServiceAccountImpersonation |
Se essa opção estiver ativada, a ferramenta vai executar outras consultas de análise para determinar quem pode representar as contas de serviço que têm acesso especificado aos recursos especificados. A ferramenta executa uma consulta para cada conta de serviço nos resultados da consulta. Essas consultas analisam quem tem qualquer uma das seguintes permissões na conta de serviço:
Essa é uma operação muito cara, porque executa automaticamente muitas consultas. É altamente recomendável
exportar
para o BigQuery ou
exportar
para o Cloud Storage usando
|
expandGroups |
Se você ativar essa opção, todos os grupos nos resultados da consulta serão expandidos em membros individuais. Se você tiver permissões de grupo suficientes, os grupos aninhados também serão expandidos. Essa expansão é limitada a 1.000 membros por grupo. Essa opção só é eficaz se você não especificar um principal na consulta. |
expandResources |
Se você ativar essa opção, os resultados da consulta vão listar até 1.000 recursos descendentes relevantes para qualquer recurso pai (projetos, pastas e organizações) nos resultados da consulta. |
expandRoles |
Se você ativar essa opção, os resultados da consulta listarão todas as permissões dentro de cada papel, além do próprio papel. Essa opção só estará disponível se você não especificar permissões ou papéis na consulta. |
outputGroupEdges |
Se você ativar essa opção, os resultados da consulta produzirão os relacionamentos de associação relevantes entre os grupos. |
outputResourceEdges |
Se você ativar essa opção, os resultados da consulta produzirão os relacionamentos pai/filho relevantes entre os recursos. |
A seguir
- Saiba como usar
AnalyzeIamPolicyLongrunning
para gravar no BigQuery ou gravar no Cloud Storage. - Confira como usar a API REST para salvar consultas de análise de política.
- Confira as ferramentas de solução de problemas de acesso disponíveis, que podem ser usadas para descobrir por que um principal não tem um determinado tipo de acesso.