Contrôler les modifications apportées aux éléments

Cette page explique comment créer et gérer des flux dans un projet.

Présentation

Pour recevoir des notifications en temps réel sur les modifications des ressources et des règles, vous pouvez créer un flux et vous y abonner. Lorsque vous configurez le flux, vous pouvez indiquer que vous souhaitez surveiller les modifications des types de ressources, des stratégies IAM, des stratégies d'accès et des règles d'administration d'administration compatibles dans une organisation, un dossier ou un projet. Vous pouvez également ajouter des conditions à votre flux afin de ne recevoir des notifications que pour certains types de modifications apportées à un élément. Après avoir configuré votre flux, vous recevez immédiatement des notifications chaque fois que les éléments spécifiés sont modifiés, envoyées via Pub/Sub (au format TemporalAsset). Les notifications en temps réel se connectent à vos charges de travail existantes. Grâce à cette fonctionnalité, vous pouvez fusionner des actions telles que la création d'une fonction Cloud pour annuler une modification de ressource après sa détection.

Avant de commencer

Avant de commencer, suivez les étapes ci-dessous.

  1. Activez l'API Cloud Asset Inventory sur le projet dans lequel vous allez exécuter les commandes de l'API.

    Activer l'API Cloud Asset Inventory

  2. Configurez les autorisations requises pour appeler l'API Cloud Asset Inventory à l'aide de gcloud CLI ou de l'API.

  3. Pour configurer votre environnement, procédez comme suit :

    gcloud CLI

    Pour configurer votre environnement afin d'utiliser la gcloud CLI pour appeler l'API Cloud Asset Inventory, installez la Google Cloud CLI sur votre client local.

    REST

    Pour configurer votre environnement afin d'appeler l'API Cloud Asset Inventory avec la commande curl, procédez comme suit.

    1. Vérifiez que vous avez accès à la commande curl.

    2. Assurez-vous d'attribuer à votre compte l'un des rôles suivants sur votre projet, dossier ou organisation.

      • Rôle Lecteur d'éléments cloud (roles/cloudasset.viewer)

      • Rôle de base Propriétaire (roles/owner)

  4. Accordez à votre utilisateur ou à votre compte de service les autorisations nécessaires pour appeler l'API pour les flux en temps réel. Les autorisations suivantes sont nécessaires pour chaque opération :

    Autorisation Description
    cloudasset.feeds.create
    cloudasset.assets.exportResource
    Créez des flux
    cloudasset.feeds.update
    cloudasset.assets.exportResource
    Mettre à jour des flux
    cloudasset.feeds.delete Supprimer des flux
    cloudasset.feeds.get Obtenir des flux
    cloudasset.feeds.list Répertorier des flux

    Le rôle de propriétaire d'éléments Cloud (roles/cloudasset.owner) accorde toutes les autorisations liées à l'API Cloud Asset, y compris celles répertoriées dans le tableau précédent. Pour en savoir plus sur les rôles et les autorisations, consultez les pages Comprendre les rôles et Configurer des autorisations.

  5. Si vous exportez des métadonnées d'un projet à un autre, assurez-vous que le compte de service d'inventaire des éléments cloud par défaut du projet d'exportation existe et qu'il dispose des autorisations appropriées.

  6. Créez un sujet Pub/Sub si vous n'en avez pas déjà un.

Limites

  • La création, la mise à jour ou la suppression de flux peuvent prendre jusqu'à 10 minutes.

  • Le projet client dans lequel le flux est créé doit survivre au flux, car le compte de service utilisé pour publier sur le sujet Pub/Sub de destination se trouve dans le projet client. Si le projet client est supprimé, Cloud Asset Inventory ne peut pas publier sur la destination. Le flux ne fonctionne plus et est supprimé dès que la suppression du projet est définitive.

Créer des flux

Vous pouvez créer jusqu'à 200 flux pour un même parent. Cette limite ne s'applique qu'aux flux qui suivent directement ce parent et ne comptabilise pas les flux de ses enfants. Par exemple, si vous avez 10 projets sous une organisation, chaque projet peut comporter jusqu'à 200 flux, et chaque organisation peut également comporter jusqu'à 200 flux.

Pour créer un flux pour des projets, des dossiers ou des organisations, effectuez l'une des requêtes suivantes. L'inventaire des éléments cloud définit une notification pour tout élément qui correspond à au moins l'un des paramètres ASSET de votre flux ET à l'expression de condition, si elle est spécifiée.

gcloud

Projets

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"

Indiquez les valeurs suivantes :

  • FEED_ID: identifiant unique du flux d'assets.

  • PROJECT_ID: ID du projet dont les métadonnées sont envoyées au flux.

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service de l'inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer votre sujet Pub/Sub. En savoir plus sur les projets de facturation

  • TOPIC_ID: ID du sujet Pub/Sub dans lequel publier les notifications.

  • ASSET_NAME : facultatif. Liste des noms complets des éléments pour lesquels vous souhaitez recevoir des notifications de modification, séparés par une virgule.

    Au moins un élément ASSET_NAME ou ASSET_TYPE est requis.

  • ASSET_TYPE : facultatif. Liste des types d'éléments inclus dans l'index de recherche pour lesquels vous souhaitez recevoir des notifications de modification, séparés par une virgule. Les expressions régulières compatibles avec RE2 sont acceptées. Si l'expression régulière ne correspond à aucun type d'élément compatible, une erreur INVALID_ARGUMENT est renvoyée.

    Au moins un élément ASSET_NAME ou ASSET_TYPE est requis.

  • CONTENT_TYPE : facultatif. Type de contenu de l'élément pour lequel vous souhaitez recevoir des notifications de modification.

  • CONDITION_TITLE : facultatif. Titre de la condition à appliquer au flux.

  • CONDITION_DESCRIPTION : facultatif. Description de la condition à appliquer au flux.

  • CONDITION_EXPRESSION : facultatif. Expression de condition à appliquer au flux.

Folders

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"

