Supervisar cambios en los recursos

En esta página, se explica cómo crear y administrar feeds en un proyecto.

Descripción general

Para recibir notificaciones en tiempo real sobre cambios en recursos y políticas, puedes crear un feed y suscribirte a él. Cuando configuras el feed, puedes especificar que deseas supervisar los cambios de los tipos de recursos, las políticas de IAM, las políticas de acceso y las políticas de la organización admitidos en una organización, carpeta o proyecto. Además, puedes agregar condiciones a tu feed para que solo recibas notificaciones de ciertos tipos de cambios en un recurso. Después de configurar el feed, recibirás de inmediato notificaciones cada vez que se modifiquen los elementos especificados, que se envían a través de Pub/Sub (con el formato TemporalAsset). Las notificaciones en tiempo real se conectan a tus cargas de trabajo existentes. Con esta funcionalidad, puedes combinar acciones como crear una Cloud Function para revertir un cambio de recurso después de que se detectó.

Antes de comenzar

Antes de comenzar, completa los pasos que se indican a continuación.

  1. Habilita la API de Cloud Asset Inventory en el proyecto en el que ejecutarás los comandos de la API.

    Habilitar la API de Cloud Asset Inventory

  2. Configura los permisos necesarios para llamar a la API de Cloud Asset Inventory mediante la CLI de gcloud o la API.

  3. Completa los siguientes pasos para configurar el entorno.

    gcloud CLI

    Si quieres configurar tu entorno para usar gcloud CLI y llamar a la API de Cloud Asset Inventory, instala Google Cloud CLI en tu cliente local.

    REST

    Si deseas configurar tu entorno para llamar a la API de Cloud Asset Inventory con el comando curl, completa los siguientes pasos.

    1. Confirma que tienes acceso al comando curl.

    2. Asegúrate de otorgar a tu cuenta uno de los siguientes roles en tu proyecto, organización o carpeta.

      • Función de visualizador de Cloud Asset (roles/cloudasset.viewer)

      • Función básica de propietario (roles/owner)

  4. Otorga a tu usuario o cuenta de servicio permisos para llamar a la API de los feeds en tiempo real. Se necesitan los siguientes permisos para cada operación:

    Permiso Descripción
    cloudasset.feeds.create
    cloudasset.assets.exportResource
    Crea feeds
    cloudasset.feeds.update
    cloudasset.assets.exportResource
    Actualiza feeds
    cloudasset.feeds.delete Borra feeds
    cloudasset.feeds.get Obtén feeds
    cloudasset.feeds.list Enumera feeds

    La función de propietario de Cloud Asset (roles/cloudasset.owner) otorga todos los permisos relacionados con la API de Cloud Asset, incluidos los permisos enumerados en la tabla anterior. Para obtener más información sobre las funciones y los permisos, consulta Información sobre las funciones y Configura permisos.

  5. Si exportas metadatos de un proyecto a otro, asegúrate de que la cuenta de servicio predeterminada de Cloud Asset Inventory exista y tenga los permisos correctos del proyecto de exportación.

  6. Crea un tema de Pub/Sub si no tienes un tema de Pub/Sub existente.

Limitaciones

  • La creación, actualización o eliminación de un feed puede tardar hasta 10 minutos en efectuarse.

  • El proyecto de consumidor donde se crea el feed debe sobrevivir porque el cuenta de servicio que se usa para publicar en el tema de Pub/Sub de destino se encuentra en el proyecto de consumidor. Si se borra el proyecto del consumidor, Cloud Asset Inventory no puede publicar en el destino. El feed ya no funciona y se borra en cuanto la eliminación del proyecto es permanente.

Creación de feeds

Puedes crear hasta 200 feeds en un elemento superior. Este límite solo se aplica a los feeds que se producen inmediatamente después de ese elemento principal y no considera los feeds de sus elementos secundarios. Por ejemplo, si tienes 10 proyectos en una organización, cada proyecto puede tener hasta 200 feeds y la organización también puede tener hasta 200 feeds.

Si quieres crear un feed para proyectos, organizaciones o carpetas, realiza una de las siguientes solicitudes. Cloud Asset Inventory establece una notificación para cualquier recurso que coincida con al menos uno de los parámetros ASSET de tu feed Y también coincide con la expresión de condición, si se especifica.

gcloud

Proyectos

gcloud asset feeds create FEED_ID \
    --project=PROJECT_ID \
    --billing-project=BILLING_PROJECT_ID \
    --pubsub-topic=projects/PROJECT_ID/topics/TOPIC_ID \
    --asset-names=ASSET_NAME_1,ASSET_NAME_2,... \
    --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \
    --content-type=CONTENT_TYPE \
    --condition-title="CONDITION_TITLE" \
    --condition-description="CONDITION_DESCRIPTION" \
    --condition-expression="CONDITION_EXPRESSION"

Ingresa los siguientes valores:

  • FEED_ID: Es un identificador único de feed de recursos.

  • PROJECT_ID: Es el ID del proyecto cuyos metadatos se envían al feed.

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tu tema de Pub/Sub. Obtén más información sobre los proyectos de facturación.

  • TOPIC_ID: Es el ID del tema de Pub/Sub en el que se publicarán las notificaciones.

  • ASSET_NAME: Opcional Una lista separada por comas de los nombres completos de los elementos para los que deseas recibir notificaciones de cambios.

    Se requiere al menos un ASSET_NAME o ASSET_TYPE.

  • ASSET_TYPE: Opcional Una lista separada por comas de los tipos de recursos que se pueden buscar para los que quieres recibir notificaciones de cambios. Se admiten las expresiones regulares compatibles con RE2. Si la expresión regular no coincide con ningún tipo de elemento compatible, se mostrará un error INVALID_ARGUMENT.

    Se requiere al menos un ASSET_NAME o ASSET_TYPE.

  • CONTENT_TYPE: Opcional El tipo de contenido del elemento para el que deseas recibir notificaciones de cambios.

  • CONDITION_TITLE: Opcional Es el título de la condición que se aplicará al feed.

  • CONDITION_DESCRIPTION: Opcional Es la descripción de la condición que se aplicará al feed.

  • CONDITION_EXPRESSION: Opcional La expresión de condición que se aplicará al feed.

Carpetas

gcloud asset feeds create FEED_ID \
    --folder=FOLDER_ID \
    --billing-project=BILLING_PROJECT_ID \
    --pubsub-topic=projects/PROJECT_ID/topics/TOPIC_ID \
    --asset-names=ASSET_NAME_1,ASSET_NAME_2,... \
    --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \
    --content-type=CONTENT_TYPE \
    --condition-title="CONDITION_TITLE" \
    --condition-description="CONDITION_DESCRIPTION" \
    --condition-expression="CONDITION_EXPRESSION"

