Administrar consultas guardadas

En esta página, se muestra cómo crear, administrar y ejecutar consultas del Analizador de políticas guardadas. Puedes crear hasta 200 consultas guardadas en un recurso. Este límite no incluye las consultas guardadas de sus elementos secundarios. Por ejemplo, si tienes 10 proyectos en una organización, cada proyecto puede tener hasta 200 consultas guardadas, y la organización puede tener hasta 200 consultas guardadas.

Antes de comenzar

  1. Habilita Cloud Asset API.

    Habilita la API

Funciones requeridas

Si deseas obtener los permisos que necesitas para crear y administrar consultas guardadas, pídele a tu administrador que te otorgue la función de IAM propietario de Cloud Asset (roles/cloudasset.owner) en el proyecto, la carpeta o la organización en la que guardarás la consulta. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.

Este rol predefinido contiene los permisos necesarios para crear y administrar consultas guardadas. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

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

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Ingresar un nombre para la consulta

Para crear una consulta guardada con el Analizador de políticas en una organización, carpeta o proyecto superior, usa el método savedQueries.create de la API de Cloud Asset Inventory.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • RESOURCE_TYPE: Es el tipo de recurso del que deseas guardar una consulta. Usa los valores projects, folders o organizations.
  • RESOURCE_ID: El ID del proyecto, la carpeta o la organización de Google Cloud para el que deseas guardar una consulta. Los ID de proyectos pueden ser alfanuméricos o numéricos. Los ID de carpeta y de organización son numéricos.
  • QUERY_ID: El ID que se usará para la consulta guardada, que debe ser única en el recurso superior especificado (proyecto, carpeta o organización). Puedes usar letras, números y guiones en el ID de la consulta.
  • SCOPE_RESOURCE_TYPE: Es el tipo de recurso al que deseas definir el alcance de la búsqueda. Solo se analizarán las políticas de IAM permitidas para este recurso y sus descendientes. Usa los valores projects, folders o organizations.
  • SCOPE_RESOURCE_ID: El ID del proyecto, la carpeta o la organización de Google Cloud en la que deseas establecer el alcance de la búsqueda. Solo se analizarán las políticas de IAM permitidas para este recurso y a sus descendientes. Los ID del proyecto son strings alfanuméricas, como my-project. Los ID de carpetas y de organizaciones son numéricos, como 123456789012.
  • FULL_RESOURCE_NAME: Opcional. El nombre completo del recurso para el que deseas analizar el acceso. Para obtener una lista de los formatos de nombres de recursos completos, consulta Formato de nombres de recursos.
  • PRINCIPAL: Opcional. La principal cuyo acceso deseas analizar, en el formato PRINCIPAL_TYPE:ID, por ejemplo, user:my-user@example.com Para obtener una lista completa de los tipos principales, consulta Identificadores principales.
  • PERMISSION_1, PERMISSION_2... PERMISSION_N: Opcional. Los permisos que deseas verificar, por ejemplo, compute.instances.get Si enumeras varios permisos, el Analizador de políticas verificará cualquiera de los permisos enumerados.
  • LABEL_KEY y LABEL_VALUE: Son un par clave-valor para adjuntar a la consulta, que se puede usar en las operaciones de búsqueda y lista. Puedes incluir hasta 10 etiquetas por cada consulta guardada.
  • DESCRIPTION: Es una string que describe la consulta.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

{
  "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 tu solicitud, expande una de estas opciones:

La respuesta contiene la consulta guardada. Por ejemplo, podría verse de la siguiente manera:

{
  "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"
      }
    }
  }
}

Ejecuta una consulta guardada

Para ejecutar una consulta de análisis guardada, usa el método analyzeIamPolicy de la API de Cloud Asset Inventory.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • SCOPE_RESOURCE_TYPE: Es el tipo de recurso al que deseas definir el alcance de la búsqueda. Solo se analizarán las políticas de IAM permitidas para este recurso y sus descendientes. Usa los valores projects, folders o organizations.
  • SCOPE_RESOURCE_ID: El ID del proyecto, la carpeta o la organización de Google Cloud en la que deseas establecer el alcance de la búsqueda. Solo se analizarán las políticas de IAM permitidas para este recurso y a sus descendientes. Los ID del proyecto son strings alfanuméricas, como my-project. Los ID de carpetas y de organizaciones son numéricos, como 123456789012.
  • RESOURCE_TYPE: El tipo de recurso en el que se guarda la consulta. Usa los valores projects, folders o organizations.
  • RESOURCE_NUM_ID: El ID numérico del proyecto, la carpeta o la organización de Google Cloud en los que se guardó la consulta. No puedes usar el ID de proyecto alfanumérico para identificar un proyecto. Debes usar el número de proyecto.
  • QUERY_ID: El ID de la consulta guardada que deseas usar.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

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

Para enviar tu solicitud, expande una de estas opciones:

La respuesta contiene los resultados de la ejecución de la consulta guardada en el recurso especificado. Para ver ejemplos de resultados de consultas, lee Analiza políticas de IAM.

Obtén una consulta guardada