Indiquez les valeurs suivantes :

  • FEED_ID: identifiant unique du flux d'assets.

  • FOLDER_ID: ID du dossier dont les métadonnées sont envoyées au flux.

    Trouver un ID de dossier Google Cloud

    Console

    Pour trouver un ID de dossier Google Cloud, procédez comme suit:

    1. Accédez à Google Cloud Console.

      Accéder à la console Google Cloud

    2. Cliquez sur le sélecteur dans la barre de menu.
    3. Cochez la case Sélectionner à partir de, puis sélectionnez votre organisation.
    4. Recherchez le nom de votre dossier. L'ID du dossier est indiqué à côté de son nom.

    gcloud CLI

    Vous pouvez récupérer un ID de dossier Google Cloud situé au niveau de l'organisation à l'aide de la commande suivante:

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

    TOP_LEVEL_FOLDER_NAME peut être une correspondance de chaîne complète ou partielle. Supprimez l'option --format pour afficher plus d'informations sur les dossiers trouvés.

    Pour obtenir l'ID d'un dossier dans un autre dossier, répertoriez les sous-dossiers:

    gcloud resource-manager folders list --folder=FOLDER_ID

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service de l'inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer votre sujet Pub/Sub. En savoir plus sur les projets de facturation

  • PROJECT_ID: ID du projet dans lequel se trouve le sujet Pub/Sub.

  • TOPIC_ID: ID du sujet Pub/Sub dans lequel publier les notifications.

  • ASSET_NAME : facultatif. Liste des noms complets des éléments pour lesquels vous souhaitez recevoir des notifications de modification, séparés par une virgule.

    Au moins un élément ASSET_NAME ou ASSET_TYPE est requis.

  • ASSET_TYPE : facultatif. Liste des types d'éléments inclus dans l'index de recherche pour lesquels vous souhaitez recevoir des notifications de modification, séparés par une virgule. Les expressions régulières sont acceptées. Si l'expression régulière ne correspond à aucun type d'élément compatible, une erreur INVALID_ARGUMENT est renvoyée.

    Au moins un élément ASSET_NAME ou ASSET_TYPE est requis.

  • CONTENT_TYPE : facultatif. Type de contenu de l'élément pour lequel vous souhaitez recevoir des notifications de modification.

  • CONDITION_TITLE : facultatif. Titre de la condition à appliquer au flux.

  • CONDITION_DESCRIPTION : facultatif. Description de la condition à appliquer au flux.

  • CONDITION_EXPRESSION : facultatif. Expression de condition à appliquer au flux.

Organisations

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"

Indiquez les valeurs suivantes :

  • FEED_ID: identifiant unique du flux d'assets.

  • ORGANIZATION_ID: ID du projet dont les métadonnées sont envoyées au flux.

    Trouver un ID d'organisation Google Cloud

    Console

    Pour trouver un ID d'organisation Google Cloud, procédez comme suit:

    1. Accédez à Google Cloud Console.

      Accéder à la console Google Cloud

    2. Cliquez sur le sélecteur dans la barre de menu.
    3. Cochez la case Sélectionner à partir de, puis sélectionnez votre organisation.
    4. Cliquez sur l'onglet Tous. L'ID de l'organisation est affiché à côté de son nom.

    gcloud CLI

    Vous pouvez récupérer un ID d'organisation Google Cloud à l'aide de la commande suivante:

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

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service de l'inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer votre sujet Pub/Sub. En savoir plus sur les projets de facturation

  • PROJECT_ID: ID du projet dans lequel se trouve le sujet Pub/Sub.

  • TOPIC_ID: ID du sujet Pub/Sub dans lequel publier les notifications.

  • ASSET_NAME : facultatif. Liste des noms complets des éléments pour lesquels vous souhaitez recevoir des notifications de modification, séparés par une virgule.

    Au moins un élément ASSET_NAME ou ASSET_TYPE est requis.

  • ASSET_TYPE : facultatif. Liste des types d'éléments inclus dans l'index de recherche pour lesquels vous souhaitez recevoir des notifications de modification, séparés par une virgule. Les expressions régulières sont acceptées. Si l'expression régulière ne correspond à aucun type d'élément compatible, une erreur INVALID_ARGUMENT est renvoyée.

    Au moins un élément ASSET_NAME ou ASSET_TYPE est requis.

  • CONTENT_TYPE : facultatif. Type de contenu de l'élément pour lequel vous souhaitez recevoir des notifications de modification.

  • CONDITION_TITLE : facultatif. Titre de la condition à appliquer au flux.

  • CONDITION_DESCRIPTION : facultatif. Description de la condition à appliquer au flux.

  • CONDITION_EXPRESSION : facultatif. Expression de condition à appliquer au flux.

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

Indiquez les valeurs suivantes :

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service de l'inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer votre sujet Pub/Sub. En savoir plus sur les projets de facturation

  • FEED_ID: identifiant unique du flux d'assets.

  • ASSET_NAME : facultatif. Liste des noms complets des éléments pour lesquels vous souhaitez recevoir des notifications de modification, séparés par une virgule.

    Au moins un élément ASSET_NAME ou ASSET_TYPE est requis.

  • ASSET_TYPE : facultatif. Liste des types d'éléments inclus dans l'index de recherche, séparés par une virgule, pour lesquels vous souhaitez recevoir des notifications de modification. Les expressions régulières sont acceptées. Si l'expression régulière ne correspond à aucun type d'élément compatible, une erreur INVALID_ARGUMENT est renvoyée.

    Au moins un élément ASSET_NAME ou ASSET_TYPE est requis.

  • CONTENT_TYPE : facultatif. Type de contenu de l'élément pour lequel vous souhaitez recevoir des notifications de modification.

  • PROJECT_ID: ID du projet dans lequel se trouve le sujet Pub/Sub.

  • TOPIC_ID: ID du sujet Pub/Sub dans lequel publier les notifications.

  • CONDITION_TITLE : facultatif. Titre de la condition à appliquer au flux.

  • CONDITION_DESCRIPTION : facultatif. Description de l'état à appliquer au flux.

  • CONDITION_EXPRESSION : facultatif. Expression de condition à appliquer au flux.

  • SCOPE: un champ d'application peut être un projet, un dossier ou une organisation.

    Les valeurs autorisées sont les suivantes :

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Trouver un numéro de projet Google Cloud

      Console

      Pour trouver un numéro de projet Google Cloud, procédez comme suit:

      1. Accédez à la page Tableau de bord dans la console Google Cloud.

        Accéder à Google Dashboard

      2. Cliquez sur le sélecteur dans la barre de menu.
      3. Sélectionnez votre organisation dans la zone Sélectionner à partir de, puis recherchez le nom de votre projet.
      4. Cliquez sur le nom du projet pour basculer vers ce projet. Le numéro de projet est indiqué dans la fiche Informations sur le projet.

      gcloud CLI

      Vous pouvez récupérer un numéro de projet Google Cloud à l'aide de la commande suivante:

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

    • folders/FOLDER_ID

      Trouver un ID de dossier Google Cloud

      Console

      Pour trouver un ID de dossier Google Cloud, procédez comme suit:

      1. Accédez à Google Cloud Console.

        Accéder à la console Google Cloud

      2. Cliquez sur le sélecteur dans la barre de menu.
      3. Cochez la case Sélectionner à partir de, puis sélectionnez votre organisation.
      4. Recherchez le nom de votre dossier. L'ID du dossier est indiqué à côté de son nom.

      gcloud CLI

      Vous pouvez récupérer un ID de dossier Google Cloud situé au niveau de l'organisation à l'aide de la commande suivante:

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

      TOP_LEVEL_FOLDER_NAME peut être une correspondance de chaîne complète ou partielle. Supprimez l'option --format pour afficher plus d'informations sur les dossiers trouvés.

      Pour obtenir l'ID d'un dossier dans un autre dossier, répertoriez les sous-dossiers:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Trouver un ID d'organisation Google Cloud

      Console

      Pour trouver un ID d'organisation Google Cloud, procédez comme suit:

      1. Accédez à Google Cloud Console.

        Accéder à la console Google Cloud

      2. Cliquez sur le sélecteur dans la barre de menu.
      3. Cochez la case Sélectionner à partir de, puis sélectionnez votre organisation.
      4. Cliquez sur l'onglet Tous. L'ID de l'organisation est affiché à côté de son nom.

      gcloud CLI

      Vous pouvez récupérer un ID d'organisation Google Cloud à l'aide de la commande suivante:

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

