Gerir consultas guardadas

Esta página mostra como criar, gerir e executar consultas do Analisador de políticas guardadas. Pode criar até 200 consultas guardadas num recurso. Este limite não inclui as consultas guardadas dos respetivos filhos. Por exemplo, se tiver 10 projetos numa organização, cada projeto pode ter até 200 consultas guardadas e a organização pode ter até 200 consultas guardadas.

Antes de começar

  1. Enable the Cloud Asset API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

Funções necessárias

Para receber as autorizações de que precisa para criar e gerir consultas guardadas, peça ao seu administrador que lhe conceda a função IAM Proprietário do Cloud Asset (roles/cloudasset.owner) no projeto, na pasta ou na organização onde vai guardar a sua consulta. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Esta função predefinida contém as autorizações necessárias para criar e gerir consultas guardadas. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:

Autorizações necessárias

As seguintes autorizações são necessárias para criar e gerir consultas guardadas:

  • cloudasset.savedqueries.create
  • cloudasset.savedqueries.delete
  • cloudasset.savedqueries.get
  • cloudasset.savedqueries.list
  • cloudasset.savedqueries.update

Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.

Criar uma consulta guardada

gcloud

Para criar uma consulta do Analisador de políticas guardada num projeto principal, numa pasta ou numa organização, use o comando gcloud asset saved-queries create.

Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:

  • SCOPE_RESOURCE_TYPE_PLURAL: o tipo de recurso ao qual quer restringir a sua pesquisa, no plural. Apenas as políticas de permissão do IAM anexadas a este recurso e aos respetivos descendentes são analisadas. Use o valor projects, folders ou organizations.
  • SCOPE_RESOURCE_ID: o ID do projeto, da pasta ou da organização ao qual quer restringir a sua pesquisa. Google Cloud Apenas são analisadas as políticas de autorização da IAM anexadas a este recurso e aos respetivos descendentes. Os IDs dos projetos são strings alfanuméricas, como my-project. Os IDs das pastas e das organizações são numéricos, como 123456789012.
  • FULL_RESOURCE_NAME: opcional. O nome completo do recurso para o qual quer analisar o acesso. Para ver uma lista de formatos de nomes de recursos completos, consulte o artigo Formato do nome do recurso.
  • PRINCIPAL: opcional. O principal cujo acesso quer analisar, no formato PRINCIPAL_TYPE:ID, por exemplo, user:my-user@example.com. Para ver uma lista completa dos tipos principais, consulte o artigo Identificadores principais.
  • PERMISSION_1, PERMISSION_2... PERMISSION_N: opcional. As autorizações que quer verificar, por exemplo, compute.instances.get. Se listar várias autorizações, o Analisador de políticas verifica se alguma das autorizações indicadas está presente.
  • QUERY_ID: o ID a usar para a consulta guardada, que tem de ser exclusivo no recurso principal especificado (projeto, pasta ou organização). Pode usar letras, números e hífenes no ID da consulta.
  • RESOURCE_TYPE: o tipo de recurso para o qual quer guardar uma consulta. Use o valor project, folder ou organization.
  • RESOURCE_ID: o ID do Google Cloud projeto, da pasta ou da organização para a qual quer guardar uma consulta. Os IDs dos projetos podem ser alfanuméricos ou numéricos. Os IDs das pastas e das organizações são numéricos.
  • LABEL_KEY e LABEL_VALUE: opcional. Uma lista separada por vírgulas de pares de chave/valor a anexar à consulta, que podem ser usados em operações de pesquisa e de lista. Pode incluir até 10 etiquetas para cada consulta guardada.
  • DESCRIPTION: opcional. Uma string que descreve a consulta.

Guarde o seguinte conteúdo num ficheiro denominado request.json:

{
  "IamPolicyAnalysisQuery": {
    "scope": "SCOPE_RESOURCE_TYPE_PLURAL/SCOPE_RESOURCE_ID",
    "resourceSelector": {
      "fullResourceName": "FULL_RESOURCE_NAME"
    },
    "identitySelector": {
      "identity": "PRINCIPAL"
    },
    "accessSelector": {
      "permissions": [
        "PERMISSION_1",
        "PERMISSION_2",
        "PERMISSION_N"
      ]
    }
  }
}

Execute o seguinte comando:

Linux, macOS ou Cloud Shell

