Rechercher des ressources

L'API Cloud Asset vous permet d'utiliser un langage de requête personnalisé pour interroger les métadonnées de ressource d'un projet, d'un dossier ou d'une organisation.

Avant de commencer

Rechercher des ressources

Console

Pour rechercher toutes les ressources, procédez comme suit :

  1. Accédez à la page Inventaire des éléments de la console Google Cloud.

    Accéder à l'inventaire des éléments

  2. Pour définir le champ d'application de votre recherche, ouvrez la liste des projets dans la barre de menu, puis sélectionnez l'organisation, le dossier ou le projet à interroger.

  3. Sélectionnez l'onglet Ressource.

  4. Pour rechercher des ressources, saisissez le texte de la requête dans la barre Filtre. Sélectionnez la zone de texte, puis une liste de champs pouvant faire l'objet d'une recherche s'affiche. La recherche de ressources accepte plusieurs champs. En savoir plus sur la syntaxe des requêtes

  5. Les résultats de recherche peuvent également être filtrés en fonction des filtres Type d'élément, Projet et Emplacement prédéfinis dans le volet Filtrer les résultats.

Les ressources correspondant à la requête sont répertoriées dans la table Résultats.

Pour afficher la requête sous la forme d'une commande Google Cloud CLI, sélectionnez Afficher la requête.

Pour exporter les résultats, sélectionnez Télécharger au format CSV.

gcloud

Vous pouvez appeler SearchAllResources à l'aide de la commande gcloud asset search-all-resources. Vous devez exécuter la Google Cloud CLI version 302.0.0 ou ultérieure. Vous pouvez vérifier votre version à l'aide de la commande gcloud version.

gcloud asset search-all-resources \
    --scope=SCOPE \
    --query=QUERY \
    --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \
    --order-by=ORDER_BY \
    --read-mask=READ_MASK