Après avoir créé un flux, abonnez-vous aux mises à jour à partir du sujet Pub/Sub que vous avez spécifié dans le flux. Un nouveau flux peut prendre jusqu'à dix minutes pour commencer à envoyer des notifications. Une notification est envoyée pour chaque modification apportée à un élément qui correspond à assetNames ou assetTypes, et satisfait la condition dans le flux.

Le premier message publié dans le sujet Pub/Sub est un message de bienvenue au format chaîne, et tous les messages suivants sont au format TemporalAsset. Voici un exemple de message pour le type de contenu 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]"
  }
}

Pour en savoir plus sur Pub/Sub ou sur la configuration des abonnements, consultez la documentation de Pub/Sub.

Créer un flux pour les modifications apportées au bucket Cloud Storage ou à la table BigQuery

Les commandes suivantes créent des notifications à partir du sujet Pub/Sub TOPIC_ID lorsque le contenu change dans le bucket Cloud Storage BUCKET_NAME ou dans une table BigQuery:

gcloud

Projets

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

Indiquez les valeurs suivantes :

  • FEED_ID: identifiant unique du flux d'assets.

  • PROJECT_ID: ID du projet dont les métadonnées sont envoyées au flux.

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service de l'inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer votre sujet Pub/Sub. En savoir plus sur les projets de facturation

  • TOPIC_ID: ID du sujet Pub/Sub dans lequel publier les notifications.

  • BUCKET_NAME: nom du bucket Cloud Storage à surveiller.

Folders

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

Indiquez les valeurs suivantes :

  • FEED_ID: identifiant unique du flux d'assets.

  • FOLDER_ID: ID du dossier dont les métadonnées sont envoyées au flux.

    Trouver un ID de dossier Google Cloud

    Console

    Pour trouver un ID de dossier Google Cloud, procédez comme suit:

    1. Accédez à Google Cloud Console.

      Accéder à la console Google Cloud

    2. Cliquez sur le sélecteur dans la barre de menu.
    3. Cochez la case Sélectionner à partir de, puis sélectionnez votre organisation.
    4. Recherchez le nom de votre dossier. L'ID du dossier est indiqué à côté de son nom.

    gcloud CLI

    Vous pouvez récupérer un ID de dossier Google Cloud situé au niveau de l'organisation à l'aide de la commande suivante:

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

    TOP_LEVEL_FOLDER_NAME peut être une correspondance de chaîne complète ou partielle. Supprimez l'option --format pour afficher plus d'informations sur les dossiers trouvés.

    Pour obtenir l'ID d'un dossier dans un autre dossier, répertoriez les sous-dossiers:

    gcloud resource-manager folders list --folder=FOLDER_ID

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service de l'inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer votre sujet Pub/Sub. En savoir plus sur les projets de facturation

  • TOPIC_ID: ID du sujet Pub/Sub dans lequel publier les notifications.

  • BUCKET_NAME: nom du bucket Cloud Storage à surveiller.

Organisations

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

Indiquez les valeurs suivantes :

  • FEED_ID: identifiant unique du flux d'assets.

  • ORGANIZATION_ID: ID de l'organisation dont les métadonnées sont envoyées au flux.

    Trouver un ID d'organisation Google Cloud

    Console

    Pour trouver un ID d'organisation Google Cloud, procédez comme suit:

    1. Accédez à Google Cloud Console.

      Accéder à la console Google Cloud

    2. Cliquez sur le sélecteur dans la barre de menu.
    3. Cochez la case Sélectionner à partir de, puis sélectionnez votre organisation.
    4. Cliquez sur l'onglet Tous. L'ID de l'organisation est affiché à côté de son nom.

    gcloud CLI

    Vous pouvez récupérer un ID d'organisation Google Cloud à l'aide de la commande suivante:

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

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service de l'inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer votre sujet Pub/Sub. En savoir plus sur les projets de facturation

  • TOPIC_ID: ID du sujet Pub/Sub dans lequel publier les notifications.

  • BUCKET_NAME: nom du bucket Cloud Storage à surveiller.

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

Indiquez les valeurs suivantes :

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service de l'inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer votre sujet Pub/Sub. En savoir plus sur les projets de facturation

  • FEED_ID: identifiant unique du flux d'assets.

  • BUCKET_NAME: nom du bucket Cloud Storage à surveiller.

  • PROJECT_ID: ID du projet dont les métadonnées sont envoyées au flux.

  • TOPIC_ID: ID du sujet Pub/Sub dans lequel publier les notifications.

  • SCOPE: un champ d'application peut être un projet, un dossier ou une organisation.

    Les valeurs autorisées sont les suivantes :

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Trouver un numéro de projet Google Cloud

      Console

      Pour trouver un numéro de projet Google Cloud, procédez comme suit:

      1. Accédez à la page Tableau de bord dans la console Google Cloud.

        Accéder à Google Dashboard

      2. Cliquez sur le sélecteur dans la barre de menu.
      3. Sélectionnez votre organisation dans la zone Sélectionner à partir de, puis recherchez le nom de votre projet.
      4. Cliquez sur le nom du projet pour basculer vers ce projet. Le numéro de projet est indiqué dans la fiche Informations sur le projet.

      gcloud CLI

      Vous pouvez récupérer un numéro de projet Google Cloud à l'aide de la commande suivante:

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

    • folders/FOLDER_ID

      Trouver un ID de dossier Google Cloud

      Console

      Pour trouver un ID de dossier Google Cloud, procédez comme suit:

      1. Accédez à Google Cloud Console.

        Accéder à la console Google Cloud

      2. Cliquez sur le sélecteur dans la barre de menu.
      3. Cochez la case Sélectionner à partir de, puis sélectionnez votre organisation.
      4. Recherchez le nom de votre dossier. L'ID du dossier est indiqué à côté de son nom.

      gcloud CLI

      Vous pouvez récupérer un ID de dossier Google Cloud situé au niveau de l'organisation à l'aide de la commande suivante:

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

      TOP_LEVEL_FOLDER_NAME peut être une correspondance de chaîne complète ou partielle. Supprimez l'option --format pour afficher plus d'informations sur les dossiers trouvés.

      Pour obtenir l'ID d'un dossier dans un autre dossier, répertoriez les sous-dossiers:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Trouver un ID d'organisation Google Cloud

      Console

      Pour trouver un ID d'organisation Google Cloud, procédez comme suit:

      1. Accédez à Google Cloud Console.

        Accéder à la console Google Cloud

      2. Cliquez sur le sélecteur dans la barre de menu.
      3. Cochez la case Sélectionner à partir de, puis sélectionnez votre organisation.
      4. Cliquez sur l'onglet Tous. L'ID de l'organisation est affiché à côté de son nom.

      gcloud CLI

      Vous pouvez récupérer un ID d'organisation Google Cloud à l'aide de la commande suivante:

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

