No IAM, as políticas efetivas descrevem como todas as políticas pai e ancestrais na hierarquia de recursos são herdadas para um recurso.
Somente as políticas de permissão podem ser recuperadas pelo Inventário de recursos do Cloud. Os seguintes tipos de controle de acesso não são compatíveis:
Antes de começar
Ative a API Cloud Asset Inventory no projeto em que você está executando comandos do Cloud Asset Inventory.
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.
Conferir as políticas eficazes nos recursos
gcloud
gcloud asset get-effective-iam-policy \ --scope=SCOPE_PATH \ --names=ASSET_NAME_1,ASSET_NAME_2,...
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 é o nível superior para verificar as políticas de IAM eficazes. -
projects/PROJECT_NUMBER
, em quePROJECT_NUMBER
é o número do projeto que é o nível superior para verificar as políticas de IAM eficazes.Como encontrar um número de projeto Google Cloud
Console doGoogle Cloud
Para encontrar um número de projeto Google Cloud , siga estas etapas:
-
Acesse a página Welcome no console do 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 recuperar um número de projeto 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 é o nível superior para verificar as políticas de IAM eficazes.Como encontrar o ID de uma Google Cloud pasta
Console doGoogle Cloud
Para encontrar o ID de uma pasta Google Cloud , siga estas etapas:
-
Acesse o console do 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 recuperar o ID de uma pasta Google Cloud localizada 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 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 é o nível superior para verificar as políticas de IAM eficazes.Como encontrar o ID de uma Google Cloud organização
Console doGoogle Cloud
Para encontrar o ID de uma organização Google Cloud , siga estas etapas:
-
Acesse o console do 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 recuperar o ID de uma Google Cloud organização com o seguinte comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
ASSET_NAME_#
: uma lista separada por vírgulas de nomes completos de recursos.
É possível recuperar políticas para no máximo 20 recursos em um lote.
Consulte a referência da CLI do gcloud para conferir todas as opções.
Exemplo
Execute o comando a seguir para conferir as políticas do IAM eficazes na
instância do Compute Engine my-instance
que são herdadas da
organização com o ID my-organization-id
.
Como encontrar o ID de uma Google Cloud organização
Console doGoogle Cloud
Para encontrar o ID de uma organização Google Cloud , siga estas etapas:
-
Acesse o console do 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 recuperar o ID de uma Google Cloud organização com o seguinte comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
gcloud asset get-effective-iam-policy \ --scope=organizations/my-organization-id \ --names=//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance
Exemplo de resposta
policyResults: - fullResourceName: //compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance policies: - attachedResource: //cloudresourcemanager.googleapis.com/projects/my-project policy: bindings: - members: - user:alex@example.com - user:bola@example.com role: roles/cloudkms.admin - members: - serviceAccount:000000000000-compute@developer.gserviceaccount.com role: roles/editor - attachedResource: //cloudresourcemanager.googleapis.com/folders/000000000000 policy: bindings: - members: - user:cruz@example.com role: roles/resourcemanager.folderAdmin - members: - user:dani@example.com role: roles/resourcemanager.folderEditor - attachedResource: //cloudresourcemanager.googleapis.com/organizations/0000000000000 policy: bindings: - members: - user:hao@example.com role: organizations/0000000000000/roles/CustomProjectAdmin - members: - serviceAccount:000000000000@cloudservices.gserviceaccount.com - user:ira@example.com - user:jie@example.com role: roles/accesscontextmanager.policyAdmin
REST
Método HTTP e URL:
POST https://cloudasset.googleapis.com/v1/SCOPE_PATH/effectiveIamPolicies:batchGet
Solicitar corpo JSON:
{ "names": [ "ASSET_NAME_1", "ASSET_NAME_2", "..." ] }
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 é o nível superior para verificar as políticas de IAM eficazes. -
projects/PROJECT_NUMBER
, em quePROJECT_NUMBER
é o número do projeto que é o nível superior para verificar as políticas de IAM eficazes.Como encontrar um número de projeto Google Cloud
Console doGoogle Cloud
Para encontrar um número de projeto Google Cloud , siga estas etapas:
-
Acesse a página Welcome no console do 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 recuperar um número de projeto 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 é o nível superior para verificar as políticas de IAM eficazes.Como encontrar o ID de uma Google Cloud pasta
Console doGoogle Cloud
Para encontrar o ID de uma pasta Google Cloud , siga estas etapas:
-
Acesse o console do 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 recuperar o ID de uma pasta Google Cloud localizada 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 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 é o nível superior para verificar as políticas de IAM eficazes.Como encontrar o ID de uma Google Cloud organização
Console doGoogle Cloud
Para encontrar o ID de uma organização Google Cloud , siga estas etapas:
-
Acesse o console do 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 recuperar o ID de uma Google Cloud organização com o seguinte comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
ASSET_NAME_#
: uma matriz de nomes completos de recursos.
É possível recuperar políticas para no máximo 20 recursos em um lote.
Consulte a referência REST para conferir todas as opções.
Exemplos de comando
Execute um dos comandos a seguir para conferir as políticas do IAM em vigor na
instância do Compute Engine my-instance
que são herdadas da
organização com o ID my-organization-id
.
Como encontrar o ID de uma Google Cloud organização
Console doGoogle Cloud
Para encontrar o ID de uma organização Google Cloud , siga estas etapas:
-
Acesse o console do 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 recuperar o ID de uma Google Cloud organização com o seguinte comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
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 '{ "names": [ "//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance" ] }' \ https://cloudasset.googleapis.com/v1/organizations/my-organization-id/effectiveIamPolicies:batchGet
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "names": [ "//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance" ] } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/organizations/my-organization-id/effectiveIamPolicies:batchGet" | Select-Object -Expand Content
Exemplo de resposta
{ "policyResults": [ { "fullResourceName": "//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/instance-1", "policies": [ { "attachedResource": "//cloudresourcemanager.googleapis.com/projects/my-project", "policy": { "bindings": [ { "role": "roles/cloudkms.admin", "members": [ "user:alex@example.com", "user:bola@example.com" ] }, { "role": "roles/editor", "members": [ "serviceAccount:000000000000-compute@developer.gserviceaccount.com" ] } ] } }, { "attachedResource": "//cloudresourcemanager.googleapis.com/folders/000000000000", "policy": { "bindings": [ { "role": "roles/resourcemanager.folderAdmin", "members": [ "user:cruz@example.com" ] }, { "role": "roles/resourcemanager.folderEditor", "members": [ "user:dani@example.com" ] } ] } }, { "attachedResource": "//cloudresourcemanager.googleapis.com/organizations/000000000000", "policy": { "bindings": [ { "role": "organizations/1060291660910/roles/CustomProjectAdmin", "members": [ "user:hao@example.com" ] }, { "role": "roles/accesscontextmanager.policyAdmin", "members": [ "serviceAccount:000000000000@cloudservices.gserviceaccount.com", "user:ira@example.com", "user:jie@example.com" ] } ] } } ] } ] }