Indiquez les valeurs suivantes :

  • SCOPE : valeur obligatoire. Un champ d'application peut être un projet, un dossier ou une organisation. La recherche est limitée aux ressources Google Cloud de ce champ d'application. L'appelant doit disposer de l'autorisation cloudasset.assets.searchAllResources sur le champ d'application sélectionné. Si aucune valeur n'est spécifiée, la propriété de projet configurée est utilisée.

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

  • QUERY : facultatif. Instruction de requête. Pour en savoir plus, consultez la section Syntaxe des requêtes. Si ce champ n'est pas spécifié ou vide, il recherche toutes les ressources dans le scope spécifié.

    Exemples :

    • name:Important pour rechercher les ressources Google Cloud dont le nom contient le mot Important.

    • name=Important pour rechercher la ressource Google Cloud dont le nom est exactement Important.

    • displayName:Impor* pour rechercher les ressources Google Cloud dont le nom à afficher contient Impor comme préfixe de n'importe quel mot.

    • location:us-west* pour rechercher les ressources Google Cloud dont l'emplacement comporte deux mots avec les préfixes us et west.

    • labels:prod pour rechercher les ressources Google Cloud associées à un libellé dont la clé ou la valeur contient le mot prod.

    • labels.env:prod pour rechercher les ressources Google Cloud portant un libellé, où la clé est env et la valeur contient le mot prod.

    • labels.env:* pour rechercher les ressources Google Cloud portant un libellé dont la clé est env.

    • tagKeys:env pour rechercher les ressources Google Cloud directement associées aux tags, où TagKey.namespacedName contient env.

    • tagKeyIds=tagKeys/123 pour rechercher les ressources Google Cloud directement associées aux tags, où TagKey.name est exactement tagKeys/123.

    • tagValues:prod* pour rechercher les ressources Google Cloud directement associées à des tags, où TagValue.namespacedName contient un mot précédé de prod.

    • tagValueIds=tagValues/123 pour rechercher les ressources Google Cloud directement associées aux tags, où TagValue.name est exactement tagValues/123.

    • effectiveTagKeys:env pour rechercher les ressources Google Cloud directement associées à des tags ou qui en héritent, où TagKey.namespacedName contient env.

    • effectiveTagKeyIds=tagKeys/123 pour rechercher les ressources Google Cloud qui sont directement associées à des tags ou qui en héritent, où TagKey.name est exactement tagKeys/123.

    • effectiveTagValues:prod* pour rechercher les ressources Google Cloud qui sont directement associées à des tags ou qui en héritent, où TagValue.namespacedName contient un mot précédé de prod.

    • effectiveTagValueIds=tagValues/123 pour rechercher les ressources Google Cloud qui sont directement associées à des tags ou qui en héritent, où TagValue.name est exactement tagValues/123.

    • kmsKeys:key pour rechercher les ressources Google Cloud chiffrées à l'aide de clés de chiffrement gérées par le client dont le nom contient le mot key.

    • relationships:instance-group-1 pour rechercher les ressources Google Cloud qui ont des relations avec instance-group-1 dans le nom de la ressource associée.

    • relationships:INSTANCE_TO_INSTANCEGROUP pour rechercher des instances Compute Engine ayant des relations de type INSTANCE_TO_INSTANCEGROUP.

    • relationships.INSTANCE_TO_INSTANCEGROUP:instance-group-1 pour rechercher les instances Compute Engine qui sont liées à instance-group-1 dans le nom de ressource du groupe d'instances Compute Engine, pour le type de relation INSTANCE_TO_INSTANCEGROUP.

    • state:ACTIVE pour rechercher les ressources Google Cloud dont l'état contient ACTIVE sous la forme d'un mot.

    • NOT state:ACTIVE pour rechercher les ressources Google Cloud dont l'état ne contient pas ACTIVE en tant que mot.

    • createTime<1609459200, createTime<2021-01-01 ou createTime<"2021-01-01T00:00:00" pour rechercher les ressources Google Cloud créées avant 2021-01-01 00:00:00 UTC. 1609459200 est l'horodatage de l'epoch en secondes de 2021-01-01 00:00:00 UTC.

    • updateTime>1609459200, updateTime>2021-01-01 ou updateTime>"2021-01-01T00:00:00" pour rechercher les ressources Google Cloud mises à jour après 2021-01-01 00:00:00 UTC. 1609459200 est l'horodatage de l'epoch en secondes de 2021-01-01 00:00:00 UTC.

    • project:12345 pour rechercher les ressources Google Cloud appartenant à un projet Google Cloud portant le numéro 12345.

    • folders:(123 or 456) pour rechercher les ressources Google Cloud appartenant à un dossier Google Cloud portant les numéros 123 ou 456.

    • organization:123 pour rechercher les ressources Google Cloud appartenant à une organisation Google Cloud portant le numéro 123.

    • parentFullResourceName:ImportantName pour trouver les ressources Google Cloud dont le nom de parent contient ImportantName.

    • parentAssetType:Project pour rechercher les ressources Google Cloud dont le type d'élément parent contient Project.

    • Important pour rechercher les ressources Google Cloud contenant le mot Important dans l'un des champs inclus dans l'index de recherche.

    • Impor* pour rechercher les ressources Google Cloud contenant Impor comme préfixe de n'importe quel mot dans l'un des champs inclus dans l'index de recherche.

    • Important location:(us-west1 OR global) pour rechercher les ressources Google Cloud contenant le mot Important dans l'un des champs inclus dans l'index de recherche et qui sont également situées dans la région us-west1 ou à l'emplacement global.

  • ASSET_TYPE : facultatif. Il s'agit de la liste des types d'éléments que cette demande recherche. Si ce champ est vide, la recherche est effectuée dans tous les types d'éléments inclus dans l'index de recherche. 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.

  • ORDER_BY : facultatif. Liste de champs séparés par une virgule spécifiant l'ordre de tri des résultats. L'ordre par défaut est croissant. Ajoutez DESC après le nom du champ pour indiquer l'ordre décroissant. Les espaces vides sont ignorés. Exemple : "location DESC, name". Seuls les champs primitifs singuliers de la réponse peuvent être triés:

    • name

    • assetType

    • project

    • displayName

    • description

    • location

    • createTime

    • updateTime

    • state

    • parentFullResourceName

    • parentAssetType

    Les autres champs, tels que les champs répétés (par exemple, networkTags et kmsKeys), les champs de mappage (par exemple, labels) et les champs de structure (par exemple, additionalAttributes) ne sont pas acceptés.

  • READ_MASK : facultatif. Liste de champs séparés par une virgule spécifiant les champs à renvoyer dans les résultats. Si aucune valeur n'est spécifiée, tous les champs, à l'exception de versionedResources, sont renvoyés. Si seul "*" est spécifié, tous les champs sont renvoyés. Exemples : "name,location", "name,versionedResources", "*".

    Les champs suivants sont renvoyés par défaut si --read-mask n'est pas spécifié:

    • name

    • assetType

    • project

    • folders

    • organization

    • displayName

    • description

    • location

    • labels

    • tags

    • networkTags

    • kmsKeys

    • createTime

    • updateTime

    • state

    • additionalAttributes

    • parentFullResourceName

    • parentAssetType

    Certains champs de grande taille, tels que versionedResources, attachedResources et effectiveTags, ne sont pas renvoyés par défaut, mais vous pouvez les spécifier dans le paramètre --read-mask si vous souhaitez les inclure. Si "*" est spécifié, tous les champs disponibles sont renvoyés. Exemples: "name,location,effectiveTags", "name,versionedResources", "*".