Les notifications ne sont envoyées que lorsque les métadonnées de la ressource ou de la règle de la ressource elle-même sont modifiées. Dans l'exemple précédent, la modification d'une ressource dans des buckets Cloud Storage ou des tables BigQuery ne déclenche pas de notification.

Créer un flux pour modifier les types d'éléments

Les requêtes suivantes créent des notifications à partir du sujet Pub/Sub TOPIC_ID lorsque le contenu change dans les ressources dont le type d'élément commence par compute.googleapis.com.

gcloud

Projets

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

Indiquez les valeurs suivantes :

  • FEED_ID: identifiant unique du flux d'assets.

  • PROJECT_ID: ID du projet dont les métadonnées sont envoyées au flux.

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service de l'inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer votre sujet Pub/Sub. En savoir plus sur les projets de facturation

  • TOPIC_ID: ID du sujet Pub/Sub dans lequel publier les notifications.

Folders

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

Indiquez les valeurs suivantes :

  • FEED_ID: identifiant unique du flux d'assets.

  • FOLDER_ID: ID du dossier dont les métadonnées sont envoyées au flux.

    Trouver un ID de dossier Google Cloud

    Console

    Pour trouver un ID de dossier Google Cloud, procédez comme suit:

    1. Accédez à Google Cloud Console.

      Accéder à la console Google Cloud

    2. Cliquez sur le sélecteur dans la barre de menu.
    3. Cochez la case Sélectionner à partir de, puis sélectionnez votre organisation.
    4. Recherchez le nom de votre dossier. L'ID du dossier est indiqué à côté de son nom.

    gcloud CLI

    Vous pouvez récupérer un ID de dossier Google Cloud situé au niveau de l'organisation à l'aide de la commande suivante:

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

    TOP_LEVEL_FOLDER_NAME peut être une correspondance de chaîne complète ou partielle. Supprimez l'option --format pour afficher plus d'informations sur les dossiers trouvés.

    Pour obtenir l'ID d'un dossier dans un autre dossier, répertoriez les sous-dossiers:

    gcloud resource-manager folders list --folder=FOLDER_ID

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service de l'inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer votre sujet Pub/Sub. En savoir plus sur les projets de facturation

  • TOPIC_ID: ID du sujet Pub/Sub dans lequel publier les notifications.

Organisations

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

Indiquez les valeurs suivantes :

  • FEED_ID: identifiant unique du flux d'assets.

  • ORGANIZATION_ID: ID de l'organisation dont les métadonnées sont envoyées au flux.

    Trouver un ID d'organisation Google Cloud

    Console

    Pour trouver un ID d'organisation Google Cloud, procédez comme suit:

    1. Accédez à Google Cloud Console.

      Accéder à la console Google Cloud

    2. Cliquez sur le sélecteur dans la barre de menu.
    3. Cochez la case Sélectionner à partir de, puis sélectionnez votre organisation.
    4. Cliquez sur l'onglet Tous. L'ID de l'organisation est affiché à côté de son nom.

    gcloud CLI

    Vous pouvez récupérer un ID d'organisation Google Cloud à l'aide de la commande suivante:

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

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service de l'inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer votre sujet Pub/Sub. En savoir plus sur les projets de facturation

  • TOPIC_ID: ID du sujet Pub/Sub dans lequel publier les notifications.

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

Indiquez les valeurs suivantes :

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service de l'inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer votre sujet Pub/Sub. En savoir plus sur les projets de facturation

  • FEED_ID: identifiant unique du flux d'assets.

  • PROJECT_ID: ID du projet dont les métadonnées sont envoyées au flux.

  • TOPIC_ID: ID du sujet Pub/Sub dans lequel publier les notifications.

  • SCOPE: un champ d'application peut être un projet, un dossier ou une organisation.

    Les valeurs autorisées sont les suivantes :

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Trouver un numéro de projet Google Cloud

      Console

      Pour trouver un numéro de projet Google Cloud, procédez comme suit:

      1. Accédez à la page Tableau de bord dans la console Google Cloud.

        Accéder à Google Dashboard

      2. Cliquez sur le sélecteur dans la barre de menu.
      3. Sélectionnez votre organisation dans la zone Sélectionner à partir de, puis recherchez le nom de votre projet.
      4. Cliquez sur le nom du projet pour basculer vers ce projet. Le numéro de projet est indiqué dans la fiche Informations sur le projet.

      gcloud CLI

      Vous pouvez récupérer un numéro de projet Google Cloud à l'aide de la commande suivante:

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

    • folders/FOLDER_ID

      Trouver un ID de dossier Google Cloud

      Console

      Pour trouver un ID de dossier Google Cloud, procédez comme suit:

      1. Accédez à Google Cloud Console.

        Accéder à la console Google Cloud

      2. Cliquez sur le sélecteur dans la barre de menu.
      3. Cochez la case Sélectionner à partir de, puis sélectionnez votre organisation.
      4. Recherchez le nom de votre dossier. L'ID du dossier est indiqué à côté de son nom.

      gcloud CLI

      Vous pouvez récupérer un ID de dossier Google Cloud situé au niveau de l'organisation à l'aide de la commande suivante:

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

      TOP_LEVEL_FOLDER_NAME peut être une correspondance de chaîne complète ou partielle. Supprimez l'option --format pour afficher plus d'informations sur les dossiers trouvés.

      Pour obtenir l'ID d'un dossier dans un autre dossier, répertoriez les sous-dossiers:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Trouver un ID d'organisation Google Cloud

      Console

      Pour trouver un ID d'organisation Google Cloud, procédez comme suit:

      1. Accédez à Google Cloud Console.

        Accéder à la console Google Cloud

      2. Cliquez sur le sélecteur dans la barre de menu.
      3. Cochez la case Sélectionner à partir de, puis sélectionnez votre organisation.
      4. Cliquez sur l'onglet Tous. L'ID de l'organisation est affiché à côté de son nom.

      gcloud CLI

      Vous pouvez récupérer un ID d'organisation Google Cloud à l'aide de la commande suivante:

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

