Nesta página, mostramos como usar o analisador de políticas 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 você quiser exportar os resultados para uma análise mais detalhada, 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 você usará para enviar a consulta. Ele não precisa ser o mesmo recurso que você definiu para a consulta.
Opcional: entenda como o Policy Analyzer funciona.
Papéis e permissões necessárias
Os seguintes papéis e permissões são necessários para analisar políticas de permissão.
Papéis do IAM obrigatórios
Para conseguir as permissões necessárias para analisar uma política de permissão, peça ao administrador para conceder a você os papéis do IAM a seguir no projeto, na pasta ou na organização em que você fará o escopo da consulta:
- Leitor de recursos do Cloud (
roles/cloudasset.viewer
) -
Para analisar políticas com papéis de IAM personalizados:
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 o acesso.
Esses papéis predefinidos contêm as permissões necessárias para analisar uma política de permissão. Para ver as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
-
cloudasset.assets.analyzeIamPolicy
-
cloudasset.assets.searchAllResources
-
cloudasset.assets.searchAllIamPolicies
-
Para analisar políticas com papéis de IAM personalizados:
iam.roles.get
-
Para usar a Google Cloud CLI para analisar políticas:
serviceusage.services.use
Essas permissões também podem ser concedidas 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 para ver se um principal
tem determinados papéis ou permissões como resultado da associação dele em um
grupo do Google Workspace, precisará da permissão groups.read
do Google Workspace.
Essa permissão está incluída na função de administrador do Grupos e em funções
mais avançadas, como as de administrador dos grupos ou de superadministrador. Para saber como
conceder esses papéis, consulte Atribuir funções administrativas específicas.
Determinar quais principais podem acessar um recurso
Use o Policy Analyzer 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 Analisador de políticas.
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. O Policy Analyzer 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 as permissões especificados no recurso.
Também é possível exportar os resultados para o BigQuery em vez de visualizá-los imediatamente.
gcloud CLI
Antes de usar os dados do comando abaixo, faça estas substituições:
RESOURCE_TYPE
: o tipo do recurso que você quer definir como escopo da 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, pasta ou organização do Google Cloud que você quer limitar à pesquisa. Somente as políticas de permissão do IAM anexadas a este recurso e os descendentes dele vão ser 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 completa de formatos de nomes de recursos, consulte Formato de nomes dos recursos.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, o Analisador de políticas verificará todas as permissões listadas.
Execute o comando gcloud asset parse-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 de análise lista um conjunto de
acessos, identidades e recursos relevantes para sua consulta, seguido pela
vinculação de papel do IAM relacionada. Se a vinculação do 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 alguma 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 --- ...
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 do recurso que você quer definir como escopo da 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, pasta ou organização do Google Cloud que você quer limitar à pesquisa. Somente as políticas de permissão do IAM anexadas a este recurso e os descendentes dele vão ser 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 completa de formatos de nomes de recursos, consulte Formato de nomes dos recursos.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, o Analisador de políticas verificará todas as permissões listadas.
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 o recurso, os acessos e os 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 a condição não puder ser avaliada, o resultado vai ser listado como
CONDITIONAL
.
Os principais que têm alguma 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 }, ...
Determinar quais principais têm determinados papéis ou permissões
É possível usar o Policy Analyzer 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 Analisador de políticas.
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. O Policy Analyzer 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 as permissões especificados em qualquer recurso no escopo.
Também é possível exportar os resultados para o BigQuery em vez de visualizá-los imediatamente.
gcloud CLI
Antes de usar os dados do comando abaixo, faça estas substituições:
RESOURCE_TYPE
: o tipo do recurso que você quer definir como escopo da 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, pasta ou organização do Google Cloud que você quer limitar à pesquisa. Somente as políticas de permissão do IAM anexadas a este recurso e os descendentes dele vão ser 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 dos papéis listados.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, o Analisador de políticas verificará todas as permissões listadas.
Execute o comando gcloud asset parse-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 o recurso, os acessos e os 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 a condição não puder ser avaliada, o resultado vai 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 --- ...
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 do recurso que você quer definir como escopo da 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, pasta ou organização do Google Cloud que você quer limitar à pesquisa. Somente as políticas de permissão do IAM anexadas a este recurso e os descendentes dele vão ser 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, o Analisador de políticas verificará qualquer um dos papéis listados.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, o Analisador de políticas verificará todas as permissões listadas.
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 o recurso, os acessos e os 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 a condição não puder ser avaliada, o resultado vai 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 }, ...
Determinar qual acesso um principal tem em um recurso
Use o Policy Analyzer 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 Analisador de políticas.
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. O Policy Analyzer 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.
Também é possível exportar os resultados para o BigQuery em vez de visualizá-los imediatamente.
gcloud CLI
Antes de usar os dados do comando abaixo, faça estas substituições:
RESOURCE_TYPE
: o tipo do recurso que você quer definir como escopo da 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, pasta ou organização do Google Cloud que você quer limitar à pesquisa. Somente as políticas de permissão do IAM anexadas a este recurso e os descendentes dele vão ser 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 completa de formatos de nomes de recursos, consulte Formato de nomes dos recursos.PRINCIPAL
: o principal com o acesso que você quer analisar, no formatoPRINCIPAL_TYPE:ID
. Por exemplo,user:my-user@example.com
. Para ver uma lista completa dos tipos principais, consulte Identificadores principais.
Execute o comando gcloud asset parse-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 de análise lista um conjunto de
acessos, identidades e recursos relevantes para sua consulta, seguido pela
vinculação de papel do IAM relacionada. Se a vinculação do 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 o principal tem no recurso especificado são listados nos campos accesses
na 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 --- ...
REST
Para determinar qual acesso um principal tem 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 do recurso que você quer definir como escopo da 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, pasta ou organização do Google Cloud que você quer limitar à pesquisa. Somente as políticas de permissão do IAM anexadas a este recurso e os descendentes dele vão ser 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 completa de formatos de nomes de recursos, consulte Formato de nomes dos recursos.PRINCIPAL
: o principal com o acesso que você quer analisar, no formatoPRINCIPAL_TYPE:ID
. Por exemplo,user:my-user@example.com
. Para ver 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 o recurso, os acessos e os 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 a condição não puder ser avaliada, o resultado vai ser listado como
CONDITIONAL
.
Os papéis que o principal tem no recurso especificado são listados nos campos accesses
na 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 }, ...
Determinar quais recursos um principal pode acessar
Use o Policy Analyzer 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 Analisador de políticas.
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. O Policy Analyzer 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.
Também é possível exportar os resultados para o BigQuery em vez de visualizá-los imediatamente.
gcloud CLI
Antes de usar os dados do comando abaixo, faça estas substituições:
RESOURCE_TYPE
: o tipo do recurso que você quer definir como escopo da 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, pasta ou organização do Google Cloud que você quer limitar à pesquisa. Somente as políticas de permissão do IAM anexadas a este recurso e os descendentes dele vão ser 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 ver 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, o Analisador de políticas verificará todas as permissões listadas.
Execute o comando gcloud asset parse-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 de análise lista um conjunto de
acessos, identidades e recursos relevantes para sua consulta, seguido pela
vinculação de papel do IAM relacionada. Se a vinculação do 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
na 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 --- ...
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 do recurso que você quer definir como escopo da 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, pasta ou organização do Google Cloud que você quer limitar à pesquisa. Somente as políticas de permissão do IAM anexadas a este recurso e os descendentes dele vão ser 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 ver 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, o Analisador de políticas verificará todas as permissões listadas.
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 o recurso, os acessos e os 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 a condição não puder ser avaliada, o resultado vai ser listado como
CONDITIONAL
.
Os recursos em que o principal especificado tem qualquer uma das permissões especificadas são listados nos
campos resources
na 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 }, ...
Determinar o acesso em um horário específico
Se o contexto for suficiente, o Policy Analyzer poderá analisar as vinculações de papéis condicionais do IAM que concedem acesso apenas em horários específicos. Essas condições são chamadas de condições de data/hora. Para que o Analisador de políticas analise com precisão as vinculações de papéis com condições de data/hora, você precisa definir o horário de acesso na solicitação.
gcloud CLI
Antes de usar os dados do comando abaixo, faça estas substituições:
RESOURCE_TYPE
: o tipo do recurso que você quer definir como escopo da 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, pasta ou organização do Google Cloud que você quer limitar à pesquisa. Somente as políticas de permissão do IAM anexadas a este recurso e os descendentes dele vão ser 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, o Analisador de políticas verificará todas as permissões listadas.-
FULL_RESOURCE_NAME
: opcional. O nome completo do recurso para que você quer analisar o acesso. Para ver uma lista completa de formatos de nome de recurso, consulte Formato de nome do recurso. 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, o Analisador de políticas verificará todas as permissões listadas.ACCESS_TIME
: a hora que você quer verificar. Esse horário precisa ser no futuro. Use um carimbo de data/hora no formato RFC 3339 (em inglês), por exemplo,2099-02-01T00:00:00Z
.
Execute o comando gcloud asset parse-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 de análise lista um conjunto de
acessos, identidades e recursos relevantes para sua consulta, seguido pela
vinculação de papel do IAM relacionada. Se a vinculação do 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 o horário de acesso na solicitação, o Analisador de 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 --- ...
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 do recurso que você quer definir como escopo da 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, pasta ou organização do Google Cloud que você quer limitar à pesquisa. Somente as políticas de permissão do IAM anexadas a este recurso e os descendentes dele vão ser 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, o Analisador de políticas verificará se há alguma das permissões listadas.-
FULL_RESOURCE_NAME
: opcional. O nome completo do recurso para que você quer analisar o acesso. Para ver uma lista completa de formatos de nome de recurso, consulte Formato de nome do recurso. 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, o Analisador de políticas verificará se há alguma das permissões listadas.ACCESS_TIME
: a hora que você quer verificar. Esse horário precisa ser no futuro. Use um carimbo de data/hora no formato RFC 3339 (em inglês), 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 o recurso, os acessos e os 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 a condição não puder ser avaliada, o resultado vai ser listado como
CONDITIONAL
.
Quando você inclui o horário de acesso na solicitação, o Analisador de 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 da 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 }, ...
Ativar opções
É possível 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 todos os recursos pais (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. Essa 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 nenhuma permissão ou papel na consulta. |
gcloud CLI
Nesta seção, descrevemos várias sinalizações comuns que podem ser adicionadas ao usar a CLI gcloud para analisar políticas de permissão. Para ver uma lista completa de opções, consulte Sinalizações opcionais.
Sinalização | Descrição |
---|---|
--analyze-service-account-impersonation |
Se essa opção estiver ativada, o Policy Analyzer executará consultas de análise adicionais para determinar quem pode representar as contas de serviço que têm o 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 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
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ó será 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 todos os recursos pais (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 nenhuma permissão ou papel na consulta. |
--output-group-edges |
Se você ativar essa opção, os resultados da consulta vão gerar as relações de associação relevantes entre os grupos. |
--output-resource-edges |
Se você ativar essa opção, os resultados da consulta vão gerar as relações pai/filho relevantes entre os recursos. |
REST
Para ativar qualquer opção, primeiro adicione um campo options
à sua 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 a seguir
descreve as opções disponíveis:
Opção | Descrição |
---|---|
analyzeServiceAccountImpersonation |
Se essa opção estiver ativada, o Policy Analyzer executará consultas de análise adicionais para determinar quem pode representar as contas de serviço que têm o 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 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
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ó será 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 todos os recursos pais (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 nenhuma permissão ou papel na consulta. |
outputGroupEdges |
Se você ativar essa opção, os resultados da consulta vão gerar as relações de associação relevantes entre os grupos. |
outputResourceEdges |
Se você ativar essa opção, os resultados da consulta vão gerar as relações pai/filho relevantes entre os recursos. |
A seguir
- Saiba como usar
AnalyzeIamPolicyLongrunning
para gravar no BigQuery ou gravar no Cloud Storage. - Veja como usar a API REST para salvar consultas da análise de políticas.
- Explore 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.