gcloud asset saved-queries create \
QUERY_ID \
--RESOURCE_TYPE=RESOURCE_ID \
--query-file-path=request.json \
--labels="LABEL_KEY=LABEL_VALUE" \
--description="DESCRIPTION"

Windows (PowerShell)

gcloud asset saved-queries create `
QUERY_ID `
--RESOURCE_TYPE=RESOURCE_ID `
--query-file-path=request.json `
--labels="LABEL_KEY=LABEL_VALUE" `
--description="DESCRIPTION"

Windows (cmd.exe)

gcloud asset saved-queries create ^
QUERY_ID ^
--RESOURCE_TYPE=RESOURCE_ID ^
--query-file-path=request.json ^
--labels="LABEL_KEY=LABEL_VALUE" ^
--description="DESCRIPTION"

A resposta contém a consulta guardada. Por exemplo, pode ter o seguinte aspeto:

content:
  iamPolicyAnalysisQuery:
    resourceSelector:
      fullResourceName: //cloudresourcemanager.googleapis.com/projects/my-project
    identitySelector:
      identity: user:my-user@example.com
    scope: projects/scope-project
createTime: '2022-04-18T22:47:25.640783Z'
description: A query checking what permissions my-user@example.com has on my-project
labels:
  user: my-user
lastUpdateTime: '2022-04-18T22:47:25.640783Z'
name: projects/12345678901/savedQueries/my-query

REST

Para criar uma consulta do Analisador de políticas guardada num projeto principal, numa pasta ou numa organização, use o método savedQueries.create da API Cloud Asset Inventory.

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • RESOURCE_TYPE: o tipo de recurso para o qual quer guardar uma consulta. Use o valor projects, folders ou organizations.
  • RESOURCE_ID: o ID do Google Cloud projeto, da pasta ou da organização para a qual quer guardar uma consulta. Os IDs dos projetos podem ser alfanuméricos ou numéricos. Os IDs das pastas e das organizações são numéricos.
  • QUERY_ID: o ID a usar para a consulta guardada, que tem de ser exclusivo no recurso principal especificado (projeto, pasta ou organização). Pode usar letras, números e hífenes no ID da consulta.
  • SCOPE_RESOURCE_TYPE: o tipo de recurso ao qual quer restringir a sua pesquisa. Apenas as políticas de permissão do IAM anexadas a este recurso e aos respetivos descendentes são analisadas. Use o valor projects, folders ou organizations.
  • SCOPE_RESOURCE_ID: o ID do projeto, da pasta ou da organização ao qual quer restringir a sua pesquisa. Google Cloud Apenas são analisadas as políticas de autorização da IAM anexadas a este recurso e aos respetivos descendentes. Os IDs dos projetos são strings alfanuméricas, como my-project. Os IDs das pastas e das organizações são numéricos, como 123456789012.
  • FULL_RESOURCE_NAME: opcional. O nome completo do recurso para o qual quer analisar o acesso. Para ver uma lista de formatos de nomes de recursos completos, consulte o artigo Formato do nome do recurso.
  • PRINCIPAL: opcional. O principal cujo acesso quer analisar, no formato PRINCIPAL_TYPE:ID, por exemplo, user:my-user@example.com. Para ver uma lista completa dos tipos principais, consulte o artigo Identificadores principais.
  • PERMISSION_1, PERMISSION_2... PERMISSION_N: opcional. As autorizações que quer verificar, por exemplo, compute.instances.get. Se listar várias autorizações, o Analisador de políticas verifica se alguma das autorizações indicadas está presente.
  • LABEL_KEY e LABEL_VALUE: opcional. Um par de chave/valor a anexar à consulta, que pode ser usado em operações de pesquisa e de lista. Pode incluir até 10 etiquetas para cada consulta guardada.
  • DESCRIPTION: opcional. Uma string que descreve a consulta.

Método HTTP e URL:

POST https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/savedQueries?savedQueryId=QUERY_ID

Corpo JSON do pedido:

{
  "content": {
    "iamPolicyAnalysisQuery": {
      "scope": "SCOPE_RESOURCE_TYPE/SCOPE_RESOURCE_ID",
      "resourceSelector": {
        "fullResourceName": "FULL_RESOURCE_NAME"
      },
      "identitySelector": {
        "identity": "PRINCIPAL"
      },
      "accessSelector": {
        "permissions": [
          "PERMISSION_1",
          "PERMISSION_2",
          "PERMISSION_N"
        ]
      }
    }
  },
  "labels": {
    "LABEL_KEY": "LABEL_VALUE"
  },
  "description": "DESCRIPTION"
}

Para enviar o seu pedido, expanda uma destas opções:

A resposta contém a consulta guardada. Por exemplo, pode ter o seguinte aspeto:

{
  "name": "projects/12345678901/savedQueries/my-query",
  "description": "A query checking what permissions my-user@example.com has on my-project",
  "createTime": "2022-04-18T22:47:25.640783Z",
  "lastUpdateTime": "2022-04-18T22:47:25.640783Z",
  "labels": {
    "user": "my-user"
  },
  "content": {
    "iamPolicyAnalysisQuery": {
      "scope": "projects/scope-project",
      "resourceSelector": {
        "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project"
      },
      "identitySelector": {
        "identity": "user:my-user@example.com"
      }
    }
  }
}

Execute uma consulta guardada

gcloud

Para executar uma consulta de análise guardada, use o comando gcloud asset analyze-iam-policy.

Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:

  • SCOPE_RESOURCE_TYPE: o tipo de recurso ao qual quer restringir a sua pesquisa. Apenas as políticas de permissão do IAM anexadas a este recurso e aos respetivos descendentes são analisadas. Use o valor project, folder ou organization.
  • SCOPE_RESOURCE_ID: o ID do projeto, da pasta ou da organização que quer usar como âmbito da pesquisa. Google Cloud Apenas são analisadas as políticas de autorização da IAM anexadas a este recurso e aos respetivos descendentes. Os IDs dos projetos são strings alfanuméricas, como my-project. Os IDs das pastas e das organizações são numéricos, como 123456789012.
  • RESOURCE_TYPE_PLURAL: o tipo de recurso onde a consulta é guardada. Use o valor projects, folders ou organizations.
  • RESOURCE_NUM_ID: o ID numérico do Google Cloud projeto, da pasta ou da organização onde a consulta está guardada. Não pode usar o ID do projeto alfanumérico para identificar um projeto. Tem de usar o número do projeto.
  • QUERY_ID: o ID da consulta guardada que quer usar.

Execute o comando gcloud asset analyze-iam-policy:

Linux, macOS ou Cloud Shell

gcloud asset analyze-iam-policy \
--SCOPE_RESOURCE_TYPE=SCOPE_RESOURCE_ID \
--saved-analysis-query=RESOURCE_TYPE_PLURAL/RESOURCE_NUM_ID/savedQueries/QUERY_ID

Windows (PowerShell)

gcloud asset analyze-iam-policy `
--SCOPE_RESOURCE_TYPE=SCOPE_RESOURCE_ID `
--saved-analysis-query=RESOURCE_TYPE_PLURAL/RESOURCE_NUM_ID/savedQueries/QUERY_ID

Windows (cmd.exe)

gcloud asset analyze-iam-policy ^
--SCOPE_RESOURCE_TYPE=SCOPE_RESOURCE_ID ^
--saved-analysis-query=RESOURCE_TYPE_PLURAL/RESOURCE_NUM_ID/savedQueries/QUERY_ID

A resposta contém os resultados da execução da consulta guardada no recurso especificado. Para ver exemplos de resultados de consultas, consulte o artigo Analise as políticas de IAM.

REST

Para executar uma consulta de análise guardada, use o método analyzeIamPolicy da API Cloud Asset Inventory.

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • SCOPE_RESOURCE_TYPE: o tipo de recurso ao qual quer restringir a sua pesquisa. Apenas as políticas de permissão do IAM anexadas a este recurso e aos respetivos descendentes são analisadas. Use o valor projects, folders ou organizations.
  • SCOPE_RESOURCE_ID: o ID do projeto, da pasta ou da organização que quer usar como âmbito da pesquisa. Google Cloud Apenas são analisadas as políticas de permissão da IAM anexadas a este recurso e aos respetivos descendentes. Os IDs dos projetos são strings alfanuméricas, como my-project. Os IDs das pastas e das organizações são numéricos, como 123456789012.
  • RESOURCE_TYPE: o tipo de recurso onde a consulta é guardada. Use o valor projects, folders ou organizations.
  • RESOURCE_NUM_ID: o ID numérico do Google Cloud projeto, da pasta ou da organização onde a consulta está guardada. Não pode usar o ID do projeto alfanumérico para identificar um projeto. Tem de usar o número do projeto.
  • QUERY_ID: o ID da consulta guardada que quer usar.

Método HTTP e URL:

POST https://cloudasset.googleapis.com/v1/SCOPE_RESOURCE_TYPE/SCOPE_RESOURCE_ID:analyzeIamPolicy

Corpo JSON do pedido:

{
  "savedAnalysisQuery": "RESOURCE_TYPE/RESOURCE_NUM_ID/savedQueries/QUERY_ID"
}

Para enviar o seu pedido, expanda uma destas opções:

A resposta contém os resultados da execução da consulta guardada no recurso especificado. Para ver exemplos de resultados de consultas, consulte o artigo Analise as políticas de IAM.

Obtenha uma consulta guardada

gcloud

Para obter uma consulta do Analisador de políticas guardada, use o comando gcloud asset saved-queries get.

Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:

  • QUERY_ID: o ID da consulta guardada que quer obter.
  • RESOURCE_TYPE: o tipo de recurso onde a consulta é guardada. Use o valor project, folder ou organization.
  • RESOURCE_ID: o ID do Google Cloud projeto, da pasta ou da organização onde a consulta está guardada. Os IDs dos projetos podem ser alfanuméricos ou numéricos. Os IDs das pastas e das organizações são numéricos.

Execute o seguinte comando:

Linux, macOS ou Cloud Shell

gcloud asset saved-queries describe QUERY_ID --RESOURCE_TYPE=RESOURCE_NUM_ID

Windows (PowerShell)

gcloud asset saved-queries describe QUERY_ID --RESOURCE_TYPE=RESOURCE_NUM_ID

Windows (cmd.exe)

gcloud asset saved-queries describe QUERY_ID --RESOURCE_TYPE=RESOURCE_NUM_ID

A resposta contém a consulta guardada. Por exemplo, pode ter o seguinte aspeto:

content:
  iamPolicyAnalysisQuery:
    resourceSelector:
      fullResourceName: //cloudresourcemanager.googleapis.com/projects/my-project
    identitySelector:
      identity: user:my-user@example.com
    scope: projects/scope-project
createTime: 2022-04-18T22:47:25.640783Z
description: A query checking what permissions my-user@example.com has on my-project
labels:
  user: my-user
lastUpdateTime: 2022-04-18T22:47:25.640783Z
name: projects/12345678901/savedQueries/my-query

REST

Para obter uma consulta guardada do Policy Analyzer, use o método savedQueries.get da API Cloud Asset Inventory.

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • RESOURCE_TYPE: o tipo de recurso onde a consulta é guardada. Use o valor projects, folders ou organizations.
  • RESOURCE_NUM_ID: o ID numérico do Google Cloud projeto, da pasta ou da organização onde a consulta está guardada. Não pode usar o ID do projeto alfanumérico para identificar um projeto. Tem de usar o número do projeto.
  • QUERY_ID: o ID da consulta guardada que quer obter.

Método HTTP e URL:

GET https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_NUM_ID/savedQueries/QUERY_ID

Para enviar o seu pedido, expanda uma destas opções:

A resposta contém a consulta guardada. Por exemplo, pode ter o seguinte aspeto:

{
  "name": "projects/12345678901/savedQueries/my-query",
  "description": "A query checking what permissions my-user@example.com has on my-project",
  "createTime": "2022-04-18T22:47:25.640783Z",
  "lastUpdateTime": "2022-04-18T22:47:25.640783Z",
  "labels": {
    "user": "my-user"
  },
  "content": {
    "iamPolicyAnalysisQuery": {
      "scope": "projects/scope-project",
      "resourceSelector": {
        "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project"
      },
      "identitySelector": {
        "identity": "user:my-user@example.com"
      }
    }
  }
}

Liste as consultas guardadas

gcloud

Para listar todas as consultas do Analisador de políticas guardadas num projeto, numa pasta ou numa organização, use o comando gcloud asset saved-queries list.

Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:

  • RESOURCE_TYPE: o tipo de recurso onde as consultas são guardadas. Use o valor project, folder ou organization.
  • RESOURCE_ID: O ID do Google Cloud projeto, da pasta ou da organização para a qual quer listar as consultas guardadas. Os IDs dos projetos podem ser alfanuméricos ou numéricos. Os IDs das pastas e das organizações são numéricos.

Execute o seguinte comando:

Linux, macOS ou Cloud Shell