Récupération des flux

Pour obtenir un flux spécifique, effectuez l'une des requêtes suivantes.

gcloud

Projets

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

Indiquez les valeurs suivantes :

  • FEED_ID: identifiant unique du flux d'assets.

  • PROJECT_ID: ID du projet dont les métadonnées sont publiées dans le flux.

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service de l'inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer votre sujet Pub/Sub. En savoir plus sur les projets de facturation

Folders

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

Indiquez les valeurs suivantes :

  • FEED_ID: identifiant unique du flux d'assets.

  • FOLDER_ID: ID du dossier dont les métadonnées sont publiées dans le flux.

    Trouver un ID de dossier Google Cloud

    Console

    Pour trouver un ID de dossier Google Cloud, procédez comme suit:

    1. Accédez à Google Cloud Console.

      Accéder à la console Google Cloud

    2. Cliquez sur le sélecteur dans la barre de menu.
    3. Cochez la case Sélectionner à partir de, puis sélectionnez votre organisation.
    4. Recherchez le nom de votre dossier. L'ID du dossier est indiqué à côté de son nom.

    gcloud CLI

    Vous pouvez récupérer un ID de dossier Google Cloud situé au niveau de l'organisation à l'aide de la commande suivante:

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

    TOP_LEVEL_FOLDER_NAME peut être une correspondance de chaîne complète ou partielle. Supprimez l'option --format pour afficher plus d'informations sur les dossiers trouvés.

    Pour obtenir l'ID d'un dossier dans un autre dossier, répertoriez les sous-dossiers:

    gcloud resource-manager folders list --folder=FOLDER_ID

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service de l'inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer votre sujet Pub/Sub. En savoir plus sur les projets de facturation

Organisations

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

Indiquez les valeurs suivantes :

  • FEED_ID: identifiant unique du flux d'assets.

  • ORGANIZATION_ID: ID de l'organisation dont les métadonnées sont publiées dans le flux.

    Trouver un ID d'organisation Google Cloud

    Console

    Pour trouver un ID d'organisation Google Cloud, procédez comme suit:

    1. Accédez à Google Cloud Console.

      Accéder à la console Google Cloud

    2. Cliquez sur le sélecteur dans la barre de menu.
    3. Cochez la case Sélectionner à partir de, puis sélectionnez votre organisation.
    4. Cliquez sur l'onglet Tous. L'ID de l'organisation est affiché à côté de son nom.

    gcloud CLI

    Vous pouvez récupérer un ID d'organisation Google Cloud à l'aide de la commande suivante:

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

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service de l'inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer votre sujet Pub/Sub. En savoir plus sur les projets de facturation

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

Indiquez les valeurs suivantes :

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service de l'inventaire des éléments cloud par défaut et autorisé à gérer votre sujet Pub/Sub. En savoir plus sur les projets de facturation

  • SCOPE: un champ d'application peut être un projet, un dossier ou une organisation. Les ID de projet ne sont pas acceptés.

    Les valeurs autorisées sont les suivantes :

    • projects/PROJECT_NUMBER

      Trouver un numéro de projet Google Cloud

      Console

      Pour trouver un numéro de projet Google Cloud, procédez comme suit:

      1. Accédez à la page Tableau de bord dans la console Google Cloud.

        Accéder à Google Dashboard

      2. Cliquez sur le sélecteur dans la barre de menu.
      3. Sélectionnez votre organisation dans la zone Sélectionner à partir de, puis recherchez le nom de votre projet.
      4. Cliquez sur le nom du projet pour basculer vers ce projet. Le numéro de projet est indiqué dans la fiche Informations sur le projet.

      gcloud CLI

      Vous pouvez récupérer un numéro de projet Google Cloud à l'aide de la commande suivante:

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

    • folders/FOLDER_ID

      Trouver un ID de dossier Google Cloud

      Console

      Pour trouver un ID de dossier Google Cloud, procédez comme suit:

      1. Accédez à Google Cloud Console.

        Accéder à la console Google Cloud

      2. Cliquez sur le sélecteur dans la barre de menu.
      3. Cochez la case Sélectionner à partir de, puis sélectionnez votre organisation.
      4. Recherchez le nom de votre dossier. L'ID du dossier est indiqué à côté de son nom.

      gcloud CLI

      Vous pouvez récupérer un ID de dossier Google Cloud situé au niveau de l'organisation à l'aide de la commande suivante:

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

      TOP_LEVEL_FOLDER_NAME peut être une correspondance de chaîne complète ou partielle. Supprimez l'option --format pour afficher plus d'informations sur les dossiers trouvés.

      Pour obtenir l'ID d'un dossier dans un autre dossier, répertoriez les sous-dossiers:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Trouver un ID d'organisation Google Cloud

      Console

      Pour trouver un ID d'organisation Google Cloud, procédez comme suit:

      1. Accédez à Google Cloud Console.

        Accéder à la console Google Cloud

      2. Cliquez sur le sélecteur dans la barre de menu.
      3. Cochez la case Sélectionner à partir de, puis sélectionnez votre organisation.
      4. Cliquez sur l'onglet Tous. L'ID de l'organisation est affiché à côté de son nom.

      gcloud CLI

      Vous pouvez récupérer un ID d'organisation Google Cloud à l'aide de la commande suivante:

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

  • FEED_ID: identifiant unique du flux d'assets.

Le flux est renvoyé au format suivant, où FULL_NAME_FEED_ID correspond à l'identifiant du flux avec son parent de ressource:

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

Flux de fiches

Pour répertorier tous les flux d'un projet, d'un dossier ou d'une organisation, effectuez l'une des requêtes suivantes.

gcloud

Projets

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

Indiquez les valeurs suivantes :

  • PROJECT_ID: ID du projet dont les métadonnées sont publiées dans le flux.

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service de l'inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer votre sujet Pub/Sub. En savoir plus sur les projets de facturation

Folders

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