Ingresa los siguientes valores:

  • FEED_ID: Es un identificador único de feed de recursos.

  • FOLDER_ID: Es el ID de la carpeta cuyos metadatos se envían al feed.

    Cómo encontrar un ID de carpeta de Google Cloud

    Console

    Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:

    1. Ve a la consola de Google Cloud.

      Ir a la consola de Google Cloud

    2. Haz clic en el cuadro de cambio en la barra de menú.
    3. Haz clic en el cuadro Seleccionar de y, luego, selecciona tu organización.
    4. Busca el nombre de tu carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.

    gcloud CLI

    Puedes recuperar un ID de carpeta de Google Cloud que se encuentra a nivel de la organización con el siguiente 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)"

    En el ejemplo anterior, TOP_LEVEL_FOLDER_NAME puede ser una coincidencia de cadenas completa o parcial. Quita la opción --format para ver más información sobre las carpetas encontradas.

    Para obtener el ID de una carpeta dentro de otra, enumera las subcarpetas:

    gcloud resource-manager folders list --folder=FOLDER_ID

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tu tema de Pub/Sub. Obtén más información sobre los proyectos de facturación.

  • PROJECT_ID: Es el ID del proyecto en el que se encuentra el tema de Pub/Sub.

  • TOPIC_ID: Es el ID del tema de Pub/Sub en el que se publicarán las notificaciones.

  • ASSET_NAME: Opcional Una lista separada por comas de los nombres completos de los elementos para los que deseas recibir notificaciones de cambios.

    Se requiere al menos un ASSET_NAME o ASSET_TYPE.

  • ASSET_TYPE: Opcional Una lista separada por comas de los tipos de recursos que se pueden buscar para los que quieres recibir notificaciones de cambios. Se admiten las expresiones regulares. Si la expresión regular no coincide con ningún tipo de elemento compatible, se mostrará un error INVALID_ARGUMENT.

    Se requiere al menos un ASSET_NAME o ASSET_TYPE.

  • CONTENT_TYPE: Opcional El tipo de contenido del elemento para el que deseas recibir notificaciones de cambios.

  • CONDITION_TITLE: Opcional Es el título de la condición que se aplicará al feed.

  • CONDITION_DESCRIPTION: Opcional Es la descripción de la condición que se aplicará al feed.

  • CONDITION_EXPRESSION: Opcional La expresión de condición que se aplicará al feed.

Organizaciones

gcloud asset feeds create FEED_ID \
    --organization=ORGANIZATION_ID \
    --billing-project=BILLING_PROJECT_ID \
    --pubsub-topic=projects/PROJECT_ID/topics/TOPIC_ID \
    --asset-names=ASSET_NAME_1,ASSET_NAME_2,... \
    --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \
    --content-type=CONTENT_TYPE \
    --condition-title="CONDITION_TITLE" \
    --condition-description="CONDITION_DESCRIPTION" \
    --condition-expression="CONDITION_EXPRESSION"

Ingresa los siguientes valores:

  • FEED_ID: Es un identificador único de feed de recursos.

  • ORGANIZATION_ID: Es el ID del proyecto cuyos metadatos se envían al feed.

    Cómo encontrar un ID de organización de Google Cloud

    Console

    Para encontrar un ID de organización de Google Cloud, completa los siguientes pasos:

    1. Ve a la consola de Google Cloud.

      Ir a la consola de Google Cloud

    2. Haz clic en el cuadro de cambio en la barra de menú.
    3. Haz clic en el cuadro Seleccionar de y, luego, selecciona tu organización.
    4. Haz clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de la organización.

    gcloud CLI

    Puedes recuperar un ID de organización de Google Cloud con el siguiente comando:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tu tema de Pub/Sub. Obtén más información sobre los proyectos de facturación.

  • PROJECT_ID: Es el ID del proyecto en el que se encuentra el tema de Pub/Sub.

  • TOPIC_ID: Es el ID del tema de Pub/Sub en el que se publicarán las notificaciones.

  • ASSET_NAME: Opcional Una lista separada por comas de los nombres completos de los elementos para los que deseas recibir notificaciones de cambios.

    Se requiere al menos un ASSET_NAME o ASSET_TYPE.

  • ASSET_TYPE: Opcional Una lista separada por comas de los tipos de recursos que se pueden buscar para los que quieres recibir notificaciones de cambios. Se admiten las expresiones regulares. Si la expresión regular no coincide con ningún tipo de elemento compatible, se mostrará un error INVALID_ARGUMENT.

    Se requiere al menos un ASSET_NAME o ASSET_TYPE.

  • CONTENT_TYPE: Opcional El tipo de contenido del elemento para el que deseas recibir notificaciones de cambios.

  • CONDITION_TITLE: Opcional Es el título de la condición que se aplicará al feed.

  • CONDITION_DESCRIPTION: Opcional Es la descripción de la condición que se aplicará al feed.

  • CONDITION_EXPRESSION: Opcional La expresión de condición que se aplicará al feed.

REST

curl -X POST \
     -H "X-Goog-User-Project: BILLING_PROJECT_ID" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "feedId": "FEED_ID",
          "feed": {
            "assetNames": [
              "ASSET_NAME_1",
              "ASSET_NAME_2",
              "..."
            ],
            "assetTypes": [
              "ASSET_TYPE_1",
              "ASSET_TYPE_2",
              "..."
            ],
            "contentType": "CONTENT_TYPE",
            "feedOutputConfig": {
              "pubsubDestination": {
                "topic": "projects/PROJECT_ID/topics/TOPIC_ID"
              }
            },
            "condition": {
              "title": "CONDITION_TITLE",
              "description": "CONDITION_DESCRIPTION",
              "expression": "CONDITION_EXPRESSION"
            }
          }
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE/feeds

Ingresa los siguientes valores:

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tu tema de Pub/Sub. Obtén más información sobre los proyectos de facturación.

  • FEED_ID: Es un identificador único de feed de recursos.

  • ASSET_NAME: Opcional Una lista separada por comas de los nombres completos de los elementos para los que quieres recibir notificaciones de cambios.

    Se requiere al menos un ASSET_NAME o ASSET_TYPE.

  • ASSET_TYPE: Opcional Una lista separada por comas de los tipos de recursos que se pueden buscar para los que quieres recibir notificaciones de cambios. Se admiten las expresiones regulares. Si la expresión regular no coincide con ningún tipo de elemento compatible, se mostrará un error INVALID_ARGUMENT.

    Se requiere al menos un ASSET_NAME o ASSET_TYPE.

  • CONTENT_TYPE: Opcional El tipo de contenido del elemento para el que deseas recibir notificaciones de cambios.

  • PROJECT_ID: Es el ID del proyecto en el que se encuentra el tema de Pub/Sub.

  • TOPIC_ID: Es el ID del tema de Pub/Sub en el que se publicarán notificaciones.

  • CONDITION_TITLE: Opcional Es el título de la condición que se aplicará al feed.

  • CONDITION_DESCRIPTION: Opcional Es la descripción de la condición que se aplicará al feed.

  • CONDITION_EXPRESSION: Opcional La expresión de condition que se aplicará al feed.

  • SCOPE: Un permiso puede ser un proyecto, una carpeta o una organización.

    Los valores permitidos son los siguientes:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Cómo encontrar un número de proyecto de Google Cloud

      Console

      Para encontrar un número de proyecto de Google Cloud, completa los siguientes pasos:

      1. Ve a la página Panel en la consola de Google Cloud.

        Ir al panel

      2. Haz clic en el cuadro de cambio en la barra de menú.
      3. Elige tu organización en el cuadro Seleccionar desde y, luego, busca el nombre del proyecto.
      4. Haz clic en el nombre del proyecto para cambiar a ese proyecto. El número del proyecto se muestra en la tarjeta Información del proyecto.

      gcloud CLI

      Puedes recuperar el número de proyecto de Google Cloud con el siguiente comando:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Cómo encontrar un ID de carpeta de Google Cloud

      Console

      Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:

      1. Ve a la consola de Google Cloud.

        Ir a la consola de Google Cloud

      2. Haz clic en el cuadro de cambio en la barra de menú.
      3. Haz clic en el cuadro Seleccionar de y, luego, selecciona tu organización.
      4. Busca el nombre de tu carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.

      gcloud CLI

      Puedes recuperar un ID de carpeta de Google Cloud que se encuentra a nivel de la organización con el siguiente 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)"

      En el ejemplo anterior, TOP_LEVEL_FOLDER_NAME puede ser una coincidencia de cadenas completa o parcial. Quita la opción --format para ver más información sobre las carpetas encontradas.

      Para obtener el ID de una carpeta dentro de otra, enumera las subcarpetas:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Cómo encontrar un ID de organización de Google Cloud

      Console

      Para encontrar un ID de organización de Google Cloud, completa los siguientes pasos:

      1. Ve a la consola de Google Cloud.

        Ir a la consola de Google Cloud

      2. Haz clic en el cuadro de cambio en la barra de menú.
      3. Haz clic en el cuadro Seleccionar de y, luego, selecciona tu organización.
      4. Haz clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de la organización.

      gcloud CLI

      Puedes recuperar un ID de organización de Google Cloud con el siguiente comando:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

