Vous pouvez interroger les composants de votre projet, dossier ou organisation à l'aide d'un dialecte compatible avec BigQuery SQL.
Avant de commencer
Activez l'API Cloud Asset Inventory dans le projet à partir duquel vous exécutez les commandes inventaire des éléments cloud.
Assurez-vous que votre compte dispose du rôle approprié pour appeler l'API Cloud Asset Inventory. Pour connaître les autorisations individuelles pour chaque type d'appel, consultez Autorisations.
Limites
Dans les noms de types d'éléments,
.et/sont remplacés par_. Par exemple,compute.googleapis.com/Instancedevientcompute_googleapis_com_Instance.La requête doit être une requête
SELECT.L'ancien SQL de BigQuery n'est pas compatible.
Les résultats de requête de plus de 10 Go ne sont pas acceptés.
Les résultats de requête de plus de 10 Mo ou 1 000 lignes sont toujours paginés.
Le traitement des requêtes ne doit pas prendre plus de six heures.
Les résultats des requêtes ne peuvent être exportés que vers un ensemble de données BigQuery dans la multirégion
US.
Tables que vous pouvez interroger
Vous pouvez interroger les tables suivantes :
Pour les types de contenu
RESOURCE, les noms de table de l'ensemble de données correspondent au nom du type d'asset, à condition que ce type d'asset existe. Par exemple, la tablecompute_googleapis_com_Instancecontient les métadonnées des instances Compute Engine.Pour les types de contenu autres que
RESOURCE, les noms de tables de l'ensemble de données correspondent aux noms de types de contenu RPC/REST. Par exemple,ACCESS_POLICY.Pour interroger les métadonnées standards des ressources pour tous les types de ressources, utilisez le nom de table
STANDARD_METADATA. Cela inclut tous les champs, à l'exception deresource.DATA, qui est spécifique à chaque type de ressource.
Interroger les métadonnées d'un composant
Console
Pour interroger les métadonnées des composants de votre projet, dossier ou organisation, procédez comme suit :
-
Dans la console Google Cloud , accédez à l'onglet Requête sur un élément de la page Inventaire des éléments.
Accéder à la requête sur un élément
Si l'onglet Requête d'élément ne s'affiche pas, vous devez avoir accès au niveau Premium ou Enterprise de Security Command Center ou à Gemini Cloud Assist.
- Passez au projet, au dossier ou à l'organisation que vous souhaitez interroger.
- Cliquez sur l'onglet Requête sur un élément.
-
Pour interroger les métadonnées d'un élément, utilisez un exemple de requête ou créez la vôtre :
- Pour utiliser un exemple, cliquez sur une entrée de l'onglet Bibliothèque de requêtes pour prévisualiser la requête. Cliquez sur Appliquer pour copier cet exemple dans la zone Modifier la requête, puis modifiez la requête ou cliquez sur Exécuter pour l'exécuter.
- Pour créer votre propre requête, saisissez le texte de la requête directement dans la zone Modifier la requête, puis cliquez sur Exécuter pour l'exécuter. Pour vous aider à écrire votre propre requête, vous pouvez cliquer sur une table dans le volet Sélectionner une table pour prévisualiser son schéma et son contenu. Pour savoir comment construire une requête, consultez Syntaxe des requêtes.
Les métadonnées des composants correspondant à la requête s'affichent dans l'onglet Résultat de la requête.
-
Facultatif : Pour télécharger les ensembles de résultats de la requête au format CSV, cliquez sur Exporter.
La taille maximale du fichier CSV est de 2 Mo. Si la demande de téléchargement échoue parce que la taille du fichier dépasse cette limite, un message s'affiche avec des instructions pour exporter tous les résultats.
gcloud
gcloud asset query \ --SCOPE \ --statement="SQL_SELECT_QUERY" \ --timeout="TIMEOUTs"
Indiquez les valeurs suivantes :
-
SCOPE: utilisez l'une des valeurs suivantes :-
project=PROJECT_ID, oùPROJECT_IDest l'ID du projet contenant les composants que vous souhaitez interroger. -
folder=FOLDER_ID, oùFOLDER_IDcorrespond à l'ID du dossier contenant les composants que vous souhaitez interroger.Trouver l'ID d'un dossier Google Cloud
ConsoleGoogle Cloud
Pour trouver l'ID d'un dossier Google Cloud , procédez comme suit :
-
Accédez à la console Google Cloud .
- Cliquez sur la zone de liste du sélecteur dans la barre de menu.
- Sélectionnez votre organisation dans la zone de liste.
- Recherchez le nom de votre dossier. L'ID du dossier s'affiche à côté de son nom.
gcloud CLI
Vous pouvez récupérer l'ID d'un 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)"
Où TOP_LEVEL_FOLDER_NAME est une chaîne partielle ou complète correspondant au nom du dossier. Supprimez l'option
--formatpour afficher plus d'informations sur les dossiers trouvés.La commande précédente ne renvoie pas les ID des sous-dossiers dans les dossiers. Pour ce faire, exécutez la commande suivante à l'aide de l'ID d'un dossier de premier niveau :
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organization=ORGANIZATION_ID, oùORGANIZATION_IDcorrespond à l'ID de l'organisation qui possède les composants que vous souhaitez interroger.Trouver l'ID d'une organisation Google Cloud
ConsoleGoogle Cloud
Pour trouver l'ID d'une organisation Google Cloud , procédez comme suit :
-
Accédez à la console Google Cloud .
- Cliquez sur la zone de liste du sélecteur dans la barre de menu.
- Sélectionnez votre organisation dans la zone de liste.
- Cliquez sur l'onglet Tous. L'ID de l'organisation est indiqué à côté de son nom.
gcloud CLI
Vous pouvez récupérer l'ID d'une organisation Google Cloud à l'aide de la commande suivante :
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
SQL_SELECT_QUERY: requête SQLSELECT. -
TIMEOUT: facultatif. Durée maximale, en secondes, pendant laquelle un client doit attendre la fin de la requête avant de continuer. Utilisez des délais d'attente pour exécuter votre requête de manière asynchrone et récupérer les résultats ultérieurement à l'aide de références de job.
Consultez la documentation de référence de gcloud CLI pour toutes les options.
Exemple
Exécutez la commande suivante pour obtenir les noms et les types d'éléments des deux premières instances Compute Engine du projet my-project.
gcloud asset query \ --project=my-project \ --statement=" SELECT name, assetType FROM compute_googleapis_com_Instance LIMIT 2"
Réponse de tâche terminée
L'exemple suivant montre une réponse à l'exemple de requête précédent. La réponse contient une référence de job et vous indique si le job est terminé (done: true). Si le job est terminé, l'objet queryResult est renseigné avec les données appropriées, et les résultats sont listés ensuite.
done: true jobReference: 0000000000000000000000000000000000000000000000000000000000000000 queryResult: nextPageToken: '' totalRows: '2' name: //compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/instance-1 assetType: compute.googleapis.com/Instance name: //compute.googleapis.com/projects/my-project/zones/us-central1-c/instances/instance-2 assetType: compute.googleapis.com/Instance
Réponse de tâche inachevée
Si vous définissez un délai avant expiration dans votre requête, la requête est exécutée de manière asynchrone et vous recevez une réponse indiquant que le job n'est pas terminé (done: false). Ces types de réponses contiennent une référence de job et un objet queryResult non rempli :
done: false jobReference: 0000000000000000000000000000000000000000000000000000000000000000 queryResult: nextPageToken: '' totalRows: '0'
Vous pouvez utiliser la valeur jobReference pour récupérer les résultats de la requête ultérieurement, une fois le job terminé et les données disponibles.
REST
Méthode HTTP et URL :
POST https://cloudasset.googleapis.com/v1/SCOPE_PATH:queryAssets
Corps JSON de la requête :
{ "statement": "SQL_SELECT_QUERY", "timeout": "TIMEOUTs", "pageSize": "PAGE_SIZE", "pageToken": "PAGE_TOKEN" }
Indiquez les valeurs suivantes :
-
SCOPE_PATH: utilisez l'une des valeurs suivantes :Les valeurs autorisées sont les suivantes :
-
projects/PROJECT_ID, oùPROJECT_IDest l'ID du projet contenant les composants que vous souhaitez interroger. -
projects/PROJECT_NUMBER, oùPROJECT_NUMBERcorrespond au numéro du projet contenant les assets que vous souhaitez interroger.Trouver le numéro d'un projet Google Cloud
ConsoleGoogle Cloud
Pour trouver le numéro d'un projet Google Cloud , procédez comme suit :
-
Accédez à la page d'accueil de la console Google Cloud .
- Cliquez sur la zone de liste du sélecteur dans la barre de menu.
-
Sélectionnez votre organisation dans la zone de liste, puis recherchez le nom de votre projet. Le nom, le numéro et l'ID du projet sont affichés près de l'en-tête Bienvenue.
Jusqu'à 4 000 ressources sont affichées. Si vous ne voyez pas le projet que vous recherchez, accédez à la page Gérer les ressources et filtrez la liste à l'aide du nom de ce projet.
gcloud CLI
Vous pouvez récupérer un numéro de projet Google Cloud avec la commande suivante :
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
-
folders/FOLDER_ID, oùFOLDER_IDcorrespond à l'ID du dossier contenant les composants que vous souhaitez interroger.Trouver l'ID d'un dossier Google Cloud
ConsoleGoogle Cloud
Pour trouver l'ID d'un dossier Google Cloud , procédez comme suit :
-
Accédez à la console Google Cloud .
- Cliquez sur la zone de liste du sélecteur dans la barre de menu.
- Sélectionnez votre organisation dans la zone de liste.
- Recherchez le nom de votre dossier. L'ID du dossier s'affiche à côté de son nom.
gcloud CLI
Vous pouvez récupérer l'ID d'un 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
-
-