Indiquez les valeurs suivantes :

  • FOLDER_ID: ID du dossier dont les métadonnées sont publiées dans le flux.

    Trouver un ID de dossier Google Cloud

    Console

    Pour trouver un ID de dossier Google Cloud, procédez comme suit:

    1. Accédez à Google Cloud Console.

      Accéder à la console Google Cloud

    2. Cliquez sur le sélecteur dans la barre de menu.
    3. Cochez la case Sélectionner à partir de, puis sélectionnez votre organisation.
    4. Recherchez le nom de votre dossier. L'ID du dossier est indiqué à côté de son nom.

    gcloud CLI

    Vous pouvez récupérer un ID de dossier Google Cloud situé au niveau de l'organisation à l'aide de la commande suivante:

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

    TOP_LEVEL_FOLDER_NAME peut être une correspondance de chaîne complète ou partielle. Supprimez l'option --format pour afficher plus d'informations sur les dossiers trouvés.

    Pour obtenir l'ID d'un dossier dans un autre dossier, répertoriez les sous-dossiers:

    gcloud resource-manager folders list --folder=FOLDER_ID

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service de l'inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer votre sujet Pub/Sub. En savoir plus sur les projets de facturation

Organisations

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

Indiquez les valeurs suivantes :

  • ORGANIZATION_ID: ID de l'organisation dont les métadonnées sont publiées dans le flux.

    Trouver un ID d'organisation Google Cloud

    Console

    Pour trouver un ID d'organisation Google Cloud, procédez comme suit:

    1. Accédez à Google Cloud Console.

      Accéder à la console Google Cloud

    2. Cliquez sur le sélecteur dans la barre de menu.
    3. Cochez la case Sélectionner à partir de, puis sélectionnez votre organisation.
    4. Cliquez sur l'onglet Tous. L'ID de l'organisation est affiché à côté de son nom.

    gcloud CLI

    Vous pouvez récupérer un ID d'organisation Google Cloud à l'aide de la commande suivante:

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

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service de l'inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer votre sujet Pub/Sub. En savoir plus sur les projets de facturation

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

Indiquez les valeurs suivantes :

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service de l'inventaire des éléments cloud par défaut et autorisé à gérer votre sujet Pub/Sub. En savoir plus sur les projets de facturation

  • SCOPE: un champ d'application peut être un projet, un dossier ou une organisation.

    Les valeurs autorisées sont les suivantes :

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Trouver un numéro de projet Google Cloud

      Console

      Pour trouver un numéro de projet Google Cloud, procédez comme suit:

      1. Accédez à la page Tableau de bord dans la console Google Cloud.

        Accéder à Google Dashboard

      2. Cliquez sur le sélecteur dans la barre de menu.
      3. Sélectionnez votre organisation dans la zone Sélectionner à partir de, puis recherchez le nom de votre projet.
      4. Cliquez sur le nom du projet pour basculer vers ce projet. Le numéro de projet est indiqué dans la fiche Informations sur le projet.

      gcloud CLI

      Vous pouvez récupérer un numéro de projet Google Cloud à l'aide de la commande suivante:

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

    • folders/FOLDER_ID

      Trouver un ID de dossier Google Cloud

      Console

      Pour trouver un ID de dossier Google Cloud, procédez comme suit:

      1. Accédez à Google Cloud Console.

        Accéder à la console Google Cloud

      2. Cliquez sur le sélecteur dans la barre de menu.
      3. Cochez la case Sélectionner à partir de, puis sélectionnez votre organisation.
      4. Recherchez le nom de votre dossier. L'ID du dossier est indiqué à côté de son nom.

      gcloud CLI

      Vous pouvez récupérer un ID de dossier Google Cloud situé au niveau de l'organisation à l'aide de la commande suivante:

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

      TOP_LEVEL_FOLDER_NAME peut être une correspondance de chaîne complète ou partielle. Supprimez l'option --format pour afficher plus d'informations sur les dossiers trouvés.

      Pour obtenir l'ID d'un dossier dans un autre dossier, répertoriez les sous-dossiers:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Trouver un ID d'organisation Google Cloud

      Console

      Pour trouver un ID d'organisation Google Cloud, procédez comme suit:

      1. Accédez à Google Cloud Console.

        Accéder à la console Google Cloud

      2. Cliquez sur le sélecteur dans la barre de menu.
      3. Cochez la case Sélectionner à partir de, puis sélectionnez votre organisation.
      4. Cliquez sur l'onglet Tous. L'ID de l'organisation est affiché à côté de son nom.

      gcloud CLI

      Vous pouvez récupérer un ID d'organisation Google Cloud à l'aide de la commande suivante:

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

Mise à jour des flux...

Pour mettre à jour les attributs d'un flux, vous devez spécifier le chemin d'accès à l'attribut dans update_mask et la valeur de cet attribut. La requête suivante met à jour les valeurs assetNames et topic d'un flux dans un projet.

gcloud

Projets

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

Indiquez les valeurs suivantes :

  • PROJECT_ID: ID du projet dont les métadonnées sont publiées dans le flux.

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service de l'inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer votre sujet Pub/Sub. En savoir plus sur les projets de facturation

  • TOPIC_ID: ID du sujet Pub/Sub dans lequel les notifications sont publiées.

  • ASSET_NAME : facultatif. Liste des noms complets des éléments pour lesquels vous souhaitez recevoir des notifications de modification, séparés par une virgule.

Folders

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

Indiquez les valeurs suivantes :

  • FOLDER_ID: ID du dossier dont les métadonnées sont publiées dans le flux.

    Trouver un ID de dossier Google Cloud

    Console

    Pour trouver un ID de dossier Google Cloud, procédez comme suit:

    1. Accédez à Google Cloud Console.

      Accéder à la console Google Cloud

    2. Cliquez sur le sélecteur dans la barre de menu.
    3. Cochez la case Sélectionner à partir de, puis sélectionnez votre organisation.
    4. Recherchez le nom de votre dossier. L'ID du dossier est indiqué à côté de son nom.

    gcloud CLI

    Vous pouvez récupérer un ID de dossier Google Cloud situé au niveau de l'organisation à l'aide de la commande suivante:

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

    TOP_LEVEL_FOLDER_NAME peut être une correspondance de chaîne complète ou partielle. Supprimez l'option --format pour afficher plus d'informations sur les dossiers trouvés.

    Pour obtenir l'ID d'un dossier dans un autre dossier, répertoriez les sous-dossiers:

    gcloud resource-manager folders list --folder=FOLDER_ID

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service de l'inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer votre sujet Pub/Sub. En savoir plus sur les projets de facturation

  • PROJECT_ID: ID du projet dans lequel se trouve le sujet Pub/Sub.

  • TOPIC_ID: ID du sujet Pub/Sub dans lequel les notifications sont publiées.

  • ASSET_NAME : facultatif. Liste des noms complets des éléments pour lesquels vous souhaitez recevoir des notifications de modification, séparés par une virgule.

Organisations

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