Después de crear un feed, suscríbete a las actualizaciones del tema de Pub/Sub que especificaste en el feed. Un feed nuevo puede tardar hasta 10 minutos en comenzar a enviar notificaciones. Se envía una notificación por cada cambio que se realice en un recurso que coincida con assetNames o assetTypes y que cumpla con la condition del feed.

El primer mensaje publicado en el tema de Pub/Sub es un mensaje de bienvenida en el formato de string y todos los mensajes siguientes están en el formato TemporalAsset. Este es un mensaje de muestra para el tipo de contenido RESOURCE.

{
  "asset": {
    "ancestors": [
      "projects/[PROJECT_ID]",
      "folders/[FOLDER_ID]",
      "organizations/[ORGANIZATION_ID]"
    ],
    "assetType": "[ASSET_TYPE]",
    "name": "[ASSET_NAME]",
    "resource": {
      "data": {
        ...detailed resource metadata...
      },
      "discoveryDocumentUri": "[DISCOVERY_URI]",
      "discoveryName": "[DISCOVERY_NAME]",
      "location": "[LOCATION]",
      "parent": "[PARENT_ASSET_NAME]",
      "version": "[VERSION]"
    },
    "updateTime": "[UPDATE_TIME]"
  },
  "priorAsset": {
    ...prior asset information...
  },
  "priorAssetState": "[PRIOR_ASSET_STATE]",
  "window": {
    "startTime": "[UPDATE_TIME]"
  }
}

Para obtener más información sobre Pub/Sub o cómo configurar suscripciones, consulta la documentación de Pub/Sub.

Crea un feed para los cambios en el bucket de Cloud Storage o en la tabla de BigQuery

Con los siguientes comandos, se crean notificaciones del tema TOPIC_ID de Pub/Sub cuando el contenido cambia en el bucket BUCKET_NAME de Cloud Storage o en cualquier tabla de BigQuery:

gcloud

Proyectos

gcloud asset feeds create FEED_ID \
    --project=PROJECT_ID \
    --billing-project=BILLING_PROJECT_ID \
    --pubsub-topic="projects/PROJECT_ID/topics/TOPIC_ID" \
    --asset-names=//storage.googleapis.com/BUCKET_NAME \
    --asset-types=bigquery.googleapis.com/Table \
    --content-type=resource

Ingresa los siguientes valores:

  • FEED_ID: Es un identificador único de feed de recursos.

  • PROJECT_ID: Es el ID del proyecto cuyos metadatos se envían al feed.

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tu tema de Pub/Sub. Obtén más información sobre los proyectos de facturación.

  • TOPIC_ID: Es el ID del tema de Pub/Sub en el que se publicarán las notificaciones.

  • BUCKET_NAME: Es el nombre del bucket de Cloud Storage que se supervisará.

Carpetas

gcloud asset feeds create FEED_ID \
    --folder=FOLDER_ID \
    --billing-project=BILLING_PROJECT_ID \
    --pubsub-topic="projects/PROJECT_ID/topics/TOPIC_ID" \
    --asset-names=//storage.googleapis.com/BUCKET_NAME \
    --asset-types=bigquery.googleapis.com/Table \
    --content-type=resource

Ingresa los siguientes valores:

  • FEED_ID: Es un identificador único de feed de recursos.

  • FOLDER_ID: Es el ID de la carpeta cuyos metadatos se envían al feed.

    Cómo encontrar un ID de carpeta de Google Cloud

    Console

    Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:

    1. Ve a la consola de Google Cloud.

      Ir a la consola de Google Cloud

    2. Haz clic en el cuadro de cambio en la barra de menú.
    3. Haz clic en el cuadro Seleccionar de y, luego, selecciona tu organización.
    4. Busca el nombre de tu carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.

    gcloud CLI

    Puedes recuperar un ID de carpeta de Google Cloud que se encuentra a nivel de la organización con el siguiente 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)"

    En el ejemplo anterior, TOP_LEVEL_FOLDER_NAME puede ser una coincidencia de cadenas completa o parcial. Quita la opción --format para ver más información sobre las carpetas encontradas.

    Para obtener el ID de una carpeta dentro de otra, enumera las subcarpetas:

    gcloud resource-manager folders list --folder=FOLDER_ID

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tu tema de Pub/Sub. Obtén más información sobre los proyectos de facturación.

  • TOPIC_ID: Es el ID del tema de Pub/Sub en el que se publicarán las notificaciones.

  • BUCKET_NAME: Es el nombre del bucket de Cloud Storage que se supervisará.

Organizaciones

gcloud asset feeds create FEED_ID \
    --organization=ORGANIZATION_ID \
    --billing-project=BILLING_PROJECT_ID \
    --pubsub-topic="projects/PROJECT_ID/topics/TOPIC_ID" \
    --asset-names=//storage.googleapis.com/BUCKET_NAME \
    --asset-types=bigquery.googleapis.com/Table \
    --content-type=resource

Ingresa los siguientes valores:

  • FEED_ID: Es un identificador único de feed de recursos.

  • ORGANIZATION_ID: Es el ID de la organización cuyos metadatos se envían al feed.

    Cómo encontrar un ID de organización de Google Cloud

    Console

    Para encontrar un ID de organización de Google Cloud, completa los siguientes pasos:

    1. Ve a la consola de Google Cloud.

      Ir a la consola de Google Cloud

    2. Haz clic en el cuadro de cambio en la barra de menú.
    3. Haz clic en el cuadro Seleccionar de y, luego, selecciona tu organización.
    4. Haz clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de la organización.

    gcloud CLI

    Puedes recuperar un ID de organización de Google Cloud con el siguiente comando:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tu tema de Pub/Sub. Obtén más información sobre los proyectos de facturación.

  • TOPIC_ID: Es el ID del tema de Pub/Sub en el que se publicarán las notificaciones.

  • BUCKET_NAME: Es el nombre del bucket de Cloud Storage que se supervisará.

REST

curl -X POST \
     -H "X-Goog-User-Project: BILLING_PROJECT_ID" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "feedId": "FEED_ID",
          "feed": {
            "assetNames": ["storage.googleapis.com/BUCKET_NAME"],
            "assetTypes": ["bigquery.googleapis.com/Table"],
            "contentType": "RESOURCE",
            "feedOutputConfig": {
              "pubsubDestination": {
                "topic": "projects/PROJECT_ID/topics/TOPIC_ID"
              }
            }
          }
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE/feeds

