Este tópico mostra como conferir as políticas de gerenciamento de identidade e acesso (IAM) em um determinado recurso.
No IAM, política efetiva descreve como todas as políticas pai e ancestral na hierarquia de recursos são herdadas por um recurso.
Escopo e permissões
Ao solicitar políticas do IAM em vigor, você precisa especificar um escopo. Pode ser uma organização, uma pasta ou um projeto. Todo o IAM políticas definidas nele ou sob esse escopo são retornadas. O escopo da solicitação não não precisa ser igual ao projeto ativado para a API Cloud Asset. Além disso, o projeto ativado e o escopo de solicitação exigem permissões diferentes.
Tipos de políticas compatíveis
As políticas do IAM em vigor só oferecem suporte a políticas de permissão do IAM. Ele não é compatível com as formas de acesso a seguir controle:
Antes de começar
Antes de começar, conclua as etapas a seguir.
Ative a API Cloud Asset Inventory no seu projeto.
Ativar a API Cloud Asset Inventory
Este projeto não precisa ser igual ao escopo das suas solicitações. Saiba mais sobre a configuração de um projeto ao ativar um serviço.
Instale o Google Cloud SDK.
Opcional: para chamar a API Cloud Asset Inventory diretamente, verifique se você acesso ao comando
curl
.Defina as permissões.
Configure as permissões da API Cloud Asset.
Ative as seguintes permissões para o escopo da solicitação.
cloudasset.assets.analyzeIamPolicy
cloudasset.assets.searchAllResources
cloudasset.assets.searchAllIamPolicies
Essas permissões estão incluídas nos seguintes papéis predefinidos:
Proprietário de recursos do Cloud (
roles/cloudasset.owner
)Leitor de recursos do Cloud (
roles/cloudasset.viewer
)
Para mais informações sobre as permissões e papéis da API Cloud Asset, consulte Controle de acesso.
Acessar políticas do IAM em vigor
gcloud
Para conseguir as políticas do IAM em vigor em um recurso, chame
BatchGetEffectiveIamPolicies
usando a interface gcloud asset get-effective-iam-policy
kubectl. É necessário usar a CLI do Google Cloud versão 399.0.0
ou mais recente.
gcloud asset get-effective-iam-policy \
--scope=SCOPE \
--names=ASSET_NAME_1,ASSET_NAME_2,...
Forneça os valores a seguir:
SCOPE
: um escopo pode ser um projeto, uma pasta ou uma organização.Os valores permitidos são:
projects/PROJECT_ID
projects/PROJECT_NUMBER
Como encontrar um número de projeto do Google Cloud
Console
Para encontrar um número de projeto do Google Cloud, siga estas etapas:
-
Acesse a página Painel no console do Google Cloud.
- Clique na caixa do seletor na barra de menus.
- Selecione sua organização na caixa Selecionar de e pesquise o nome do projeto.
- Clique no nome do projeto para alternar para ele. O número do projeto é mostrado Card Informações do projeto.
CLI da gcloud
Recupere um número de projeto do Google Cloud com o seguinte comando:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
folders/FOLDER_ID
Como encontrar um ID de pasta do Google Cloud
Console
Para encontrar um ID de pasta do Google Cloud, siga estas etapas:
-
Acesse o console do Google Cloud.
- Clique na caixa Alternador na barra de menus.
- Clique na caixa Selecionar de e escolha a organização.
- Pesquise o nome da sua pasta. O ID da pasta é mostrado ao lado do nome dela.
CLI da gcloud
Para recuperar um ID de pasta do Google Cloud localizado 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 pode ser uma correspondência de string completa ou parcial. Remova o A opção
--format
para mais informações sobre as pastas encontradas.Para receber o ID de uma pasta dentro de outra, liste as subpastas:
gcloud resource-manager folders list --folder=FOLDER_ID
-
organizations/ORGANIZATION_ID
Como encontrar um ID de organização do Google Cloud
Console
Para encontrar um ID de organização do Google Cloud, siga estas etapas:
-
Acesse o console do Google Cloud.
- Clique na caixa Alternador na barra de menus.
- Clique na caixa Selecionar de e escolha a organização.
- Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.
CLI da gcloud
É possível recuperar um ID de organização do Google Cloud com o seguinte comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
ASSET_NAME
: uma lista de recursos separada por vírgulas nomes completos para recuperar o políticas do IAM efetivas.Você pode recuperar políticas para um máximo de 20 recursos em um lote.
Os exemplos de código a seguir são exemplos de comandos da CLI gcloud
:
No caso de um ID de organização
123456
:gcloud asset get-effective-iam-policy \ --scope=organizations/123456 \ --names=//cloudresourcemanager.googleapis.com/organizations/123456
Para um ID de pasta de
1234567
:gcloud asset get-effective-iam-policy \ --scope=folders/1234567 \ --names=//cloudresourcemanager.googleapis.com/folders/1234567
Para dois recursos da instância do Cloud SQL em um projeto chamado
my-project
:gcloud asset get-effective-iam-policy \ --scope=projects/my-project \ --names=//cloudsql.googleapis.com/projects/my-project/instances/instance1,//cloudsql.googleapis.com/projects/my-project/instances/instance2
REST
Para conseguir as políticas do IAM em vigor em um recurso usando o
API Cloud Asset Inventory, use o seguinte comando curl
:
curl -X POST \
-H "X-HTTP-Method-Override: GET" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"names": [
"ASSET_NAME_1",
"ASSET_NAME_2",
"..."
]
}' \
https://cloudasset.googleapis.com/v1/SCOPE/effectiveIamPolicies:batchGet
Forneça os valores a seguir:
ASSET_NAME
: uma lista separada por vírgulas de nomes completos de recursos para extrair as políticas de IAM em vigor.É possível recuperar políticas para no máximo 20 recursos em um lote.
SCOPE
: um escopo pode ser um projeto, uma pasta ou organização.Os valores permitidos são:
projects/PROJECT_ID
projects/PROJECT_NUMBER
Como encontrar um número de projeto do Google Cloud
Console
Para encontrar um número de projeto do Google Cloud, siga estas etapas:
-
Acesse a página Painel no console do Google Cloud.
- Clique na caixa do seletor na barra de menus.
- Selecione sua organização na caixa Selecionar de e pesquise o nome do projeto.
- Clique no nome do projeto para alternar para ele. O número do projeto é mostrado Card Informações do projeto.
CLI da gcloud
Recupere um número de projeto do Google Cloud com o seguinte comando:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
folders/FOLDER_ID
Como encontrar um ID de pasta do Google Cloud
Console
Para encontrar um ID de pasta do Google Cloud, siga estas etapas:
-
Acesse o console do Google Cloud.
- Clique na caixa do seletor na barra de menus.
- Clique na caixa Selecionar de e escolha a organização.
- Pesquise o nome da sua pasta. O ID da pasta é mostrado ao lado do nome dela.
CLI da gcloud
Para recuperar um ID de pasta do Google Cloud localizado 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 pode ser uma correspondência de string completa ou parcial. Remova o A opção
--format
para mais informações sobre as pastas encontradas.Para receber o ID de uma pasta dentro de outra, liste as subpastas:
gcloud resource-manager folders list --folder=FOLDER_ID
-
organizations/ORGANIZATION_ID
Como encontrar um ID de organização do Google Cloud
Console
Para encontrar um ID de organização do Google Cloud, siga estas etapas:
-
Acesse o console do Google Cloud.
- Clique na caixa Alternador na barra de menus.
- Clique na caixa Selecionar de e escolha a organização.
- Selecione a guia Todos. O ID da organização aparece ao lado do nome dela.
CLI da gcloud
É possível recuperar um ID de organização do Google Cloud com o seguinte comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-