Para obtener una consulta del analizador de políticas guardada, usa el método savedQueries.get de la API de Cloud Asset Inventory.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • RESOURCE_TYPE: El tipo de recurso en el que se guarda la consulta. Usa los valores projects, folders o organizations.
  • RESOURCE_NUM_ID: El ID numérico del proyecto, la carpeta o la organización de Google Cloud en los que se guardó la consulta. No puedes usar el ID de proyecto alfanumérico para identificar un proyecto. Debes usar el número de proyecto.
  • QUERY_ID: El ID de la consulta guardada que deseas obtener.

Método HTTP y URL:

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

Para enviar tu solicitud, expande una de estas opciones:

La respuesta contiene la consulta guardada. Por ejemplo, podría verse de la siguiente manera:

{
  "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"
      }
    }
  }
}

Enumera las consultas guardadas

Para enumerar todas las consultas del analizador de políticas guardadas en una organización, carpeta o proyecto, usa el método savedQueries.list de la API de Cloud Asset Inventory.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • RESOURCE_TYPE: El tipo de recurso en el que se guardan las consultas. Usa los valores projects, folders o organizations.
  • RESOURCE_ID: El ID del proyecto, la carpeta o la organización de Google Cloud para el que deseas guardar una consulta. Los ID de proyectos pueden ser alfanuméricos o numéricos. Los ID de carpeta y de organización son numéricos.

Método HTTP y URL:

GET https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/savedQueries

Para enviar tu solicitud, expande una de estas opciones:

La respuesta contiene todas las consultas del Analizador de políticas guardadas para el proyecto, la carpeta o la organización. Por ejemplo, podría verse de la siguiente manera:

{
  "savedQueries": [
    {
      "name": "projects/12345678901/savedQueries/query-1",
      "description": "A query checking what permissions my-user@example.com has on my-project",
      "createTime": "2022-04-15T21:17:33.777212Z",
      "lastUpdateTime": "2022-04-15T21:17:33.777212Z",
      "labels": {
        "missing-info": "permission"
      },
      "content": {
        "iamPolicyAnalysisQuery": {
          "scope": "projects/scope-project",
          "resourceSelector": {
            "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/my-project"
          },
          "identitySelector": {
            "identity": "user:my-user@example.com"
          }
        }
      }
    },
    {
      "name": "projects/12345678901/savedQueries/query-2",
      "description": "A query checking what resources my-user@example.com has permission to view roles on",
      "createTime": "2022-04-18T22:47:25.640783Z",
      "lastUpdateTime": "2022-04-18T22:47:25.640783Z",
      "labels": {
        "missing-info": "resource"
      },
      "content": {
        "iamPolicyAnalysisQuery": {
          "scope": "projects/scope-project",
          "accessSelector": {
            "permissions": [
              "iam.roles.get",
              "iam.roles.list"
            ]
          },
          "identitySelector": {
            "identity": "user:my-user@example.com"
          }
        }
      }
    }
  ]
}

Actualiza una consulta guardada

Para actualizar una consulta guardada del Analizador de políticas, usa el método savedQueries.patch de la API de Cloud Asset Inventory.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • RESOURCE_TYPE: El tipo de recurso en el que se guarda la consulta. Usa los valores projects, folders o organizations.
  • RESOURCE_NUM_ID: El ID numérico del proyecto, la carpeta o la organización de Google Cloud en los que se guardó la consulta. No puedes usar el ID de proyecto alfanumérico para identificar un proyecto. Debes usar el número de proyecto.
  • QUERY_ID: El ID de la consulta guardada que deseas editar.
  • UPDATED_FIELDS: Es una lista separada por comas de los campos que deseas actualizar. Por ejemplo, si actualizas los campos de contenido, etiquetas y descripción, debes usar el valor content,labels,description.
  • UPDATED_QUERY: Opcional. La consulta actualizada del Analizador de políticas que deseas guardar. Si deseas obtener información sobre cómo dar formato a la consulta, visita Cómo crear una consulta guardada.
  • UPDATED_LABELS: Opcional. Las etiquetas actualizadas que deseas adjuntar a la consulta guardada.
  • UPDATED_DESCRIPTION: Opcional. Descripción actualizada de la consulta guardada.

Método HTTP y URL:

POST https://cloudasset.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_NUM_ID/savedQueries/QUERY_ID?update_mask=UPDATED_FIELDS

Cuerpo JSON de la solicitud:

{
  "content": {
    "iamPolicyAnalysisQuery": {
      UPDATED_QUERY
  },
  "labels": {
    UPDATED_LABELS
  },
  "description": "UPDATED_DESCRIPTION"
}

Para enviar tu solicitud, expande una de estas opciones:

La respuesta contiene la consulta actualizada.

Borra una consulta guardada

Para borrar una consulta del analizador de políticas guardada, usa el método savedQueries.delete de la API de Cloud Asset Inventory.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • RESOURCE_TYPE: El tipo de recurso en el que se guarda la consulta. Usa los valores projects, folders o organizations.
  • RESOURCE_NUM_ID: El ID numérico del proyecto, la carpeta o la organización de Google Cloud en los que se guardó la consulta. No puedes usar el ID de proyecto alfanumérico para identificar un proyecto. Debes usar el número de proyecto.
  • QUERY_ID: El ID de la consulta guardada que deseas borrar.

Método HTTP y URL:

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

Para enviar tu solicitud, expande una de estas opciones:

Si la consulta se borra correctamente, la API muestra una respuesta vacía.