Ingresa los siguientes valores:

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tu tema de Pub/Sub. Obtén más información sobre los proyectos de facturación.

  • FEED_ID: Es un identificador único de feed de recursos.

  • BUCKET_NAME: Es el nombre del bucket de Cloud Storage que se supervisará.

  • PROJECT_ID: Es el ID del proyecto cuyos metadatos se envían al feed.

  • TOPIC_ID: Es el ID del tema de Pub/Sub en el que se publicarán las notificaciones.

  • SCOPE: Un permiso puede ser un proyecto, una carpeta o una organización.

    Los valores permitidos son los siguientes:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Cómo encontrar un número de proyecto de Google Cloud

      Console

      Para encontrar un número de proyecto de Google Cloud, completa los siguientes pasos:

      1. Ve a la página Panel en la consola de Google Cloud.

        Ir al panel

      2. Haz clic en el cuadro de cambio en la barra de menú.
      3. Elige tu organización en el cuadro Seleccionar desde y, luego, busca el nombre del proyecto.
      4. Haz clic en el nombre del proyecto para cambiar a ese proyecto. El número del proyecto se muestra en la tarjeta Información del proyecto.

      gcloud CLI

      Puedes recuperar el número de proyecto de Google Cloud con el siguiente comando:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Cómo encontrar un ID de carpeta de Google Cloud

      Console

      Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:

      1. Ve a la consola de Google Cloud.

        Ir a la consola de Google Cloud

      2. Haz clic en el cuadro de cambio en la barra de menú.
      3. Haz clic en el cuadro Seleccionar de y, luego, selecciona tu organización.
      4. Busca el nombre de tu carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.

      gcloud CLI

      Puedes recuperar un ID de carpeta de Google Cloud que se encuentra a nivel de la organización con el siguiente 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)"

      En el ejemplo anterior, TOP_LEVEL_FOLDER_NAME puede ser una coincidencia de cadenas completa o parcial. Quita la opción --format para ver más información sobre las carpetas encontradas.

      Para obtener el ID de una carpeta dentro de otra, enumera las subcarpetas:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Cómo encontrar un ID de organización de Google Cloud

      Console

      Para encontrar un ID de organización de Google Cloud, completa los siguientes pasos:

      1. Ve a la consola de Google Cloud.

        Ir a la consola de Google Cloud

      2. Haz clic en el cuadro de cambio en la barra de menú.
      3. Haz clic en el cuadro Seleccionar de y, luego, selecciona tu organización.
      4. Haz clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de la organización.

      gcloud CLI

      Puedes recuperar un ID de organización de Google Cloud con el siguiente comando:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

Las notificaciones solo se envían cuando se cambian los metadatos del recurso o la política del recurso. En el ejemplo anterior, cambiar un recurso en los buckets de Cloud Storage o en las tablas de BigQuery no activa una notificación.

Cómo crear un feed para los cambios en los tipos de recursos

Las siguientes solicitudes crean notificaciones del tema TOPIC_ID de Pub/Sub cuando el contenido cambia en los recursos cuyo tipo de recurso comienza con compute.googleapis.com.

gcloud

Proyectos

gcloud asset feeds create FEED_ID \
    --project=PROJECT_ID \
    --billing-project=BILLING_PROJECT_ID \
    --pubsub-topic="projects/PROJECT_ID/topics/TOPIC_ID" \
    --content-type=resource \
    --asset-types=compute.googleapis.com.*

Ingresa los siguientes valores:

  • FEED_ID: Es un identificador único de feed de recursos.

  • PROJECT_ID: Es el ID del proyecto cuyos metadatos se envían al feed.

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tu tema de Pub/Sub. Obtén más información sobre los proyectos de facturación.

  • TOPIC_ID: Es el ID del tema de Pub/Sub en el que se publicarán las notificaciones.

Carpetas

gcloud asset feeds create FEED_ID \
    --folder=FOLDER_ID \
    --billing-project=BILLING_PROJECT_ID \
    --pubsub-topic="projects/PROJECT_ID/topics/TOPIC_ID" \
    --content-type=resource \
    --asset-types=compute.googleapis.com.*

Ingresa los siguientes valores:

  • FEED_ID: Es un identificador único de feed de recursos.

  • FOLDER_ID: Es el ID de la carpeta cuyos metadatos se envían al feed.

    Cómo encontrar un ID de carpeta de Google Cloud

    Console

    Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:

    1. Ve a la consola de Google Cloud.

      Ir a la consola de Google Cloud

    2. Haz clic en el cuadro de cambio en la barra de menú.
    3. Haz clic en el cuadro Seleccionar de y, luego, selecciona tu organización.
    4. Busca el nombre de tu carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.

    gcloud CLI

    Puedes recuperar un ID de carpeta de Google Cloud que se encuentra a nivel de la organización con el siguiente 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)"

    En el ejemplo anterior, TOP_LEVEL_FOLDER_NAME puede ser una coincidencia de cadenas completa o parcial. Quita la opción --format para ver más información sobre las carpetas encontradas.

    Para obtener el ID de una carpeta dentro de otra, enumera las subcarpetas:

    gcloud resource-manager folders list --folder=FOLDER_ID

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tu tema de Pub/Sub. Obtén más información sobre los proyectos de facturación.

  • TOPIC_ID: Es el ID del tema de Pub/Sub en el que se publicarán las notificaciones.

Organizaciones

gcloud asset feeds create FEED_ID \
    --organization=ORGANIZATION_ID \
    --billing-project=BILLING_PROJECT_ID \
    --pubsub-topic="projects/PROJECT_ID/topics/TOPIC_ID" \
    --content-type=resource \
    --asset-types=compute.googleapis.com.*

Ingresa los siguientes valores:

  • FEED_ID: Es un identificador único de feed de recursos.

  • ORGANIZATION_ID: Es el ID de la organización cuyos metadatos se envían al feed.

    Cómo encontrar un ID de organización de Google Cloud

    Console

    Para encontrar un ID de organización de Google Cloud, completa los siguientes pasos:

    1. Ve a la consola de Google Cloud.

      Ir a la consola de Google Cloud

    2. Haz clic en el cuadro de cambio en la barra de menú.
    3. Haz clic en el cuadro Seleccionar de y, luego, selecciona tu organización.
    4. Haz clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de la organización.

    gcloud CLI

    Puedes recuperar un ID de organización de Google Cloud con el siguiente comando:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tu tema de Pub/Sub. Obtén más información sobre los proyectos de facturación.

  • TOPIC_ID: Es el ID del tema de Pub/Sub en el que se publicarán las notificaciones.

REST

curl -X POST \
     -H "X-Goog-User-Project: BILLING_PROJECT_ID" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "feedId": "FEED_ID",
          "feed": {
            "assetTypes": ["compute.googleapis.com.*"],
            "contentType": "RESOURCE",
            "feedOutputConfig": {
              "pubsubDestination": {
                "topic": "projects/PROJECT_ID/topics/TOPIC_ID"
              }
            }
          }
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE/feeds