Voici des exemples de commandes gcloud :

  • Recherchez toutes les ressources dans organizations/123456 dont le champ name contient le mot mycompany:

    gcloud asset search-all-resources \
        --scope=organizations/123456 \
        --query="name:mycompany"
    
  • Recherchez toutes les ressources dans organizations/123456 dont le champ name contient le mot mycompany, avec des métadonnées complètes:

    gcloud asset search-all-resources \
        --scope=organizations/123456 \
        --query="name:mycompany" \
        --read-mask="name,versionedResources"
    

REST

Vous pouvez appeler SearchAllResources à l'aide d'un jeton OAuth valide pour un projet. Pour appeler la méthode SearchAllResources à partir de Cloud Shell ou de toute console où la commande gcloud est disponible, procédez comme suit :

  1. Si vous n'avez pas configuré l'écran de consentement OAuth de votre projet, vous devez le faire. Vous devez indiquer une adresse e-mail et un nom de produit.

    1. Accédez à la page Écran de consentement OAuth de votre projet.

      Accéder à l'écran de consentement OAuth

    2. Saisissez le nom de l'application que vous souhaitez afficher.

    3. Sous Adresse e-mail d'assistance, sélectionnez l'adresse e-mail que vous souhaitez afficher en tant que contact public. Il doit s'agir de votre adresse e-mail ou d'un groupe Google dont vous êtes propriétaire.

    4. Ajoutez des détails, si nécessaire.

    5. Cliquez sur Enregistrer.

  2. Créez un jeton OAuth pour votre projet. Pour en savoir plus, consultez la page Configurer OAuth 2.0.

    1. Accédez à la page Créer un ID client OAuth.

      Accéder à la page "Créer un ID client OAuth"

    2. Sélectionnez le Type d'application en choisissant Application de bureau.

    3. Cliquez sur Créer.

    4. Téléchargez le fichier client_secret.json.

    5. Accédez à la page Identifiants.

      Accéder à "Identifiants"

    6. À droite de votre nouvel ID client, cliquez sur Télécharger JSON.

    7. Stockez le fichier de manière sécurisée dans un emplacement auquel seule votre application peut accéder.

  3. Connectez-vous à l'aide du fichier JSON avec la commande suivante.

    gcloud auth application-default login --client-id-file=YOUR_JSON_FILE
    

    Cette commande vous invite à ouvrir un lien. Assurez-vous que la page affiche le nom de l'application que vous avez défini dans votre écran de consentement OAuth.

  4. Vous pouvez maintenant interroger des ressources à l'aide des commandes curl.

    curl -X POST \
         -H "X-HTTP-Method-Override: GET" \
         -H "Authorization: Bearer $(gcloud auth print-access-token)" \
         -H "Content-Type: application/json" \
         -d '{
              "assetTypes": [
                "ASSET_TYPE_1",
                "ASSET_TYPE_2",
                "..."
              ],
              "orderBy": "ORDER_BY",
              "pageSize": PAGE_SIZE,
              "query": "QUERY",
              "readMask": "READ_MASK"
             }' \
         https://cloudasset.googleapis.com/v1/SCOPE:searchAllIamPolicies
    

    Indiquez les valeurs suivantes :

    • ASSET_TYPE : facultatif. Il s'agit de la liste des types d'éléments que cette demande recherche. Si ce champ est vide, la recherche est effectuée dans tous les types d'éléments inclus dans l'index de recherche. 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.

    • ORDER_BY : facultatif. Liste de champs séparés par une virgule spécifiant l'ordre de tri des résultats. Par défaut, l'ordre est croissant. Ajoutez " DESC" après le nom du champ pour indiquer l'ordre décroissant. Les espaces vides sont ignorés. Exemple : "location DESC, name". Seuls les champs primitifs singuliers de la réponse peuvent être triés :

      • name

      • assetType

      • project

      • displayName

      • description

      • location

      • createTime

      • updateTime

      • state

      • parentFullResourceName

      • parentAssetType

      Les autres champs, tels que les champs répétés (par exemple, networkTags et kmsKeys), les champs de mappage (par exemple, labels) et les champs de structure (par exemple, additionalAttributes) ne sont pas acceptés.

    • PAGE_SIZE : facultatif. Nombre de résultats à renvoyer par page. Le maximum est de 500. Si la valeur est définie sur 0 ou sur une valeur négative, une valeur par défaut appropriée est sélectionnée. Un nextPageToken est renvoyé pour récupérer les résultats suivants.

    • QUERY : facultatif. Instruction de requête. Pour en savoir plus, consultez la section Syntaxe des requêtes. Si elle n'est pas spécifiée ou vide, elle recherche toutes les ressources dans le scope spécifié.

      Exemples :

      • name:Important pour trouver les ressources Google Cloud dont le nom contient le mot "Important".

      • name=Important pour trouver la ressource Google Cloud dont le nom est exactement "Important".

      • displayName:Impor* pour trouver les ressources Google Cloud dont le nom à afficher contient "Impor" en tant que préfixe d'un mot.

      • location:us-west* pour trouver les ressources Google Cloud dont l'emplacement contient les préfixes "us" et "west".

      • labels:prod pour trouver des ressources Google Cloud qui possèdent une étiquette dont la clé ou la valeur contient le mot "prod".

      • labels.env:prod pour trouver les ressources Google Cloud qui possèdent une étiquette dont la clé est "env" et la valeur contient le mot "prod".

      • labels.env:* pour trouver les ressources Google Cloud qui possèdent une étiquette dont la clé est "env".

      • tagKeys:env pour rechercher les ressources Google Cloud directement associées aux tags où TagKey.namespacedName contient "env".

      • tagKeyIds=tagKeys/123 pour rechercher les ressources Google Cloud directement associées aux tags, où TagKey.name correspond exactement à "tagKeys/123".

      • tagValues:prod* pour rechercher les ressources Google Cloud directement associées aux tags, où TagValue.namespacedName contient un mot précédé de "prod".

      • tagValueIds=tagValues/123 pour rechercher les ressources Google Cloud directement associées aux tags, où TagValue.name correspond exactement à "tagValues/123".

      • effectiveTagKeys:env pour rechercher les ressources Google Cloud directement associées à des tags ou qui en héritent, où TagKey.namespacedName contient env.

      • effectiveTagKeyIds=tagKeys/123 pour rechercher les ressources Google Cloud qui sont directement associées à des tags ou qui en héritent, où TagKey.name est exactement tagKeys/123.

      • effectiveTagValues:prod* pour rechercher les ressources Google Cloud qui sont directement associées à des tags ou qui en héritent, où TagValue.namespacedName contient un mot précédé de prod.

      • effectiveTagValueIds=tagValues/123 pour rechercher les ressources Google Cloud qui sont directement associées à des tags ou qui en héritent, où TagValue.name est exactement tagValues/123.

      • kmsKey:key pour rechercher les ressources Google Cloud chiffrées avec une clé de chiffrement gérée par le client dont le nom contient le mot key. Ce champ est obsolète. Veuillez utiliser le champ kmsKeys pour récupérer les informations de la clé Cloud KMS.

      • kmsKeys:key pour rechercher les ressources Google Cloud chiffrées à l'aide de clés de chiffrement gérées par le client dont le nom contient le mot "clé".

      • relationships:instance-group-1 pour rechercher les ressources Google Cloud qui ont des relations avec instance-group-1 dans le nom de la ressource associée.

      • relationships:INSTANCE_TO_INSTANCEGROUP pour rechercher des instances Compute Engine ayant des relations de type INSTANCE_TO_INSTANCEGROUP.

      • relationships.INSTANCE_TO_INSTANCEGROUP:instance-group-1 pour rechercher les instances Compute Engine qui sont liées à instance-group-1 dans le nom de ressource du groupe d'instances Compute Engine, pour le type de relation INSTANCE_TO_INSTANCEGROUP.

      • state:ACTIVE pour trouver les ressources Google Cloud dont l'état contient "ACTIVE" en tant que mot.

      • NOT state:ACTIVE pour rechercher les ressources Google Cloud dont l'état ne contient pas le mot "ACTIVE".

      • createTime<1609459200, createTime<2021-01-01 ou createTime<"2021-01-01T00:00:00" pour rechercher les ressources Google Cloud créées avant 2021-01-01 00:00:00 UTC. 1609459200 est le code temporel de l'epoch, en secondes de 2021-01-01 00:00:00 UTC.

      • updateTime>1609459200, updateTime>2021-01-01 ou updateTime>"2021-01-01T00:00:00" pour rechercher les ressources Google Cloud mises à jour après 2021-01-01 00:00:00 UTC. 1609459200 est le code temporel de l'epoch, en secondes de 2021-01-01 00:00:00 UTC.

      • project:12345 pour trouver les ressources Google Cloud appartenant à un projet Google Cloud portant le numéro 12345.

      • folders:(123 or 456) pour trouver les ressources Google Cloud appartenant à un dossier Google Cloud portant le numéro 123 ou 456.

      • organization:123 pour trouver les ressources Google  Cloud appartenant à une organisation Google Cloud portant le numéro 123.

      • parentFullResourceName:ImportantName pour trouver les ressources Google Cloud dont le nom parent contient ImportantName.

      • parentAssetType:Project pour rechercher les ressources Google Cloud dont le type d'élément parent contient Project.

      • Important pour trouver les ressources Google Cloud contenant le mot "Important" dans n'importe quel champ inclus dans l'index de recherche.

      • Impor* pour trouver les ressources Google Cloud qui contiennent "Impor" en tant que préfixe de mot dans l'un des champs pouvant faire l'objet d'une recherche.

      • Important location:(us-west1 OR global) pour rechercher des ressources Google Cloud contenant le mot Important dans l'un des champs inclus dans l'index de recherche et qui se trouvent également dans la région us-west1 ou à l'emplacement global.

    • READ_MASK : facultatif. Liste de champs séparés par une virgule spécifiant les champs à renvoyer dans les résultats. Si aucune valeur n'est spécifiée, tous les champs, à l'exception de versionedResources, sont renvoyés. Si seul "*" est spécifié, tous les champs sont renvoyés. Exemples : "name,location", "name,versionedResources", "*".

      Les champs suivants sont renvoyés par défaut si read_mask n'est pas spécifié:

      • name

      • assetType

      • project

      • folders

      • organization

      • displayName

      • description

      • location

      • labels

      • tags

      • networkTags

      • kmsKeys

      • createTime

      • updateTime

      • state

      • additionalAttributes

      • parentFullResourceName

      • parentAssetType

      Certains champs de grande taille, tels que versionedResources, attachedResources et effectiveTags, ne sont pas renvoyés par défaut, mais vous pouvez les spécifier dans le paramètre read_mask si vous souhaitez les inclure. Si "*" est spécifié, tous les champs disponibles sont renvoyés. Exemples: "name,location,effectiveTags", "name,versionedResources", "*".

    • SCOPE: un champ d'application peut être un projet, un dossier ou une organisation. La recherche est limitée aux ressources Google Cloud de ce champ d'application. L'appelant doit disposer de l'autorisation cloudasset.assets.searchAllResources sur le champ d'application sélectionné. Si aucune valeur n'est spécifiée, la propriété de projet configurée est utilisée.

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

