É 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 os comandos do Inventário de recursos do Cloud.
Verifique se sua conta tem a função correta 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, é útil começar com uma solicitação de pesquisa que não especifica 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 recursos são pesquisáveis. Consulte Tipos de recursos para confirmar se um serviço não está disponível nas APIs de pesquisa.
Os seguintes campos adicionais também podem ser usados para restringir os resultados a determinados tipos de principais, permissões ou papéis:
Campo | Descrição |
---|---|
memberTypes |
Contém um dos seguintes tipos de 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, é útil começar com uma solicitação de pesquisa que não especifica 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 do 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 de consulta de pesquisa para saber como escrever uma consulta de pesquisa.
Para facilitar a criação de consultas, clique no campo Filtro para mostrar e adicionar os campos pesquisáveis disponíveis à sua consulta.
Depois de fazer uma pesquisa, as políticas de permissão correspondentes à consulta são listadas na tabela Resultados. Clique duas vezes na consulta para editar 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 ver a consulta como um comando da Google Cloud CLI, clique em Ver 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 Google Cloud número do projeto
Google Cloud console
Para encontrar o número de um projeto Google Cloud , siga estas etapas:
-
Acesse a página Boas-vindas no console do Google Cloud .
- Clique na caixa de listagem alternador na barra de menu.
-
Selecione sua organização na caixa de listagem e pesquise o nome do projeto. O nome, o número e o ID do projeto são mostrados perto do título Bem-vindo.
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 Google Cloud número de projeto com o seguinte comando:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
-
folders/FOLDER_ID
, em queFOLDER_ID
é o ID da pasta que tem recursos com políticas de permissão do IAM que você quer pesquisar.Como encontrar o ID de uma Google Cloud pasta
Google Cloud console
Para encontrar o ID de uma pasta do Google Cloud , siga estas etapas:
-
Acesse o console do Google Cloud .
- Clique na caixa de listagem alternador na barra de menu.
- Selecione sua organização na caixa de listagem.
- Pesquise o nome da pasta. O ID da pasta aparece ao lado do nome dela.
CLI da gcloud
Para recuperar o ID de uma pasta Google Cloud localizada no nível da organização, use 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 ver mais informações sobre as pastas encontradas.O comando anterior não retorna os IDs das subpastas dentro das pastas. Para isso, execute o seguinte comando 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 Google Cloud organização
Google Cloud console
Para encontrar o ID de uma organização Google Cloud , siga estas etapas:
-
Acesse o console do Google Cloud .
- Clique na caixa de listagem alternador na barra de menu.
- Selecione sua organização na caixa de listagem.
- Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.
CLI da gcloud
Para recuperar o ID de uma organização Google Cloud , use 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 de consulta de pesquisa. ASSET_TYPE_#
: opcional. Uma lista separada por vírgulas de tipos de recursos pesquisáveis. Expressões regulares compatíveis com RE2 são aceitas. Se a expressão regular não corresponder a nenhum tipo de recurso compatível, um erroINVALID_ARGUMENT
será retornado. Quando--asset-types
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.
É possível usar as flags --format
e
--flatten
para formatar a
saída da CLI gcloud.
Consulte a referência da CLI 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
vinculação de política de permissão do IAM a elas para o usuário alex@example.com
. Os resultados estão 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 Google Cloud número do projeto
Google Cloud console
Para encontrar o número de um projeto Google Cloud , siga estas etapas:
-
Acesse a página Boas-vindas no console do Google Cloud .
- Clique na caixa de listagem alternador na barra de menu.
-
Selecione sua organização na caixa de listagem e pesquise o nome do projeto. O nome, o número e o ID do projeto são mostrados perto do título Bem-vindo.
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 Google Cloud número de projeto com o seguinte comando:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
-
folders/FOLDER_ID
, em queFOLDER_ID
é o ID da pasta que tem recursos com políticas de permissão do IAM que você quer pesquisar.Como encontrar o ID de uma Google Cloud pasta
Google Cloud console
Para encontrar o ID de uma pasta do Google Cloud , siga estas etapas:
-
Acesse o console do Google Cloud .
- Clique na caixa de listagem alternador na barra de menu.
- Selecione sua organização na caixa de listagem.
- Pesquise o nome da pasta. O ID da pasta aparece ao lado do nome dela.
CLI da gcloud
Para recuperar o ID de uma pasta Google Cloud localizada no nível da organização, use 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 ver mais informações sobre as pastas encontradas.O comando anterior não retorna os IDs das subpastas dentro das pastas. Para isso, execute o seguinte comando 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 Google Cloud organização
Google Cloud console
Para encontrar o ID de uma organização Google Cloud , siga estas etapas:
-
Acesse o console do Google Cloud .
- Clique na caixa de listagem alternador na barra de menu.
- Selecione sua organização na caixa de listagem.
- Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.
CLI da gcloud
Para recuperar o ID de uma organização Google Cloud , use 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 de consulta de pesquisa. ASSET_TYPE_#
: opcional. Uma matriz de tipos de recursos pesquisáveis. Expressões regulares compatíveis com RE2 são aceitas. Se a expressão regular não corresponder a nenhum tipo de recurso compatível, 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 a serem retornados por página. O valor máximo é 500. Se o valor for0
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 subsequentes podem ser chamadas usando onextPageToken
da resposta anterior como o valor depageToken
.
Consulte a referência REST para todas as opções.
Exemplos de comandos
Execute um dos comandos a seguir para receber uma lista de todas as instâncias do Compute Engine
(compute.googleapis.com/Instance
) no projeto my-project
com uma
vinculação de política de permissão do IAM a elas para o usuário alex@example.com
. Os resultados estão 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, ajudando 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 comandos
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 têm 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 comandos
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 Google Cloud organização
Google Cloud console
Para encontrar o ID de uma organização Google Cloud , siga estas etapas:
-
Acesse o console do Google Cloud .
- Clique na caixa de listagem alternador na barra de menu.
- Selecione sua organização na caixa de listagem.
- Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.
CLI da gcloud
Para recuperar o ID de uma organização Google Cloud , use 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 comandos
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 principais com o papel de proprietário (roles/owner
) no projeto my-project
.
Essa solicitação retorna apenas os principais que receberam a função de proprietário no projeto. Ela não inclui principais que herdam a função de proprietário por 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 comandos
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 principal tem o papel de proprietário
O exemplo a seguir mostra como pesquisar projetos em que alex@example.com
tem o papel de proprietário (roles/owner
) na
organização com o ID my-organization-id
.
Essa solicitação retorna apenas os projetos em que alex@example.com
recebeu a função de proprietário. Ele não inclui projetos em que o alex@example.com
herdou a função de proprietário.
Como encontrar o ID de uma Google Cloud organização
Google Cloud console
Para encontrar o ID de uma organização Google Cloud , siga estas etapas:
-
Acesse o console do Google Cloud .
- Clique na caixa de listagem alternador na barra de menu.
- Selecione sua organização na caixa de listagem.
- Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.
CLI da gcloud
Para recuperar o ID de uma organização Google Cloud , use 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 comandos
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 que um principal tem 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 concedidas a alex@example.com
no projeto. Ela não inclui papéis 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" \ --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 comandos
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 principal 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 retorna apenas as permissões que alex@example.com
tem no projeto. Ela não inclui permissões 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 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 comandos
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
Principais que podem acessar buckets do Cloud Storage
O exemplo a seguir mostra como pesquisar 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 comandos
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 uma 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 Google Cloud organização
Google Cloud console
Para encontrar o ID de uma organização Google Cloud , siga estas etapas:
-
Acesse o console do Google Cloud .
- Clique na caixa de listagem alternador na barra de menu.
- Selecione sua organização na caixa de listagem.
- Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.
CLI da gcloud
Para recuperar o ID de uma organização Google Cloud , use 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 comandos
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 Google Cloud organização
Google Cloud console
Para encontrar o ID de uma organização Google Cloud , siga estas etapas:
-
Acesse o console do Google Cloud .
- Clique na caixa de listagem alternador na barra de menu.
- Selecione sua organização na caixa de listagem.
- Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.
CLI da gcloud
Para recuperar o ID de uma organização Google Cloud , use 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 comandos
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 Google Cloud organização
Google Cloud console
Para encontrar o ID de uma organização Google Cloud , siga estas etapas:
-
Acesse o console do Google Cloud .
- Clique na caixa de listagem alternador na barra de menu.
- Selecione sua organização na caixa de listagem.
- Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.
CLI da gcloud
Para recuperar o ID de uma organização Google Cloud , use 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 comandos
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
Principais 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 Google Cloud organização
Google Cloud console
Para encontrar o ID de uma organização Google Cloud , siga estas etapas:
-
Acesse o console do Google Cloud .
- Clique na caixa de listagem alternador na barra de menu.
- Selecione sua organização na caixa de listagem.
- Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.
CLI da gcloud
Para recuperar o ID de uma organização Google Cloud , use 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 comandos
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