Ingresa los siguientes valores:

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tu tema de Pub/Sub. Obtén más información sobre los proyectos de facturación.

  • FEED_ID: Es un identificador único de feed de recursos.

  • PROJECT_ID: Es el ID del proyecto cuyos metadatos se envían al feed.

  • TOPIC_ID: Es el ID del tema de Pub/Sub en el que se publicarán las notificaciones.

  • SCOPE: Un permiso puede ser un proyecto, una carpeta o una organización.

    Los valores permitidos son los siguientes:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Cómo encontrar un número de proyecto de Google Cloud

      Console

      Para encontrar un número de proyecto de Google Cloud, completa los siguientes pasos:

      1. Ve a la página Panel en la consola de Google Cloud.

        Ir al panel

      2. Haz clic en el cuadro de cambio en la barra de menú.
      3. Elige tu organización en el cuadro Seleccionar desde y, luego, busca el nombre del proyecto.
      4. Haz clic en el nombre del proyecto para cambiar a ese proyecto. El número del proyecto se muestra en la tarjeta Información del proyecto.

      gcloud CLI

      Puedes recuperar el número de proyecto de Google Cloud con el siguiente comando:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Cómo encontrar un ID de carpeta de Google Cloud

      Console

      Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:

      1. Ve a la consola de Google Cloud.

        Ir a la consola de Google Cloud

      2. Haz clic en el cuadro de cambio en la barra de menú.
      3. Haz clic en el cuadro Seleccionar de y, luego, selecciona tu organización.
      4. Busca el nombre de tu carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.

      gcloud CLI

      Puedes recuperar un ID de carpeta de Google Cloud que se encuentra a nivel de la organización con el siguiente 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)"

      En el ejemplo anterior, TOP_LEVEL_FOLDER_NAME puede ser una coincidencia de cadenas completa o parcial. Quita la opción --format para ver más información sobre las carpetas encontradas.

      Para obtener el ID de una carpeta dentro de otra, enumera las subcarpetas:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Cómo encontrar un ID de organización de Google Cloud

      Console

      Para encontrar un ID de organización de Google Cloud, completa los siguientes pasos:

      1. Ve a la consola de Google Cloud.

        Ir a la consola de Google Cloud

      2. Haz clic en el cuadro de cambio en la barra de menú.
      3. Haz clic en el cuadro Seleccionar de y, luego, selecciona tu organización.
      4. Haz clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de la organización.

      gcloud CLI

      Puedes recuperar un ID de organización de Google Cloud con el siguiente comando:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

Obteniendo feeds

Para obtener un feed específico, realiza una de las siguientes solicitudes.

gcloud

Proyectos

gcloud asset feeds describe FEED_ID \
    --project=PROJECT_ID \
    --billing-project=BILLING_PROJECT_ID

Ingresa los siguientes valores:

  • FEED_ID: Es un identificador único de feed de recursos.

  • PROJECT_ID: Es el ID del proyecto cuyos metadatos se publican en el feed.

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tu tema de Pub/Sub. Obtén más información sobre los proyectos de facturación.

Carpetas

gcloud asset feeds describe FEED_ID \
    --folder=FOLDER_ID \
    --billing-project=BILLING_PROJECT_ID

Ingresa los siguientes valores:

  • FEED_ID: Es un identificador único de feed de recursos.

  • FOLDER_ID: Es el ID de la carpeta cuyos metadatos se publican en el feed.

    Cómo encontrar un ID de carpeta de Google Cloud

    Console

    Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:

    1. Ve a la consola de Google Cloud.

      Ir a la consola de Google Cloud

    2. Haz clic en el cuadro de cambio en la barra de menú.
    3. Haz clic en el cuadro Seleccionar de y, luego, selecciona tu organización.
    4. Busca el nombre de tu carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.

    gcloud CLI

    Puedes recuperar un ID de carpeta de Google Cloud que se encuentra a nivel de la organización con el siguiente 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)"

    En el ejemplo anterior, TOP_LEVEL_FOLDER_NAME puede ser una coincidencia de cadenas completa o parcial. Quita la opción --format para ver más información sobre las carpetas encontradas.

    Para obtener el ID de una carpeta dentro de otra, enumera las subcarpetas:

    gcloud resource-manager folders list --folder=FOLDER_ID

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tu tema de Pub/Sub. Obtén más información sobre los proyectos de facturación.

Organizaciones

gcloud asset feeds describe FEED_ID \
    --organization=ORGANIZATION_ID \
    --billing-project=BILLING_PROJECT_ID

Ingresa los siguientes valores:

  • FEED_ID: Es un identificador único de feed de recursos.

  • ORGANIZATION_ID: Es el ID de la organización cuyos metadatos se publican en el feed.

    Cómo encontrar un ID de organización de Google Cloud

    Console

    Para encontrar un ID de organización de Google Cloud, completa los siguientes pasos:

    1. Ve a la consola de Google Cloud.

      Ir a la consola de Google Cloud

    2. Haz clic en el cuadro de cambio en la barra de menú.
    3. Haz clic en el cuadro Seleccionar de y, luego, selecciona tu organización.
    4. Haz clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de la organización.

    gcloud CLI

    Puedes recuperar un ID de organización de Google Cloud con el siguiente comando:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tu tema de Pub/Sub. Obtén más información sobre los proyectos de facturación.

REST

curl -X GET \
     -H "X-Goog-User-Project: BILLING_PROJECT_ID" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     https://cloudasset.googleapis.com/v1/SCOPE/feeds/FEED_ID

Ingresa los siguientes valores:

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tu tema de Pub/Sub. Obtén más información sobre los proyectos de facturación.

  • SCOPE: Un permiso puede ser un proyecto, una carpeta o una organización. No se admiten los IDs de proyecto.

    Los valores permitidos son los siguientes:

    • projects/PROJECT_NUMBER

      Cómo encontrar un número de proyecto de Google Cloud

      Console

      Para encontrar un número de proyecto de Google Cloud, completa los siguientes pasos:

      1. Ve a la página Panel en la consola de Google Cloud.

        Ir al panel

      2. Haz clic en el cuadro de cambio en la barra de menú.
      3. Elige tu organización en el cuadro Seleccionar desde y, luego, busca el nombre del proyecto.
      4. Haz clic en el nombre del proyecto para cambiar a ese proyecto. El número del proyecto se muestra en la tarjeta Información del proyecto.

      gcloud CLI

      Puedes recuperar el número de proyecto de Google Cloud con el siguiente comando:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Cómo encontrar un ID de carpeta de Google Cloud

      Console

      Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:

      1. Ve a la consola de Google Cloud.

        Ir a la consola de Google Cloud

      2. Haz clic en el cuadro de cambio en la barra de menú.
      3. Haz clic en el cuadro Seleccionar de y, luego, selecciona tu organización.
      4. Busca el nombre de tu carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.

      gcloud CLI

      Puedes recuperar un ID de carpeta de Google Cloud que se encuentra a nivel de la organización con el siguiente 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)"

      En el ejemplo anterior, TOP_LEVEL_FOLDER_NAME puede ser una coincidencia de cadenas completa o parcial. Quita la opción --format para ver más información sobre las carpetas encontradas.

      Para obtener el ID de una carpeta dentro de otra, enumera las subcarpetas:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Cómo encontrar un ID de organización de Google Cloud

      Console

      Para encontrar un ID de organización de Google Cloud, completa los siguientes pasos:

      1. Ve a la consola de Google Cloud.

        Ir a la consola de Google Cloud

      2. Haz clic en el cuadro de cambio en la barra de menú.
      3. Haz clic en el cuadro Seleccionar de y, luego, selecciona tu organización.
      4. Haz clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de la organización.

      gcloud CLI

      Puedes recuperar un ID de organización de Google Cloud con el siguiente comando:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

  • FEED_ID: Es un identificador único de feed de recursos.

El feed se muestra en el siguiente formato, en el que FULL_NAME_FEED_ID es el identificador del feed junto con su recurso superior:

{
  "name": "FULL_NAME_FEED_ID",
  "assetTypes": ["ASSET_TYPES"],
  "assetNames": ["ASSET_NAMES"],
  "contentType": "CONTENT_TYPES",
  "feedOutputConfig": {
    "pubsubDestination": {
      "topic": "projects/PROJECT_ID/topics/TOPIC_ID"
    }
  },
  "condition": {
    "title": "CONDITION_TITLE",
    "description": "CONDITION_DESCRIPTION",
    "expression": "CONDITION_EXPRESSION"
  }
}