Documentation de référence sur la bibliothèque cliente et l'API

Comment construire une requête

Consultez la section Syntaxe des requêtes pour en savoir plus sur le langage de requête.

Consultez la section Rechercher des exemples de ressources pour en savoir plus sur les exemples de requêtes pour divers cas d'utilisation réels.

Interroger les ressources Google Cloud par champs de métadonnées de ressource

Pour rechercher des métadonnées de ressource, une expression de requête est au format suivant :

  • Mot clé exact textuel:

    FIELD=QUERY

  • Correspondance partielle de texte:

    FIELD:QUERY

  • Correspondance numérique: opérateurs de comparaison (=, >, >=, <, <=)

    FIELDcomparison operatorQUERY

Une métadonnée de ressource pouvant faire l'objet d'une recherche FIELD peut être :

  • name:nom complet de la ressource. Remarque : tous les types d'éléments ne peuvent pas faire l'objet d'une recherche. Consultez la liste des types inclus dans l'index de recherche.

  • displayName::nom à afficher dans l'interface utilisateur.

  • description:description textuelle de la ressource en un ou plusieurs paragraphes.

  • location:emplacement de la ressource. L'emplacement peut être global, régional (par exemple, us-east1) ou zonal (par exemple, us-west1-b).

  • labels:étiquettes associées à cette ressource. Les étiquettes peuvent correspondre à des clés d'étiquette, à des valeurs d'étiquette ou aux deux. Consultez la section Ajouter des libellés et regrouper des ressources Google Cloud Platform.

  • labels.[key]: : valeur de libellé identifiée par la clé de libellé associée à cette ressource. Exemple : labels.env:prod. Seuls les traits d'union (-), les traits de soulignement (_), les minuscules et les chiffres sont autorisés dans les clés de libellé. Les clés doivent commencer par une lettre minuscule. Les caractères internationaux sont acceptés. Consultez la section Exigences concernant les libellés.

  • tagKeys::TagKey.namespacedName des tags directement associés à cette ressource.

  • tagKeyIds:TagKey.name des tags directement associés à cette ressource.

  • tagValues::TagValue.namespacedName des tags directement associés à cette ressource.

  • tagValueIds:TagValue.name des tags directement associés à cette ressource.

  • effectiveTagKeys:TagKey.namespacedName des tags directement associés ou hérités à cette ressource.

  • effectiveTagKeyIds:TagKey.name des tags directement associés ou hérités à cette ressource.

  • effectiveTagValues:TagValue.namespacedName des tags directement associés ou hérités à cette ressource.

  • effectiveTagValueIds:TagValue.name des tags directement associés ou hérités à cette ressource.

  • networkTags:tags réseau associés à cette ressource. Consultez la section Ajouter des libellés et regrouper des ressources Google Cloud Platform.

  • kmsKey:clé de chiffrement gérée par le client utilisée pour chiffrer cette ressource. Ce champ est obsolète. Veuillez utiliser le champ kmsKeys pour récupérer les informations de clé Cloud KMS. Consultez CryptoKey et CryptoKeyVersion.

  • kmsKeys:clés de chiffrement gérées par le client utilisées pour chiffrer cette ressource. Consultez CryptoKey et CryptoKeyVersion.

  • relations:relations associées à cette ressource Les relations peuvent correspondre au type de relation, au nom de ressource associé ou aux deux. Consultez la section Types de relations acceptés.

  • relationships.[relationship_type]: : nom de ressource correspondant à un type de ressource particulier associé à cette ressource Exemple : relationships.INSTANCE_TO_INSTANCEGROUP:instance-group-1. Consultez la section Types de relations acceptés.

  • sccSecurityMarks:contenu réel des marques de sécurité Security Command Center associées à l'élément. Exemple : sccSecurityMarks.foo:bar. Consultez Types d'éléments compatibles dans Security Command Center.

  • state::valeur textuelle de l'état de cette ressource. Les définitions d'état varient en fonction du type de ressource, qui est mappée à partir de différents champs de types de ressources différents. Exemple: Si la ressource est une instance fournie par Compute Engine, son état inclut PROVISIONING, STAGING, RUNNING, STOPPING, SUSPENDING, SUSPENDED, REPAIRING et TERMINATED. Consultez la définition de status dans la documentation de référence de l'API. Si la ressource est un projet fourni par Cloud Resource Manager, son état inclut LIFECYCLE_STATE_UNSPECIFIED, ACTIVE, DELETE_REQUESTED et DELETE_IN_PROGRESS. Consultez la définition de lifecycleState dans la documentation de référence de l'API.

  • createTime::l'horodatage de création de la ressource, à laquelle la ressource a été créée. La précision est exprimée en secondes.

  • updateTime::horodatage de la dernière mise à jour de cette ressource, à laquelle elle a été modifiée ou supprimée pour la dernière fois. La précision est exprimée en secondes.

  • project (projet) : numéro du projet auquel cette ressource appartient.

  • folders:nombre de dossiers auxquels cette ressource appartient.

  • organization:numéro de l'organisation à laquelle appartient cette ressource.

  • parentFullResourceName:nom du parent de cette ressource.

  • parentAssetType:type du parent de cette ressource.