Indiquez les valeurs suivantes :

  • ORGANIZATION_ID: ID de l'organisation dont les métadonnées sont publiées dans le flux.

    Trouver un ID d'organisation Google Cloud

    Console

    Pour trouver un ID d'organisation Google Cloud, procédez comme suit:

    1. Accédez à Google Cloud Console.

      Accéder à la console Google Cloud

    2. Cliquez sur le sélecteur dans la barre de menu.
    3. Cochez la case Sélectionner à partir de, puis sélectionnez votre organisation.
    4. Cliquez sur l'onglet Tous. L'ID de l'organisation est affiché à côté de son nom.

    gcloud CLI

    Vous pouvez récupérer un ID d'organisation Google Cloud à l'aide de la commande suivante:

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

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service de l'inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer votre sujet Pub/Sub. En savoir plus sur les projets de facturation

  • PROJECT_ID: ID du projet dans lequel se trouve le sujet Pub/Sub.

  • TOPIC_ID: ID du sujet Pub/Sub dans lequel les notifications sont publiées.

  • ASSET_NAME : facultatif. Liste des noms complets des éléments pour lesquels vous souhaitez recevoir des notifications de modification, séparés par une virgule.

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

Indiquez les valeurs suivantes :

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service de l'inventaire des éléments cloud par défaut et autorisé à gérer votre sujet Pub/Sub. En savoir plus sur les projets de facturation

  • ASSET_NAME : facultatif. Liste des noms complets des éléments pour lesquels vous souhaitez recevoir des notifications de modification, séparés par une virgule.

  • PROJECT_ID: ID du projet dans lequel se trouve le sujet Pub/Sub.

  • TOPIC_ID: ID du sujet Pub/Sub dans lequel les notifications sont publiées.

  • SCOPE: un champ d'application peut être un projet, un dossier ou une organisation. Les ID de projet ne sont pas acceptés.

    Les valeurs autorisées sont les suivantes :

    • projects/PROJECT_NUMBER

      Trouver un numéro de projet Google Cloud

      Console

      Pour trouver un numéro de projet Google Cloud, procédez comme suit:

      1. Accédez à la page Tableau de bord dans la console Google Cloud.

        Accéder à Google Dashboard

      2. Cliquez sur le sélecteur dans la barre de menu.
      3. Sélectionnez votre organisation dans la zone Sélectionner à partir de, puis recherchez le nom de votre projet.
      4. Cliquez sur le nom du projet pour basculer vers ce projet. Le numéro de projet est indiqué dans la fiche Informations sur le projet.

      gcloud CLI

      Vous pouvez récupérer un numéro de projet Google Cloud à l'aide de la commande suivante:

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

    • folders/FOLDER_ID

      Trouver un ID de dossier Google Cloud

      Console

      Pour trouver un ID de dossier Google Cloud, procédez comme suit:

      1. Accédez à Google Cloud Console.

        Accéder à la console Google Cloud

      2. Cliquez sur le sélecteur dans la barre de menu.
      3. Cochez la case Sélectionner à partir de, puis sélectionnez votre organisation.
      4. Recherchez le nom de votre dossier. L'ID du dossier est indiqué à côté de son nom.

      gcloud CLI

      Vous pouvez récupérer un ID de dossier Google Cloud situé au niveau de l'organisation à l'aide de la commande suivante:

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

      TOP_LEVEL_FOLDER_NAME peut être une correspondance de chaîne complète ou partielle. Supprimez l'option --format pour afficher plus d'informations sur les dossiers trouvés.

      Pour obtenir l'ID d'un dossier dans un autre dossier, répertoriez les sous-dossiers:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Trouver un ID d'organisation Google Cloud

      Console

      Pour trouver un ID d'organisation Google Cloud, procédez comme suit:

      1. Accédez à Google Cloud Console.

        Accéder à la console Google Cloud

      2. Cliquez sur le sélecteur dans la barre de menu.
      3. Cochez la case Sélectionner à partir de, puis sélectionnez votre organisation.
      4. Cliquez sur l'onglet Tous. L'ID de l'organisation est affiché à côté de son nom.

      gcloud CLI

      Vous pouvez récupérer un ID d'organisation Google Cloud à l'aide de la commande suivante:

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

Suppression des flux

Si vous ne souhaitez plus être informé des modifications apportées aux éléments, exécutez la commande suivante pour supprimer un flux dans un projet.

gcloud

Projets

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

Indiquez les valeurs suivantes :

  • PROJECT_ID: ID du projet dont les métadonnées sont publiées dans le flux.

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service de l'inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer votre sujet Pub/Sub. En savoir plus sur les projets de facturation

Folders

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

Indiquez les valeurs suivantes :

  • FOLDER_ID: ID du dossier dont les métadonnées sont publiées dans le flux.

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service de l'inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer votre sujet Pub/Sub. En savoir plus sur les projets de facturation

Organisations

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

Indiquez les valeurs suivantes :

  • ORGANIZATION_ID: ID de l'organisation dont les métadonnées sont publiées dans le flux.

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service de l'inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer votre sujet Pub/Sub. En savoir plus sur les projets de facturation

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

Indiquez les valeurs suivantes :

  • BILLING_PROJECT_ID : facultatif. ID du projet dans lequel se trouve l'agent de service de l'inventaire des éléments cloud par défaut et qui dispose des autorisations nécessaires pour gérer votre sujet Pub/Sub. En savoir plus sur les projets de facturation

  • SCOPE: un champ d'application peut être un projet, un dossier ou une organisation. Les ID de projet ne sont pas acceptés.

    Les valeurs autorisées sont les suivantes :

    • projects/PROJECT_NUMBER

      Trouver un numéro de projet Google Cloud

      Console

      Pour trouver un numéro de projet Google Cloud, procédez comme suit:

      1. Accédez à la page Tableau de bord dans la console Google Cloud.

        Accéder à Google Dashboard

      2. Cliquez sur le sélecteur dans la barre de menu.
      3. Sélectionnez votre organisation dans la zone Sélectionner à partir de, puis recherchez le nom de votre projet.
      4. Cliquez sur le nom du projet pour basculer vers ce projet. Le numéro de projet est indiqué dans la fiche Informations sur le projet.

      gcloud CLI

      Vous pouvez récupérer un numéro de projet Google Cloud à l'aide de la commande suivante:

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

    • folders/FOLDER_ID

      Trouver un ID de dossier Google Cloud

      Console

      Pour trouver un ID de dossier Google Cloud, procédez comme suit:

      1. Accédez à Google Cloud Console.

        Accéder à la console Google Cloud

      2. Cliquez sur le sélecteur dans la barre de menu.
      3. Cochez la case Sélectionner à partir de, puis sélectionnez votre organisation.
      4. Recherchez le nom de votre dossier. L'ID du dossier est indiqué à côté de son nom.

      gcloud CLI

      Vous pouvez récupérer un ID de dossier Google Cloud situé au niveau de l'organisation à l'aide de la commande suivante:

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

      TOP_LEVEL_FOLDER_NAME peut être une correspondance de chaîne complète ou partielle. Supprimez l'option --format pour afficher plus d'informations sur les dossiers trouvés.

      Pour obtenir l'ID d'un dossier dans un autre dossier, répertoriez les sous-dossiers:

      gcloud resource-manager folders list --folder=FOLDER_ID

    • organizations/ORGANIZATION_ID

      Trouver un ID d'organisation Google Cloud

      Console

      Pour trouver un ID d'organisation Google Cloud, procédez comme suit:

      1. Accédez à Google Cloud Console.

        Accéder à la console Google Cloud

      2. Cliquez sur le sélecteur dans la barre de menu.
      3. Cochez la case Sélectionner à partir de, puis sélectionnez votre organisation.
      4. Cliquez sur l'onglet Tous. L'ID de l'organisation est affiché à côté de son nom.

      gcloud CLI

      Vous pouvez récupérer un ID d'organisation Google Cloud à l'aide de la commande suivante:

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