Feeds de fichas

Para enumerar todos los feeds de un proyecto, una carpeta o una organización, realiza una de las siguientes solicitudes.

gcloud

Proyectos

gcloud asset feeds list \
    --project=PROJECT_ID \
    --billing-project=BILLING_PROJECT_ID

Ingresa los siguientes valores:

  • PROJECT_ID: Es el ID del proyecto cuyos metadatos se publican en el feed.

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tu tema de Pub/Sub. Obtén más información sobre los proyectos de facturación.

Carpetas

gcloud asset feeds list \
    --folder=FOLDER_ID \
    --billing-project=BILLING_PROJECT_ID

Ingresa los siguientes valores:

  • FOLDER_ID: Es el ID de la carpeta cuyos metadatos se publican en el feed.

    Cómo encontrar un ID de carpeta de Google Cloud

    Console

    Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:

    1. Ve a la consola de Google Cloud.

      Ir a la consola de Google Cloud

    2. Haz clic en el cuadro de cambio en la barra de menú.
    3. Haz clic en el cuadro Seleccionar de y, luego, selecciona tu organización.
    4. Busca el nombre de tu carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.

    gcloud CLI

    Puedes recuperar un ID de carpeta de Google Cloud que se encuentra a nivel de la organización con el siguiente 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)"

    En el ejemplo anterior, TOP_LEVEL_FOLDER_NAME puede ser una coincidencia de cadenas completa o parcial. Quita la opción --format para ver más información sobre las carpetas encontradas.

    Para obtener el ID de una carpeta dentro de otra, enumera las subcarpetas:

    gcloud resource-manager folders list --folder=FOLDER_ID

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tu tema de Pub/Sub. Obtén más información sobre los proyectos de facturación.

Organizaciones

gcloud asset feeds list \
    --organization=ORGANIZATION_ID \
    --billing-project=BILLING_PROJECT_ID

Ingresa los siguientes valores:

  • ORGANIZATION_ID: Es el ID de la organización cuyos metadatos se publican en el feed.

    Cómo encontrar un ID de organización de Google Cloud

    Console

    Para encontrar un ID de organización de Google Cloud, completa los siguientes pasos:

    1. Ve a la consola de Google Cloud.

      Ir a la consola de Google Cloud

    2. Haz clic en el cuadro de cambio en la barra de menú.
    3. Haz clic en el cuadro Seleccionar de y, luego, selecciona tu organización.
    4. Haz clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de la organización.

    gcloud CLI

    Puedes recuperar un ID de organización de Google Cloud con el siguiente comando:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tu tema de Pub/Sub. Obtén más información sobre los proyectos de facturación.

REST

curl -X GET \
     -H "X-Goog-User-Project: BILLING_PROJECT_ID" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     https://cloudasset.googleapis.com/v1/SCOPE/feeds

Ingresa los siguientes valores:

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tu tema de Pub/Sub. Obtén más información sobre los proyectos de facturación.

  • SCOPE: Un permiso puede ser un proyecto, una carpeta o una organización.

    Los valores permitidos son los siguientes:

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Cómo encontrar un número de proyecto de Google Cloud

      Console

      Para encontrar un número de proyecto de Google Cloud, completa los siguientes pasos:

      1. Ve a la página Panel en la consola de Google Cloud.

        Ir al panel

      2. Haz clic en el cuadro de cambio en la barra de menú.
      3. Elige tu organización en el cuadro Seleccionar desde y, luego, busca el nombre del proyecto.
      4. Haz clic en el nombre del proyecto para cambiar a ese proyecto. El número del proyecto se muestra en la tarjeta Información del proyecto.

      gcloud CLI

      Puedes recuperar el número de proyecto de Google Cloud con el siguiente comando:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Cómo encontrar un ID de carpeta de Google Cloud

      Console

      Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:

      1. Ve a la consola de Google Cloud.

        Ir a la consola de Google Cloud

      2. Haz clic en el cuadro de cambio en la barra de menú.
      3. Haz clic en el cuadro Seleccionar de y, luego, selecciona tu organización.
      4. Busca el nombre de tu carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.

      gcloud CLI

      Puedes recuperar un ID de carpeta de Google Cloud que se encuentra a nivel de la organización con el siguiente 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)"

      En el ejemplo anterior, TOP_LEVEL_FOLDER_NAME puede ser una coincidencia de cadenas completa o parcial. Quita la opción --format para ver más información sobre las carpetas encontradas.

      Para obtener el ID de una carpeta dentro de otra, enumera las subcarpetas:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Cómo encontrar un ID de organización de Google Cloud

      Console

      Para encontrar un ID de organización de Google Cloud, completa los siguientes pasos:

      1. Ve a la consola de Google Cloud.

        Ir a la consola de Google Cloud

      2. Haz clic en el cuadro de cambio en la barra de menú.
      3. Haz clic en el cuadro Seleccionar de y, luego, selecciona tu organización.
      4. Haz clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de la organización.

      gcloud CLI

      Puedes recuperar un ID de organización de Google Cloud con el siguiente comando:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

Actualizando feeds

Para actualizar los atributos de un feed, debes especificar la ruta de acceso del atributo en el update_mask y el valor de ese atributo. En la siguiente solicitud, se actualizan los valores assetNames y topic de un feed en un proyecto.

gcloud

Proyectos

gcloud asset feeds update FEED_ID \
    --project=PROJECT_ID \
    --billing-project=BILLING_PROJECT_ID \
    --pubsub-topic="projects/PROJECT_ID/topics/TOPIC_ID" \
    --add-asset-names=ASSET_NAME_1,ASSET_NAME_2,...

Ingresa los siguientes valores:

  • PROJECT_ID: Es el ID del proyecto cuyos metadatos se publican en el feed.

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tu tema de Pub/Sub. Obtén más información sobre los proyectos de facturación.

  • TOPIC_ID: Es el ID del tema de Pub/Sub en el que se publican las notificaciones.

  • ASSET_NAME: Opcional Una lista separada por comas de los nombres completos de los elementos para los que deseas recibir notificaciones de cambios.

Carpetas

gcloud asset feeds update FEED_ID \
    --folder=FOLDER_ID \
    --billing-project=BILLING_PROJECT_ID \
    --pubsub-topic="projects/PROJECT_ID/topics/TOPIC_ID" \
    --add-asset-names=ASSET_NAME_1,ASSET_NAME_2,...

Ingresa los siguientes valores:

  • FOLDER_ID: Es el ID de la carpeta cuyos metadatos se publican en el feed.

    Cómo encontrar un ID de carpeta de Google Cloud

    Console

    Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:

    1. Ve a la consola de Google Cloud.

      Ir a la consola de Google Cloud

    2. Haz clic en el cuadro de cambio en la barra de menú.
    3. Haz clic en el cuadro Seleccionar de y, luego, selecciona tu organización.
    4. Busca el nombre de tu carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.

    gcloud CLI

    Puedes recuperar un ID de carpeta de Google Cloud que se encuentra a nivel de la organización con el siguiente 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)"

    En el ejemplo anterior, TOP_LEVEL_FOLDER_NAME puede ser una coincidencia de cadenas completa o parcial. Quita la opción --format para ver más información sobre las carpetas encontradas.

    Para obtener el ID de una carpeta dentro de otra, enumera las subcarpetas:

    gcloud resource-manager folders list --folder=FOLDER_ID

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tu tema de Pub/Sub. Obtén más información sobre los proyectos de facturación.

  • PROJECT_ID: Es el ID del proyecto en el que se encuentra el tema de Pub/Sub.

  • TOPIC_ID: Es el ID del tema de Pub/Sub en el que se publican las notificaciones.

  • ASSET_NAME: Opcional Una lista separada por comas de los nombres completos de los elementos para los que deseas recibir notificaciones de cambios.

