É possível pesquisar políticas de permissão do IAM nos seus recursos em um projeto, uma pasta ou uma organização e filtrar os resultados retornados usando uma consulta.
Antes de começar
Ative a API Cloud Asset Inventory no projeto em que você está executando comandos do Inventário de recursos do Cloud.
Verifique se a conta tem o papel correto para chamar a API Cloud Asset Inventory. Para permissões individuais de cada tipo de chamada, consulte Permissões.
Criar uma consulta
Antes de criar uma consulta, pode ser útil começar com uma solicitação de pesquisa que não especifique uma consulta. Use os campos e valores da resposta completa para criar uma consulta usando a sintaxe de consulta de pesquisa e refine-a até que os resultados desejados sejam retornados.
Os campos que podem ser usados em uma consulta estão detalhados na
documentação de referência do IamPolicySearchResult
.
Considere as seguintes limitações ao criar uma consulta:
O campo
policy
é um objeto aninhado e, portanto, só pode ser usado com o operador:
.Nem todos os tipos de recurso são pesquisáveis. Consulte Tipos de recursos para confirmar se um serviço não está disponível nas APIs de pesquisa.
Os campos a seguir também podem ser usados para restringir os resultados a determinados tipos, permissões ou papéis principais:
Campo | Descrição |
---|---|
memberTypes |
Contém um dos seguintes tipos principais do IAM:
ExemplomemberTypes=user |
policy.role.permissions |
Contém permissões do IAM específicas. Exemplopolicy.role.permissions=storage.buckets.create |
roles |
Contém papéis do IAM específicos. Exemploroles=roles/storage.objectAdmin |
Pesquisar políticas de permissão do IAM
Antes de criar uma consulta, pode ser útil começar com uma solicitação de pesquisa que não especifique uma consulta. Use os campos e valores da resposta completa para criar uma consulta usando a sintaxe de consulta de pesquisa e refine-a até que os resultados desejados sejam retornados.
Console
Para pesquisar metadados de políticas de permissão do IAM, siga estas etapas.
-
Acesse a página Inventário de recursos no console Google Cloud .
- Mude para o projeto, a pasta ou a organização que você quer pesquisar.
- Clique na guia Política do IAM.
-
Para pesquisar políticas de permissão, insira uma consulta no campo Filtro. Consulte Sintaxe da consulta de pesquisa para saber como escrever uma consulta de pesquisa.
Para facilitar a criação de consultas, clique no campo Filtrar para mostrar e adicionar os campos pesquisáveis disponíveis à consulta.
Depois de realizar uma pesquisa, as políticas de permissão correspondentes à consulta são listadas na tabela Resultados. Clique duas vezes na consulta para editá-la ou use o painel Filtrar resultados para aplicar predefinições de consulta rápidas ou restringir os resultados da pesquisa por critérios específicos.
Para conferir a consulta como um comando da Google Cloud CLI, clique em Visualizar consulta.
Para exportar os resultados, clique em Fazer o download do CSV.
gcloud
gcloud asset search-all-iam-policies \ --scope=SCOPE_PATH \ --query="QUERY" \ --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \ --order-by="ORDER_BY"
Forneça os valores a seguir:
-
SCOPE_PATH
: use um dos seguintes valores:Os valores permitidos são:
-
projects/PROJECT_ID
, em quePROJECT_ID
é o ID do projeto que tem recursos com políticas de permissão do IAM que você quer pesquisar. -
projects/PROJECT_NUMBER
, em quePROJECT_NUMBER
é o número do projeto que tem recursos com políticas de permissão do IAM que você quer pesquisar.Como encontrar um número de projeto da nuvem soberana da T-Systems .
Google Cloud console
Para encontrar um número de projeto do Google Cloud , siga estas etapas:
-
Acesse a página Welcome no console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
-
Selecione sua organização na caixa de lista e pesquise o nome do projeto. O nome, o número e o ID do projeto são mostrados perto do título Welcome.
Até 4.000 recursos são exibidos. Se você não encontrar o projeto que está procurando, acesse a página Gerenciar recursos e filtre a lista usando o nome dele.
CLI da gcloud
É possível extrair um número de projeto do Google Cloud com o seguinte comando:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
-
folders/FOLDER_ID
, em queFOLDER_ID
é o ID da pasta que tem os recursos com as políticas de permissão do IAM que você quer pesquisar.Como encontrar o ID de uma pasta do Google Cloud
Google Cloud console
Para encontrar o ID de uma pasta do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Pesquise o nome da pasta. O ID da pasta é mostrado ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma pasta do Google Cloud que está no nível da organização com o seguinte comando:
gcloud resource-manager folders list \ --organization=$(gcloud organizations describe ORGANIZATION_NAME \ --format="value(name.segment(1))") \ --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \ --format="value(ID)"
Em que TOP_LEVEL_FOLDER_NAME é uma correspondência de string parcial ou completa para o nome da pasta. Remova a flag
--format
para conferir mais informações sobre as pastas encontradas.O comando anterior não retorna os IDs das subpastas dentro das pastas. Para fazer isso, execute o comando abaixo usando o ID de uma pasta de nível superior:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organizations/ORGANIZATION_ID
, em queORGANIZATION_ID
é o ID da organização que tem recursos com políticas de permissão do IAM que você quer pesquisar.Como encontrar o ID de uma organização do Google Cloud
Google Cloud console
Para encontrar o ID de uma organização do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma organização do Google Cloud com o seguinte comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
QUERY
: opcional. A expressão de consulta. Se não for especificado ou estiver vazio, todos os recursos serão pesquisados no escopo especificado. Para saber como escrever uma consulta de pesquisa, consulte Sintaxe da consulta de pesquisa. ASSET_TYPE_#
: opcional. Uma lista separada por vírgulas de tipos de recursos pesquisáveis. As expressões regulares compatíveis com RE2 são aceitas. Se a expressão regular não corresponder a nenhum tipo de recurso aceito, um erroINVALID_ARGUMENT
será retornado. Quando--asset-types
não é especificado, todos os tipos de recurso são retornados.-
ORDER_BY
: opcional. Uma lista de campos separada por vírgulas que especifica a ordem de classificação dos resultados. A ordem padrão é crescente. AdicioneDESC
depois do nome do campo para indicar a ordem decrescente. Consulte a documentação de referência para saber quais campos podem ser classificados.
É possível usar as flags --format
e
--flatten
para formatar a
saída da CLI gcloud.
Consulte a referência da CLI do gcloud para conferir todas as opções.
Exemplo
Execute o comando a seguir para receber uma lista de todas as instâncias do Compute Engine (compute.googleapis.com/Instance
) no projeto my-project
com uma política de permissão do IAM vinculada ao usuário alex@example.com
. Os
resultados são classificados em ordem decrescente por recurso (resource DESC
).
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --query="policy:\"user:alex@example.com\"" \ --asset-types=compute.googleapis.com/Instance \ --order-by="resource DESC"
Exemplo de resposta
--- assetType: compute.googleapis.com/Instance folders: - folders/0000000000000 organization: organizations/0000000000000 policy: bindings: - members: - user:alex@example.com role: roles/compute.viewer - members: - user:alex@example.com role: roles/editor - members: - user:alex@example.com role: roles/owner project: projects/0000000000000 resource: //compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/debian
REST
Método HTTP e URL:
POST https://cloudasset.googleapis.com/v1/SCOPE_PATH:searchAllIamPolicies
Solicitar corpo JSON:
{ "query": "QUERY", "assetTypes": [ "ASSET_TYPE_1", "ASSET_TYPE_2", "..." ], "orderBy": "ORDER_BY", "pageSize": "PAGE_SIZE", "pageToken": "PAGE_TOKEN" }
Forneça os valores a seguir:
-
SCOPE_PATH
: use um dos seguintes valores:Os valores permitidos são:
-
projects/PROJECT_ID
, em quePROJECT_ID
é o ID do projeto que tem recursos com políticas de permissão do IAM que você quer pesquisar. -
projects/PROJECT_NUMBER
, em quePROJECT_NUMBER
é o número do projeto que tem recursos com políticas de permissão do IAM que você quer pesquisar.Como encontrar um número de projeto da nuvem soberana da T-Systems .
Google Cloud console
Para encontrar um número de projeto do Google Cloud , siga estas etapas:
-
Acesse a página Welcome no console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
-
Selecione sua organização na caixa de lista e pesquise o nome do projeto. O nome, o número e o ID do projeto são mostrados perto do título Welcome.
Até 4.000 recursos são exibidos. Se você não encontrar o projeto que está procurando, acesse a página Gerenciar recursos e filtre a lista usando o nome dele.
CLI da gcloud
É possível extrair um número de projeto do Google Cloud com o seguinte comando:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
-
folders/FOLDER_ID
, em queFOLDER_ID
é o ID da pasta que tem os recursos com as políticas de permissão do IAM que você quer pesquisar.Como encontrar o ID de uma pasta
Google Cloud console
Para encontrar o ID de uma pasta do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Pesquise o nome da pasta. O ID da pasta é mostrado ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma pasta do Google Cloud que está no nível da organização com o seguinte comando:
gcloud resource-manager folders list \ --organization=$(gcloud organizations describe ORGANIZATION_NAME \ --format="value(name.segment(1))") \ --filter='"DISPLAY_NAME":"TOP_LEVEL_FOLDER_NAME"' \ --format="value(ID)"
Em que TOP_LEVEL_FOLDER_NAME é uma correspondência de string parcial ou completa para o nome da pasta. Remova a flag
--format
para conferir mais informações sobre as pastas encontradas.O comando anterior não retorna os IDs das subpastas dentro das pastas. Para fazer isso, execute o comando abaixo usando o ID de uma pasta de nível superior:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organizations/ORGANIZATION_ID
, em queORGANIZATION_ID
é o ID da organização que tem recursos com políticas de permissão do IAM que você quer pesquisar.Como encontrar o ID de uma organização do Google Cloud
Google Cloud console
Para encontrar o ID de uma organização do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma organização do Google Cloud com o seguinte comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
QUERY
: opcional. A expressão de consulta. Se não for especificado ou estiver vazio, todos os recursos serão pesquisados no escopo especificado. Para saber como escrever uma consulta de pesquisa, consulte Sintaxe da consulta de pesquisa. ASSET_TYPE_#
: opcional. Uma matriz de tipos de recursos pesquisáveis. As expressões regulares compatíveis com RE2 são aceitas. Se a expressão regular não corresponder a nenhum tipo de recurso aceito, um erroINVALID_ARGUMENT
será retornado. QuandoassetTypes
não é especificado, todos os tipos de recursos são retornados.-
ORDER_BY
: opcional. Uma lista de campos separada por vírgulas que especifica a ordem de classificação dos resultados. A ordem padrão é crescente. AdicioneDESC
depois do nome do campo para indicar a ordem decrescente. Consulte a documentação de referência para saber quais campos podem ser classificados. -
PAGE_SIZE
: opcional. O número de resultados retornados por página. O valor máximo é 500. Se o valor for definido como0
ou um valor negativo, um padrão apropriado será selecionado. UmnextPageToken
é retornado para recuperar resultados subsequentes. -
PAGE_TOKEN
: opcional. Respostas longas são separadas em várias páginas. QuandopageToken
não é especificado, a primeira página é retornada. As páginas seguintes podem ser chamadas usando onextPageToken
da resposta anterior como o valor depageToken
.
Consulte a referência REST para conferir todas as opções.
Exemplos de comando
Execute um dos comandos a seguir para conferir uma lista de todas as instâncias do Compute Engine (compute.googleapis.com/Instance
) no projeto my-project
com uma política de permissão do IAM vinculada ao usuário alex@example.com
. Os
resultados são classificados em ordem decrescente por recurso (resource DESC
).
curl (Linux, macOS ou Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "query": "policy:\"user:alex@example.com\"", "assetTypes": ["compute.googleapis.com/Instance"], "orderBy": "resource DESC" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "query": "policy:\"user:alex@example.com\"", "assetTypes": ["compute.googleapis.com/Instance"], "orderBy": "resource DESC" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
Exemplo de resposta
{ "resource": "//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/debian", "project": "projects/0000000000000", "policy": { "bindings": [ { "role": "roles/compute.viewer", "members": [ "user:alex@example.com" ] }, { "role": "roles/editor", "members": [ "user:alex@example.com" ] }, { "role": "roles/owner", "members": [ "user:alex@example.com" ] } ] }, "assetType": "compute.googleapis.com/Instance", "folders": [ "folders/0000000000000" ], "organization": "organizations/0000000000000" }
C#
Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.
Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.
Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.
Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.
Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.
Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.
Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Para saber como instalar e usar a biblioteca de cliente do Inventário de recursos do Cloud, consulte Bibliotecas de cliente do Cloud Asset Inventory.
Para autenticar no Inventário de recursos do Cloud, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Outros exemplos de pesquisa
Os exemplos de código a seguir mostram consultas de pesquisa específicas para gcloud e REST para ajudar você a criar suas próprias pesquisas.
Recursos com políticas de permissão do IAM
O exemplo a seguir mostra como pesquisar todos os recursos com
políticas de permissão do IAM no projeto my-project
.
gcloud
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --flatten="policy.bindings[].members[]" \ --format="table(resource, policy.bindings.role, policy.bindings.members)"
REST
Método HTTP e URL:
GET https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
Exemplos de comando
curl (Linux, macOS ou Cloud Shell)
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
Recursos nomeados com políticas de permissão do IAM
O exemplo a seguir mostra como pesquisar todos os recursos com example
no
nome que tenham políticas de permissão do IAM.
gcloud
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --query="resource:example"
REST
Método HTTP e URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
Solicitar corpo JSON:
{ "pageSize": 1, "query": "resource:example" }
Exemplos de comando
curl (Linux, macOS ou Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "pageSize": 1, "query": "resource:example" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "pageSize": 1, "query": "resource:example" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
Políticas de permissão do IAM em projetos, pastas e organizações
O exemplo a seguir mostra como pesquisar todas as políticas de permissão do IAM em todos os projetos e pastas da organização com o ID my-organization-id
.
Como encontrar o ID de uma organização do Google Cloud
Google Cloud console
Para encontrar o ID de uma organização do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma organização do Google Cloud com o seguinte comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
gcloud
gcloud asset search-all-iam-policies \ --scope=organizations/my-organization-id \ --asset-types=cloudresourcemanager.*
REST
Método HTTP e URL:
POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
Solicitar corpo JSON:
{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, }
Exemplos de comando
curl (Linux, macOS ou Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "cloudresourcemanager.*", "pageSize": 1, } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content
Proprietários de um projeto
O exemplo a seguir mostra como pesquisar participantes com a
função de proprietário (roles/owner
) no projeto
my-project
.
Essa solicitação só retorna os principais que receberam a função de proprietário no projeto. Ele não inclui os principais que herdam a função de proprietário pela herança de políticas.
gcloud
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --query="roles:roles/owner" \ --asset-types=cloudresourcemanager.* \ --flatten="policy.bindings[].members[]" \ --format="table(policy.bindings.members)"
REST
Método HTTP e URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
Solicitar corpo JSON:
{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "roles:roles/owner" }
Exemplos de comando
curl (Linux, macOS ou Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "roles:roles/owner" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "roles:roles/owner" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
Projetos em que um participante tem o papel de proprietário
O exemplo a seguir mostra como pesquisar projetos em que alex@example.com
tem a função de proprietário (roles/owner
) na
organização com o ID my-organization-id
.
Essa solicitação só retorna os projetos em que alex@example.com
recebeu
a função de proprietário. Ele não inclui projetos em que alex@example.com
herdou o papel de proprietário.
Como encontrar o ID de uma organização do Google Cloud
Google Cloud console
Para encontrar o ID de uma organização do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma organização do Google Cloud com o seguinte comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
gcloud
gcloud asset search-all-iam-policies \ --scope=organizations/my-organization-id \ --query="policy:(roles/owner alex@example.com)" \ --asset-types=cloudresourcemanager.googleapis.com/Project \ --format="table(resource)"
REST
Método HTTP e URL:
POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
Solicitar corpo JSON:
{ "assetTypes": "cloudresourcemanager.googleapis.com/Project", "pageSize": 1, "query": "policy:(roles/owner alex@example.com)" }
Exemplos de comando
curl (Linux, macOS ou Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "cloudresourcemanager.googleapis.com/Project", "pageSize": 1, "query": "policy:(roles/owner alex@example.com)" }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "cloudresourcemanager.googleapis.com/Project", "pageSize": 1, "query": "policy:(roles/owner alex@example.com)" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content
Papéis de um principal em um projeto
O exemplo a seguir mostra como pesquisar os papéis que alex@example.com
tem no
projeto my-project
.
Essa solicitação retorna apenas as funções que alex@example.com
recebe no
projeto. Ela não inclui papéis que alex@example.com
herdou pela
herança de políticas.
gcloud
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --query="policy:alex@example.com" \ --asset-types=cloudresourcemanager.googleapis.com/Project \ --flatten="policy.bindings[]" \ --format="table(policy.bindings.role)"
REST
Método HTTP e URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
Solicitar corpo JSON:
{ "assetTypes": "cloudresourcemanager.googleapis.com/Project", "pageSize": 1, "query": "policy:alex@example.com" }
Exemplos de comando
curl (Linux, macOS ou Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "cloudresourcemanager.googleapis.com/Project", "pageSize": 1, "query": "policy:alex@example.com" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "cloudresourcemanager.googleapis.com/Project", "pageSize": 1, "query": "policy:alex@example.com" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
Permissões que um participante tem em um projeto
O exemplo a seguir mostra como pesquisar as permissões que alex@example.com
tem no projeto my-project
.
Essa solicitação só retorna as permissões que alex@example.com
tem no
projeto. Ele não inclui permissões que alex@example.com
herdou
por herança de políticas.
gcloud
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --query="policy:alex@example.com policy.role.permissions:\"\"" \ --asset-types=cloudresourcemanager.* \ --format="default(explanation.matchedPermissions)"
REST
Método HTTP e URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
Solicitar corpo JSON:
{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "policy:alex@example.com policy.role.permissions:\"\"" }
Exemplos de comando
curl (Linux, macOS ou Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "policy:alex@example.com policy.role.permissions:\"\"" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "policy:alex@example.com policy.role.permissions:\"\"" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
Princípios que podem acessar buckets do Cloud Storage
O exemplo a seguir mostra como procurar principais que podem acessar
buckets do Cloud Storage no projeto my-project
.
gcloud
gcloud asset search-all-iam-policies \ --scope=projects/my-project \ --query="policy.role.permissions:storage.buckets" \ --asset-types=cloudresourcemanager.* \ --flatten="policy.bindings[].members[]" \ --format="table(policy.bindings.members)"
REST
Método HTTP e URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
Solicitar corpo JSON:
{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "policy.role.permissions:storage.buckets" }
Exemplos de comando
curl (Linux, macOS ou Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "policy.role.permissions:storage.buckets" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "cloudresourcemanager.*", "pageSize": 1, "query": "policy.role.permissions:storage.buckets" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllIamPolicies" | Select-Object -Expand Content
Contas de serviço com função de proprietário
O exemplo a seguir mostra como pesquisar contas de serviço com o
papel de proprietário (roles/owner
) na
organização com o my-organization-id
. Use essa consulta para
reduzir seu perfil de risco.
Como encontrar o ID de uma organização do Google Cloud
Google Cloud console
Para encontrar o ID de uma organização do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma organização do Google Cloud com o seguinte comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
gcloud
Este exemplo usa o comando grep, que está disponível no Cloud Shell e em sistemas operacionais semelhantes ao Unix.
gcloud asset search-all-iam-policies \ --scope=organizations/my-organization-id \ --query="policy:(roles/owner serviceAccount)" \ --flatten="policy.bindings[].members[]" \ --format="table(resource.segment(3):label=RESOURCE_TYPE, resource.basename():label=RESOURCE, policy.bindings.members)" | grep serviceAccount
REST
Método HTTP e URL:
POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
Solicitar corpo JSON:
{ "pageSize": 1, "query": "policy:(roles/owner serviceAccount)" }
Exemplos de comando
curl (Linux, macOS ou Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "pageSize": 1, "query": "policy:(roles/owner serviceAccount)" }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "pageSize": 1, "query": "policy:(roles/owner serviceAccount)" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content
Recursos com papéis concedidos a um domínio
O exemplo a seguir mostra como pesquisar recursos com papéis concedidos ao
domínio example.com
, na organização com o ID my-organization-id
.
Como encontrar o ID de uma organização do Google Cloud
Google Cloud console
Para encontrar o ID de uma organização do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma organização do Google Cloud com o seguinte comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
gcloud
gcloud asset search-all-iam-policies \ --scope=organizations/my-organization-id \ --query="policy:\"domain:example.com\"" \ --flatten="policy.bindings[]" \ --format="table(resource, policy.bindings.role)"
REST
Método HTTP e URL:
POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
Solicitar corpo JSON:
{ "pageSize": 1, "query": "policy:\"domain:DOMAIN_NAME\"" }
Exemplos de comando
curl (Linux, macOS ou Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "pageSize": 1, "query": "policy:\"domain:DOMAIN_NAME\"" }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "pageSize": 1, "query": "policy:\"domain:DOMAIN_NAME\"" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content
Recursos com papéis concedidos ao público
O exemplo a seguir mostra como pesquisar recursos com papéis concedidos ao público na organização com o ID my-organization-id
.
Como encontrar o ID de uma organização do Google Cloud
Google Cloud console
Para encontrar o ID de uma organização do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma organização do Google Cloud com o seguinte comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
gcloud
gcloud asset search-all-iam-policies \ --scope=organizations/my-organization-id \ --query="memberTypes:(allUsers OR allAuthenticatedUsers)" \ --format="table(resource)"
REST
Método HTTP e URL:
POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
Solicitar corpo JSON:
{ "pageSize": 1, "query": "memberTypes:(allUsers OR allAuthenticatedUsers)" }
Exemplos de comando
curl (Linux, macOS ou Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "pageSize": 1, "query": "memberTypes:(allUsers OR allAuthenticatedUsers)" }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "pageSize": 1, "query": "memberTypes:(allUsers OR allAuthenticatedUsers)" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content
Princípios que podem mudar as políticas de permissão do IAM em uma organização
O exemplo a seguir mostra como pesquisar principais que podem mudar
políticas de permissão do IAM na organização com o ID
my-organization-id
.
Como encontrar o ID de uma organização do Google Cloud
Google Cloud console
Para encontrar o ID de uma organização do Google Cloud , siga estas etapas:
-
Acesse o console Google Cloud .
- Clique na caixa de lista switcher na barra de menu.
- Selecione sua organização no campo de lista.
- Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.
CLI da gcloud
É possível extrair o ID de uma organização do Google Cloud com o seguinte comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
gcloud
gcloud asset search-all-iam-policies \ --scope=organizations/my-organization-id \ --query="policy.role.permissions:(resourcemanager.organizations.setIamPolicy OR resourcemanager.folders.setIamPolicy OR resourcemanager.projects.setIamPolicy)" \ --format="json(resource, policy.bindings, explanation.matchedPermissions)"
REST
Método HTTP e URL:
POST https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
Solicitar corpo JSON:
{ "pageSize": 1, "query": "policy.role.permissions:(resourcemanager.organizations.setIamPolicy OR resourcemanager.folders.setIamPolicy OR resourcemanager.projects.setIamPolicy)" }
Exemplos de comando
curl (Linux, macOS ou Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "pageSize": 1, "query": "policy.role.permissions:(resourcemanager.organizations.setIamPolicy OR resourcemanager.folders.setIamPolicy OR resourcemanager.projects.setIamPolicy)" }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "pageSize": 1, "query": "policy.role.permissions:(resourcemanager.organizations.setIamPolicy OR resourcemanager.folders.setIamPolicy OR resourcemanager.projects.setIamPolicy)" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id:searchAllIamPolicies" | Select-Object -Expand Content