Exemples : requête par champ spécifique

  • Recherchez toutes les ressources dans votre scope dont le name contient le mot Important :

    name:Important
    
  • Recherchez toutes les ressources de votre scope dont le champ displayName contient un mot avec le préfixe prod:

    displayName:prod*
    
  • Recherchez toutes les ressources dans votre scope dont le location contient us :

    location:us
    
  • Recherchez toutes les ressources dans votre scope dont le champ location contient exactement us :

    location=us
    
  • Recherchez toutes les ressources de votre scope qui sont directement associées à des tags avec TagKey.namespacedName contenant le mot env:

    tagKeys:env
    
  • Recherchez toutes les ressources de votre scope auxquelles des tags sont directement associés, et dont le nom TagKey.name correspond exactement à tagKeys/123:

    tagKeyIds=tagKeys/123
    
  • Recherchez toutes les ressources de votre scope auxquelles des tags sont directement associés, avec TagValue.namespacedName contenant un mot précédé de prod:

    tagValues:prod*
    
  • Recherchez toutes les ressources de votre scope auxquelles des tags sont directement associés, et dont le nom TagValue.name correspond exactement à tagValues/123:

    tagValueIds=tagValues/123
    
  • Recherchez toutes les ressources de votre scope auxquelles des tags sont directement associés avec TagValue.namespacedName.

    tagValues:*
    
  • Recherchez toutes les ressources de votre scope qui ont des tags directement associés ou hérités avec TagKey.namespacedName contenant le mot env:

    effectiveTagKeys:env
    
  • Recherchez toutes les ressources de votre scope ayant des tags directement associés ou hérités, dont le nom TagKey.name correspond exactement à tagKeys/123:

    effectiveTagKeyIds=tagKeys/123
    
  • Recherchez toutes les ressources de votre scope qui sont directement associées ou héritées de tags avec TagValue.namespacedName contenant un mot précédé de prod:

    effectiveTagValues:prod*
    
  • Recherchez toutes les ressources de votre scope ayant des tags directement associés ou hérités, dont le nom TagValue.name correspond exactement à tagValues/123:

    effectiveTagValueIds=tagValues/123
    
  • Recherchez toutes les ressources de votre scope qui ont des tags directement associés ou hérités avec TagValue.namespacedName.

    effectivetagValues:*
    
  • Recherchez toutes les ressources de votre scope ayant un label dont la clé ou la valeur contient le mot prod:

    labels:prod
    
  • Recherchez toutes les ressources de votre scope qui ont un label où la clé est env et la valeur contient le mot prod:

    labels.env:prod
    
  • Recherchez toutes les ressources de votre scope ayant un label où la clé est env et la valeur exactement égale à prod:

    labels.env=prod
    
  • Recherchez toutes les ressources dans votre scope qui ont un label où la clé est env:

    labels.env:*
    
  • Recherchez toutes les ressources dans votre scope dont l'une des ressources networkTags contient le mot internal:

    networkTags:internal
    
  • Recherchez dans votre fichier scope toutes les ressources dont l'une des ressources networkTags correspond exactement à internal :

    networkTags=internal
    
  • Recherchez toutes les ressources de votre scope qui sont en relation avec instance-group-1 dans le nom de ressource associé:

    relationships:instance-group-1
    
  • Recherchez les instances de calcul dans votre scope qui ont des relations de type INSTANCE_TO_INSTANCEGROUP:

    relationships:INSTANCE_TO_INSTANCEGROUP
    
  • Recherchez les instances de calcul dans votre scope qui sont liées à instance-group-1 dans le nom de ressource du groupe d'instances de calcul, pour le type de relation INSTANCE_TO_INSTANCEGROUP:

    relationships.INSTANCE_TO_INSTANCEGROUP:instance-group-1
    
  • Recherchez toutes les ressources dans votre scope dont le kmsKeys contient key :

    kmsKeys:key
    
  • Recherchez toutes les ressources dans votre scope dont le champ kmsKeys contient exactement key :

    kmsKeys=key
    
  • Recherchez toutes les ressources de votre fichier scope dont le champ sccSecurityMarks contient la paire clé-valeur exacte (key, value):

    sccSecurityMarks.key=value
    
  • Recherchez toutes les ressources de votre fichier scope dont le champ sccSecurityMarks contient la paire clé/valeur où la clé est key:

    sccSecurityMarks.key:*
    
  • Recherchez toutes les ressources dans votre scope dont le state contient ACTIVE :

    state:ACTIVE
    
  • Recherchez toutes les ressources dans votre scope dont le state ne contient pas ACTIVE :

    NOT state:ACTIVE
    
  • Recherchez toutes les ressources de votre scope qui ont été créées avant 2021-01-01 00:00:00 UTC (1609459200 correspond au code temporel de l'epoch en secondes de 2021-01-01 00:00:00 UTC):

    createTime<1609459200
    createTime<2021-01-01
    createTime<"2021-01-01T00:00:00"
    
  • Recherchez toutes les ressources de votre scope qui ont été mises à jour après 2021-01-01 00:00:00 UTC (1609459200 correspond au code temporel de l'epoch en secondes de 2021-01-01 00:00:00 UTC):

    updateTime>1609459200
    updateTime>2021-01-01
    updateTime>"2021-01-01T00:00:00"
    
  • Recherchez toutes les ressources dans votre scope dont le project contient le numéro 123 :

    project:123
    
  • Recherchez toutes les ressources de votre scope contenues dans folder portant le numéro 123:

    folders:123
    
  • Recherchez toutes les ressources dans votre scope dont le organization contient le numéro 123 :

    organization:123
    
  • Recherchez toutes les ressources dans votre scope dont le parentFullResourceName contient ImportantName :

    parentFullResourceName:ImportantName
    
  • Recherchez toutes les ressources dans votre scope dont le parentAssetType contient Project :

    parentAssetType:Project
    
  • Recherchez toutes les ressources de votre fichier scope dont le champ name contient le mot Important et description contient un mot commençant par import:

    name:Important description:import*
    
  • Recherchez toutes les ressources de votre scope dont le champ name contient le mot Important ou description contient un mot commençant par import:

    name:Important OR description:import*
    

Interroger les ressources Google Cloud par texte libre

Vous pouvez également utiliser une requête en texte libre sans spécifier de champ. Elle renvoie ensuite des ressources, à condition qu'un champ des métadonnées de ressources corresponde à la requête.

Exemples : requête par texte libre

  • Recherchez toutes les ressources de votre scope dont les champs de métadonnées (par exemple, name, displayName, description) contiennent le mot Important:

    Important
    
  • Recherchez toutes les ressources de votre fichier scope dont les champs de métadonnées (par exemple, name, displayName, description) contiennent un mot commençant par import:

    import*
    
  • Recherchez toutes les ressources de votre fichier scope dont les champs de métadonnées (par exemple, name, displayName, description) contiennent le mot Important ainsi qu'un mot commençant par le préfixe prod:

    Important prod*