Organizaciones

gcloud asset feeds update FEED_ID \
    --organization=ORGANIZATION_ID \
    --billing-project=BILLING_PROJECT_ID \
    --pubsub-topic="projects/PROJECT_ID/topics/TOPIC_ID" \
    --add-asset-names=ASSET_NAME_1,ASSET_NAME_2,...

Ingresa los siguientes valores:

  • ORGANIZATION_ID: Es el ID de la organización cuyos metadatos se publican en el feed.

    Cómo encontrar un ID de organización de Google Cloud

    Console

    Para encontrar un ID de organización de Google Cloud, completa los siguientes pasos:

    1. Ve a la consola de Google Cloud.

      Ir a la consola de Google Cloud

    2. Haz clic en el cuadro de cambio en la barra de menú.
    3. Haz clic en el cuadro Seleccionar de y, luego, selecciona tu organización.
    4. Haz clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de la organización.

    gcloud CLI

    Puedes recuperar un ID de organización de Google Cloud con el siguiente comando:

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tu tema de Pub/Sub. Obtén más información sobre los proyectos de facturación.

  • PROJECT_ID: Es el ID del proyecto en el que se encuentra el tema de Pub/Sub.

  • TOPIC_ID: Es el ID del tema de Pub/Sub en el que se publican las notificaciones.

  • ASSET_NAME: Opcional Una lista separada por comas de los nombres completos de los elementos para los que deseas recibir notificaciones de cambios.

REST

curl -X PATCH \
     -H "X-Goog-User-Project: BILLING_PROJECT_ID" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "feed": {
            "assetNames": [
                "ASSET_NAME_1",
                "ASSET_NAME_2",
                "..."
              ],
            "feedOutputConfig": {
              "pubsubDestination": {
                "topic": "projects/PROJECT_ID/topics/TOPIC_ID"
              }
            }
          },
          "update_mask": {
            "paths": ["asset_names", "feed_output_config.pubsub_destination.topic"]
          }
        }' \
     https://cloudasset.googleapis.com/v1/SCOPE/feeds/FEED_ID

Ingresa los siguientes valores:

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tu tema de Pub/Sub. Obtén más información sobre los proyectos de facturación.

  • ASSET_NAME: Opcional Una lista separada por comas de los nombres completos de los elementos para los que quieres recibir notificaciones de cambios.

  • PROJECT_ID: Es el ID del proyecto en el que se encuentra el tema de Pub/Sub.

  • TOPIC_ID: Es el ID del tema de Pub/Sub en el que se publican las notificaciones.

  • SCOPE: Un permiso puede ser un proyecto, una carpeta o una organización. No se admiten los IDs de proyecto.

    Los valores permitidos son los siguientes:

    • projects/PROJECT_NUMBER

      Cómo encontrar un número de proyecto de Google Cloud

      Console

      Para encontrar un número de proyecto de Google Cloud, completa los siguientes pasos:

      1. Ve a la página Panel en la consola de Google Cloud.

        Ir al panel

      2. Haz clic en el cuadro de cambio en la barra de menú.
      3. Elige tu organización en el cuadro Seleccionar desde y, luego, busca el nombre del proyecto.
      4. Haz clic en el nombre del proyecto para cambiar a ese proyecto. El número del proyecto se muestra en la tarjeta Información del proyecto.

      gcloud CLI

      Puedes recuperar el número de proyecto de Google Cloud con el siguiente comando:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Cómo encontrar un ID de carpeta de Google Cloud

      Console

      Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:

      1. Ve a la consola de Google Cloud.

        Ir a la consola de Google Cloud

      2. Haz clic en el cuadro de cambio en la barra de menú.
      3. Haz clic en el cuadro Seleccionar de y, luego, selecciona tu organización.
      4. Busca el nombre de tu carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.

      gcloud CLI

      Puedes recuperar un ID de carpeta de Google Cloud que se encuentra a nivel de la organización con el siguiente 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)"

      En el ejemplo anterior, TOP_LEVEL_FOLDER_NAME puede ser una coincidencia de cadenas completa o parcial. Quita la opción --format para ver más información sobre las carpetas encontradas.

      Para obtener el ID de una carpeta dentro de otra, enumera las subcarpetas:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Cómo encontrar un ID de organización de Google Cloud

      Console

      Para encontrar un ID de organización de Google Cloud, completa los siguientes pasos:

      1. Ve a la consola de Google Cloud.

        Ir a la consola de Google Cloud

      2. Haz clic en el cuadro de cambio en la barra de menú.
      3. Haz clic en el cuadro Seleccionar de y, luego, selecciona tu organización.
      4. Haz clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de la organización.

      gcloud CLI

      Puedes recuperar un ID de organización de Google Cloud con el siguiente comando:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

Borrando feeds

Si ya no deseas recibir notificaciones de los cambios de recursos, usa el siguiente comando para borrar un feed de un proyecto.

gcloud

Proyectos

gcloud asset feeds delete FEED_ID \
    --project=PROJECT_ID \
    --billing-project=BILLING_PROJECT_ID

Ingresa los siguientes valores:

  • PROJECT_ID: Es el ID del proyecto cuyos metadatos se publican en el feed.

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tu tema de Pub/Sub. Obtén más información sobre los proyectos de facturación.

Carpetas

gcloud asset feeds delete FEED_ID \
    --folder=FOLDER_ID \
    --billing-project=BILLING_PROJECT_ID

Ingresa los siguientes valores:

  • FOLDER_ID: Es el ID de la carpeta cuyos metadatos se publican en el feed.

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tu tema de Pub/Sub. Obtén más información sobre los proyectos de facturación.

Organizaciones

gcloud asset feeds delete FEED_ID \
    --organization=ORGANIZATION_ID \
    --billing-project=BILLING_PROJECT_ID

Ingresa los siguientes valores:

  • ORGANIZATION_ID: Es el ID de la organización cuyos metadatos se publican en el feed.

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tu tema de Pub/Sub. Obtén más información sobre los proyectos de facturación.

REST

curl -X DELETE \
     -H "X-Goog-User-Project: BILLING_PROJECT_ID" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     https://cloudasset.googleapis.com/v1/SCOPE/feeds/FEED_ID

