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 são compatíveis com a recuperação 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 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.
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 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 é o nível superior para verificar as políticas de IAM eficazes.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 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 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))"
-
-
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 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 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 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 é o nível superior para verificar as políticas de IAM eficazes.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 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 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))"
-
-
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 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))"
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" ] } ] } } ] } ] }