Como ver as políticas do IAM em vigor

Este tópico mostra como conferir as políticas de gerenciamento de identidade e acesso (IAM) em um determinado recurso.

No IAM, a política efetiva descreve como todas as políticas pai e ancestrais na hierarquia de recursos são herdadas para um recurso.

Escopo e permissões

Ao solicitar políticas do IAM efetivas, você deve especificar uma do projeto. Pode ser uma organização, uma pasta ou um projeto. Todo o IAM políticas definidas nele ou sob esse escopo serão retornadas. O escopo da solicitação não precisa ser o mesmo do 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 efetivas do IAM só oferecem suporte a permissões .. Ele não é compatível com as seguintes formas de controle de acesso:

Antes de começar

Antes de começar, conclua as etapas a seguir.

  1. 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.

  2. Instale o Google Cloud SDK.

  3. Opcional: para chamar a API Cloud Asset Inventory diretamente, verifique se você acesso ao comando curl.

  4. Defina as permissões.

    1. Configure as permissões da API Cloud Asset.

    2. Ative as permissões a seguir para o escopo da sua 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.

Receber políticas do IAM efetivas

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. Você precisa executar o Google Cloud CLI 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 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:

      1. Acesse a página Painel no console do Google Cloud.

        Ir para o painel

      2. Clique na caixa Alternador na barra de menus.
      3. Escolha sua organização na caixa Selecionar de e pesquise as nome do projeto.
      4. Clique no nome do projeto para alternar para ele. O número do projeto aparece no card Informações do projeto.

      CLI da gcloud

      É possível recuperar 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:

      1. Acesse o console do Google Cloud.

        Acesse o console do Google Cloud.

      2. Clique na caixa do seletor na barra de menus.
      3. Clique na caixa Selecionar de e escolha sua organização.
      4. Pesquise o nome da sua pasta. O ID da pasta é mostrado ao lado do nome dela.

      CLI da gcloud

      É possível recuperar um ID de pasta do Google Cloud localizado 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 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 conferir o ID de uma pasta em 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:

      1. Acesse o console do Google Cloud.

        Acesse o console do Google Cloud.

      2. Clique na caixa do seletor na barra de menus.
      3. Clique na caixa Selecionar de e escolha sua organização.
      4. Selecione a guia Todos. O ID é mostrado ao lado do nome da organização.

      CLI da gcloud

      Recupere um ID da 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:

  • Para um ID da organização de 123456:

    gcloud asset get-effective-iam-policy \
        --scope=organizations/123456 \
        --names=//cloudresourcemanager.googleapis.com/organizations/123456
    
  • Para um ID de pasta 1234567:

    gcloud asset get-effective-iam-policy \
        --scope=folders/1234567 \
        --names=//cloudresourcemanager.googleapis.com/folders/1234567
    
  • Para dois recursos de 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:

      1. Acesse a página Painel no console do Google Cloud.

        Ir para o painel

      2. Clique na caixa do seletor na barra de menus.
      3. Escolha sua organização na caixa Selecionar de e pesquise as nome do projeto.
      4. Clique no nome do projeto para alternar para ele. O número do projeto aparece no card Informações do projeto.

      CLI da gcloud

      É possível recuperar 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:

      1. Acesse o console do Google Cloud.

        Acesse o console do Google Cloud.

      2. Clique na caixa Alternador na barra de menus.
      3. Clique na caixa Selecionar de e escolha sua organização.
      4. Pesquise o nome da sua pasta. O ID da pasta é mostrado ao lado do nome dela.

      CLI da gcloud

      É possível recuperar um ID de pasta do Google Cloud localizado 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 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 conferir o ID de uma pasta em 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:

      1. Acesse o console do Google Cloud.

        Acesse o console do Google Cloud.

      2. Clique na caixa Alternador na barra de menus.
      3. Clique na caixa Selecionar de e escolha sua organização.
      4. Selecione a guia Todos. O ID é mostrado ao lado do nome da organização.

      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))"