Ingresa los siguientes valores:

  • BILLING_PROJECT_ID: Opcional El ID del proyecto en el que se encuentra el agente de servicio predeterminado de Cloud Asset Inventory y que tiene permisos para administrar tu tema de Pub/Sub. Obtén más información sobre los proyectos de facturación.

  • SCOPE: Un permiso puede ser un proyecto, una carpeta o una organización. No se admiten los IDs de proyecto.

    Los valores permitidos son los siguientes:

    • projects/PROJECT_NUMBER

      Cómo encontrar un número de proyecto de Google Cloud

      Console

      Para encontrar un número de proyecto de Google Cloud, completa los siguientes pasos:

      1. Ve a la página Panel en la consola de Google Cloud.

        Ir al panel

      2. Haz clic en el cuadro de cambio en la barra de menú.
      3. Elige tu organización en el cuadro Seleccionar desde y, luego, busca el nombre del proyecto.
      4. Haz clic en el nombre del proyecto para cambiar a ese proyecto. El número del proyecto se muestra en la tarjeta Información del proyecto.

      gcloud CLI

      Puedes recuperar el número de proyecto de Google Cloud con el siguiente comando:

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Cómo encontrar un ID de carpeta de Google Cloud

      Console

      Para encontrar un ID de carpeta de Google Cloud, completa los siguientes pasos:

      1. Ve a la consola de Google Cloud.

        Ir a la consola de Google Cloud

      2. Haz clic en el cuadro de cambio en la barra de menú.
      3. Haz clic en el cuadro Seleccionar de y, luego, selecciona tu organización.
      4. Busca el nombre de tu carpeta. El ID de la carpeta se muestra junto al nombre de la carpeta.

      gcloud CLI

      Puedes recuperar un ID de carpeta de Google Cloud que se encuentra a nivel de la organización con el siguiente 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)"

      En el ejemplo anterior, TOP_LEVEL_FOLDER_NAME puede ser una coincidencia de cadenas completa o parcial. Quita la opción --format para ver más información sobre las carpetas encontradas.

      Para obtener el ID de una carpeta dentro de otra, enumera las subcarpetas:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Cómo encontrar un ID de organización de Google Cloud

      Console

      Para encontrar un ID de organización de Google Cloud, completa los siguientes pasos:

      1. Ve a la consola de Google Cloud.

        Ir a la consola de Google Cloud

      2. Haz clic en el cuadro de cambio en la barra de menú.
      3. Haz clic en el cuadro Seleccionar de y, luego, selecciona tu organización.
      4. Haz clic en la pestaña Todos. El ID de la organización se muestra junto al nombre de la organización.

      gcloud CLI

      Puedes recuperar un ID de organización de Google Cloud con el siguiente comando:

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

Soluciona problemas

En esta sección, se muestra cómo solucionar problemas conocidos.

Error al crear o actualizar los feeds

Si falla la creación o actualización de un feed, es posible que se deba a un problema con los permisos. Cada solicitud de actualización o creación de feed incluye tres partes: el proyecto de consumidor que se usa para llamar a la API, el superior de destino que se supervisará y el tema de Pub/Sub de destino para recibir la notificación.

Para crear o actualizar un feed, se requieren los siguientes permisos:

  • El emisor o la cuenta de servicio deben tener permisos de recursos en el superior de destino (que puede ser un proyecto, una carpeta o una organización).

  • La cuenta de servicio del recurso (service-PROJECT_NUMBER@gcp-sa-cloudasset.iam.gserviceaccount.com) en el proyecto de consumidor habilitado para la API de Cloud Asset debe tener el permiso pubsub.topics.publish en el tema de Pub/Sub de destino.

Un mensaje de error que contenga does not have permission podría indicar que el usuario o la cuenta de servicio no tiene los permisos de elementos. Obtén más información sobre los permisos necesarios.

Un mensaje de error que contenga Fail to use TOPIC_ID as feed output destination podría indicar que hay un problema al publicar el mensaje en el tema que especificaste en el destino de salida del feed. Para resolver el problema, sigue estos pasos:

  • Si usas Google Cloud CLI, asegúrate de usar el proyecto correcto:

    gcloud config list project
    
  • Asegúrate de haber especificado el nombre correcto del tema.

  • Asegúrate de que la cuenta de servicio (service-PROJECT_NUMBER@gcp-sa-cloudasset.iam.gserviceaccount.com) tenga el permiso pubsub.topics.publish sobre el tema, en el que PROJECT_NUMBER es el número del proyecto habilitado para Cloud Asset Inventory desde el que planeas crear el feed.

    Cómo encontrar un número de proyecto de Google Cloud

    Console

    Para encontrar un número de proyecto de Google Cloud, completa los siguientes pasos:

    1. Ve a la página Panel en la consola de Google Cloud.

      Ir al panel

    2. Haz clic en el cuadro de cambio en la barra de menú.
    3. Elige tu organización en el cuadro Seleccionar desde y, luego, busca el nombre del proyecto.
    4. Haz clic en el nombre del proyecto para cambiar a ese proyecto. El número del proyecto se muestra en la tarjeta Información del proyecto.

    gcloud CLI

    Puedes recuperar el número de proyecto de Google Cloud con el siguiente comando:

    gcloud projects describe PROJECT_ID --format="value(projectNumber)"

Errores en la recepción de actualizaciones de recursos o actualizaciones de políticas de IAM

Si no recibes notificaciones sobre las actualizaciones de los recursos o las políticas de IAM, verifica los siguientes detalles de configuración para resolver el problema:

  • Asegúrate de que los metadatos hayan cambiado en tus recursos. El feed en tiempo real solo envía actualizaciones cuando cambian los metadatos de los tipos de recursos admitidos; las operaciones como subir un archivo nuevo a tu bucket de Cloud Storage no activan un cambio de metadatos.

  • Asegúrate de que tus recursos cumplan con uno de los criterios que especificaste en el feed, que son los nombres de los recursos y los tipos de recursos.

  • Revisa los registros para ver si hay errores cuendo se publican actualizaciones en el tema.

Usa Cloud Logging

En esta sección, se describe cómo configurar y ver Logging para los feeds en tiempo real de Cloud Asset Inventory.

Cuando los feeds en tiempo real no pueden enviar recursos ni actualizaciones de las políticas de IAM a través de Pub/Sub, Cloud Asset Inventory registra el estado de error y el mensaje a través de Logging. Logging está habilitado de forma predeterminada y pertenece a la observabilidad de Google Cloud. Obtén más información sobre los precios de observabilidad de Google Cloud.

Visualiza registros del feed en tiempo real

Para ver los registros, ve al Explorador de registros.

El registro de feeds en tiempo real se indexa por un tema de Pub/Sub. Para ver todos los registros, sigue estos pasos:

  1. Haz clic en el cuadro combinado Recurso, que se encuentra junto al cuadro Buscar todos los campos.

  2. Busca Cloud Pub/Sub Topic y, luego, haz clic en el tipo de recurso Tema de Cloud Pub/Sub.

  3. Haz clic en el ID del tema que deseas ver.

  4. Haz clic en Aplicar.

Se aplica la codificación UTF-8 a los campos de registro. Los caracteres que no son caracteres UTF-8 se reemplazan con signos de interrogación.

Información registrada

Las entradas de registro de feed en tiempo real contienen los siguientes tipos de información:

  • Información general que se muestra en la mayoría de los registros de Google Cloud, como la gravedad, el ID del proyecto, el número del proyecto o la marca de tiempo.

  • Campos de registro de feeds en tiempo real en jsonPayload, que contienen el nombre del recurso, la configuración de salida del feed y el estado de error cuando se publican recursos o actualizaciones de la política de IAM.

En la siguiente tabla, se muestra qué tipo de información contiene cada campo.

Campo Tipo y descripción
name

string

Nombre completo del feed El formato es uno de los siguientes:

  • projects/PROJECT_ID/feeds/FEED_ID
  • folders/FOLDER_ID/feeds/FEED_ID
  • organizations/ORGANIZATION_ID/feeds/FEED_ID
asset_name

string

El nombre completo del recurso para recibir actualizaciones. Por ejemplo:

//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1

Consulta Nombres de recursos para obtener más información.

feed_output_config

FeedOutputConfig

Configuración de salida del feed que define dónde se publican las actualizaciones de los elementos.

condition

Expr

Condición del feed que determina si se debe publicar una actualización de elementos.

error_status

Status

Estado que se muestra cuando se produce un error al publicar las actualizaciones del recurso en un feed.