Dépannage

Cette section explique comment résoudre les problèmes courants.

Échec de la création ou de la mise à jour des flux

Si la création ou la mise à jour d'un flux échoue, cela peut être dû à un problème d'autorisation. Chaque requête de création ou de mise à jour de flux comprend trois parties: le projet client utilisé pour appeler l'API, le parent cible à surveiller et le sujet Pub/Sub de destination pour recevoir la notification.

Pour créer ou mettre à jour un flux, vous devez disposer des autorisations suivantes :

  • L'appelant ou le compte de service doit disposer d'autorisations sur les éléments dans le parent cible (il peut s'agir d'un projet, d'un dossier ou d'une organisation).

  • Le compte de service d'éléments (service-PROJECT_NUMBER@gcp-sa-cloudasset.iam.gserviceaccount.com) dans le projet client compatible avec l'API Cloud Asset doit disposer de l'autorisation pubsub.topics.publish sur le sujet Pub/Sub de destination.

Un message d'erreur contenant does not have permission peut indiquer que l'utilisateur ou le compte de service ne dispose pas des autorisations d'élément. En savoir plus sur les autorisations requises

Un message d'erreur contenant Fail to use TOPIC_ID as feed output destination peut indiquer qu'il y a un problème lors de la publication du message sur le sujet que vous avez spécifié dans la destination de sortie du flux. Pour résoudre le problème :

  • Si vous utilisez Google Cloud CLI, assurez-vous d'utiliser le bon projet:

    gcloud config list project
    
  • Assurez-vous d'avoir spécifié le nom de sujet correct.

  • Assurez-vous que le compte de service (service-PROJECT_NUMBER@gcp-sa-cloudasset.iam.gserviceaccount.com) dispose de l'autorisation pubsub.topics.publish sur le sujet, où PROJECT_NUMBER correspond au numéro du projet compatible avec l'inventaire des éléments cloud à partir duquel vous prévoyez de créer le flux.

    Trouver un numéro de projet Google Cloud

    Console

    Pour trouver un numéro de projet Google Cloud, procédez comme suit:

    1. Accédez à la page Tableau de bord dans la console Google Cloud.

      Accéder à Google Dashboard

    2. Cliquez sur le sélecteur dans la barre de menu.
    3. Sélectionnez votre organisation dans la zone Sélectionner à partir de, puis recherchez le nom de votre projet.
    4. Cliquez sur le nom du projet pour basculer vers ce projet. Le numéro de projet est indiqué dans la fiche Informations sur le projet.

    gcloud CLI

    Vous pouvez récupérer un numéro de projet Google Cloud à l'aide de la commande suivante:

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

Échec de réception des mises à jour de ressources ou de stratégies IAM

Si vous ne recevez pas de notifications pour les mises à jour de ressources ou de stratégies IAM, la vérification des détails de configuration suivants peut vous aider à résoudre le problème :

  • Assurez-vous que les métadonnées ont été modifiées sur vos éléments. Le flux en temps réel n'envoie des mises à jour que lorsque les métadonnées des types de ressources compatibles ont changé. Les opérations telles que l'importation d'un nouveau fichier dans votre bucket Cloud Storage ne déclenchent pas de modification des métadonnées.

  • Assurez-vous que vos éléments correspondent à l'un des critères que vous avez spécifiés dans le flux, à savoir les noms et les types d'éléments.

  • Consultez les journaux pour voir si des erreurs se sont produites lors de la publication des mises à jour sur votre sujet.

Utiliser Cloud Logging

Cette section explique comment configurer et afficher Logging pour les flux en temps réel de Cloud Asset Inventory.

Lorsque les flux en temps réel ne parviennent pas à envoyer des ressources ou des mises à jour de stratégie IAM via Pub/Sub, Cloud Asset Inventory consigne l'état et le message d'erreur via Logging. Logging est activé par défaut et appartient à Google Cloud Observability. Découvrez les tarifs de l'observabilité Google Cloud.

Afficher les journaux de flux en temps réel

Pour afficher les journaux, accédez à la page Explorateur de journaux.

Le journal de flux en temps réel est indexé par un sujet Pub/Sub. Pour afficher tous les journaux, procédez comme suit:

  1. Cliquez sur la boîte combinée Ressource à côté de la zone Rechercher dans tous les champs.

  2. Recherchez Cloud Pub/Sub Topic, puis cliquez sur le type de ressource Sujet Cloud Pub/Sub.

  3. Cliquez sur l'ID du thème que vous souhaitez afficher.

  4. Cliquez sur Appliquer.

Le codage UTF-8 est appliqué aux champs de journaux. Les caractères qui ne sont pas au format UTF-8 sont remplacés par des points d'interrogation.

Informations consignées

Les entrées de journal de flux en temps réel contiennent les types d'informations suivants :

  • Informations générales figurant dans la plupart des journaux Google Cloud, telles que la gravité, l'ID de projet, le numéro de projet ou l'horodatage.

  • Champs de journal de flux en temps réel dans jsonPayload, qui contiennent le nom de l'élément, la configuration de sortie du flux, l'état d'erreur lors de la publication de mises à jour de ressources ou de stratégies IAM.

Le tableau suivant indique les types d'informations contenus dans chaque champ.

Champ Type et description
name

string

Nom complet du flux. Le format est l'un des suivants:

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

string

Nom complet de l'élément qui doit recevoir les mises à jour. Exemple :

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

Pour en savoir plus, consultez la section Noms des ressources .

feed_output_config

FeedOutputConfig

Configuration de sortie du flux définissant l'emplacement de publication des mises à jour des éléments.

condition

Expr

Condition du flux qui détermine si la mise à jour d'un élément doit être publiée

error_status

Status

État en cas d'échec de la publication des mises à jour d'éléments dans un flux.