Exporter des métadonnées d'éléments à l'aide de l'inventaire des éléments cloud
Ce guide de démarrage rapide explique comment exporter des métadonnées d'éléments à un moment précis à l'aide de l'inventaire des éléments cloud et des commandes gcloud asset
de Google Cloud CLI.
Avant de commencer
Avant de pouvoir utiliser l'inventaire des éléments cloud, vous devez activer l'API Cloud Asset Inventory, la Google Cloud CLI, et attribuer des autorisations. La Google Cloud CLI interagit avec l'inventaire des éléments cloud et d'autres services Google Cloud. En savoir plus sur la gcloud CLI
Activer l'API Cloud Asset Inventory et la Google Cloud CLI
- Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the required API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the required API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Configurer des autorisations
Pour appeler l'API Cloud Asset Inventory, vous devez d'abord configurer les autorisations.
Rechercher des ressources
Pour rechercher des métadonnées de ressource, exécutez la commande suivante.
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
: facultatif. Un champ d'application peut être un projet, un dossier ou une organisation. La recherche est limitée aux ressources Google Cloud incluses dans ce champ d'application. L'appelant doit disposer de l'autorisationcloudasset.assets.searchAllResources
sur le champ d'application souhaité. Si elle n'est pas 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:
-
Accédez à la page Tableau de bord dans la console Google Cloud.
- Cliquez sur le sélecteur dans la barre de menu.
- Sélectionnez votre organisation dans la zone Sélectionner à partir de, puis recherchez le nom de votre projet.
- Cliquez sur le nom du projet pour passer à celui-ci. Le numéro du projet est indiqué sur 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:
-
Accédez à Google Cloud Console.
- Cliquez sur le sélecteur dans la barre de menu.
- Cliquez sur le champ Sélectionner à partir de, puis sélectionnez votre organisation.
- Recherchez le nom de votre dossier. L'ID du dossier figure à côté du nom du dossier.
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)"
Où 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:
-
Accédez à Google Cloud Console.
- Cliquez sur le sélecteur dans la barre de menu.
- Cliquez sur le champ Sélectionner à partir de, puis sélectionnez votre organisation.
- Cliquez sur l'onglet Tous. L'ID de l'organisation s'affiche à 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. S'il n'est pas spécifié ou qu'il est vide, l'inventaire des éléments cloud recherche toutes les ressources duscope
spécifié.Exemples :
name:Important
pour rechercher les ressources Google Cloud dont le nom contientImportant
comme mot.name=Important
pour rechercher la ressource Google Cloud dont le nom est exactementImportant
.displayName:Impor*
pour rechercher les ressources Google Cloud dont le nom à afficher contientImpor
en préfixe.location:us-west*
pour rechercher les ressources Google Cloud dont l'emplacement contient les préfixesus
etwest
.labels:prod
pour rechercher les ressources Google Cloud dont les libellés contiennentprod
en tant que clé ou valeur.labels.env:prod
pour rechercher les ressources Google Cloud associées à l'étiquetteenv
et à la valeur "prod".labels.env:*
pour rechercher les ressources Google Cloud portant le libelléenv
.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 motkey
.sccSecurityMarks.key=value
pour rechercher les ressources Google Cloud associées à une paire de marques de sécurité dont la clé estkey
et la valeurvalue
.sccSecurityMarks.key:*
pour rechercher les ressources Google Cloud associées à une paire de marques de sécurité dont la clé estkey
.state:ACTIVE
pour rechercher les ressources Google Cloud dont l'état contientACTIVE
en tant que mot.NOT state:ACTIVE
pour rechercher les ressources Google Cloud dont l'état ne contient pas le motACTIVE
.createTime<1609459200
,createTime<2021-01-01
oucreateTime<"2021-01-01T00:00:00"
pour rechercher les ressources Google Cloud créées avant le 01/01/2021 à 00:00:00 UTC. 1609459200 est le code temporel d'epoch du 01-01-2021 00:00:00 UTC en secondes.updateTime>1609459200
,updateTime>2021-01-01
ouupdateTime>"2021-01-01T00:00:00"
pour rechercher les ressources Google Cloud mises à jour après le 01/01/2021 à 00:00:00 UTC. 1609459200 est le code temporel d'epoch du 01-01-2021 00:00:00 UTC en secondes.project:12345
pour rechercher les ressources Google Cloud appartenant à un projet Google Cloud portant le numéro 12345. L'ID du projet n'est pas accepté.folders:(123 or 456)
pour rechercher les ressources Google Cloud descendantes du dossier Google Cloud portant les numéros 123 ou 456.organization:123
pour rechercher les ressources Google Cloud descendantes de l'organisation Google Cloud portant le numéro 123.parentFullResourceName:ImportantName
pour rechercher les ressources Google Cloud dont le nom du parent contientImportantName
.parentAssetType:Project
pour rechercher les ressources Google Cloud dont le type d'élément du parent contientProject
.Important
pour rechercher les ressources Google Cloud contenantImportant
comme mot dans l'un des champs inclus dans l'index de recherche.Impor*
pour rechercher les ressources Google Cloud contenant le préfixeImpor
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 se trouvent également dans la régionus-west1
ou dans l'emplacementglobal
.
ASSET_TYPE
: facultatif. Liste de types d'éléments inclus dans l'index de recherche 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 erreurINVALID_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 redondants 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
etkmsKeys
), les champs de mappage (par exemple,labels
) et les champs struct (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. S'il n'est pas spécifié, tous les champs, à l'exception deversionedResources
, sont renvoyés. Si seul"*"
est spécifié, tous les champs sont renvoyés. Exemples :"name,location"
,"name,versionedResources"
,"*"
.
Pour en savoir plus sur la recherche de ressources, consultez la section Rechercher des ressources.
Rechercher des stratégies IAM
Pour rechercher des stratégies IAM (Identity and Access Management), exécutez la commande suivante.
gcloud asset search-all-iam-policies \
--scope=SCOPE \
--query="QUERY" \
--asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \
--order-by="ORDER_BY"
Indiquez les valeurs suivantes :
SCOPE
: facultatif. Un champ d'application peut être un projet, un dossier ou une organisation. La recherche est limitée aux ressources IAM de ce champ d'application. L'appelant doit disposer de l'autorisationcloudasset.assets.searchAllIamPolicies
sur le champ d'application souhaité. Si elle n'est pas 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:
-
Accédez à la page Tableau de bord dans la console Google Cloud.
- Cliquez sur le sélecteur dans la barre de menu.
- Sélectionnez votre organisation dans la zone Sélectionner à partir de, puis recherchez le nom de votre projet.
- Cliquez sur le nom du projet pour passer à celui-ci. Le numéro du projet est indiqué sur 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:
-
Accédez à Google Cloud Console.
- Cliquez sur le sélecteur dans la barre de menu.
- Cliquez sur le champ Sélectionner à partir de, puis sélectionnez votre organisation.
- Recherchez le nom de votre dossier. L'ID du dossier figure à côté du nom du dossier.
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)"
Où 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:
-
Accédez à Google Cloud Console.
- Cliquez sur le sélecteur dans la barre de menu.
- Cliquez sur le champ Sélectionner à partir de, puis sélectionnez votre organisation.
- Cliquez sur l'onglet Tous. L'ID de l'organisation s'affiche à 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 qu'il est vide, l'inventaire des éléments cloud recherche toutes les stratégies IAM dans lescope
spécifié. La chaîne de requête est comparée à chaque liaison de stratégie IAM, y compris ses comptes principaux, ses rôles et ses conditions IAM. Les stratégies IAM renvoyées ne contiennent que les liaisons qui correspondent à votre requête. Pour en savoir plus sur la structure des stratégies IAM, consultez la page Structure des stratégies.Exemples :
policy:amy@gmail.com
pour rechercher les liaisons de stratégie IAM qui spécifient l'utilisateuramy@gmail.com
.policy:roles/compute.admin
pour rechercher les liaisons de stratégie IAM qui spécifient le rôle d'administrateur de Compute.policy:comp*
pour rechercher les liaisons de stratégie IAM contenantcomp
en préfixe de n'importe quel mot de la liaison.policy.role.permissions:storage.buckets.update
pour rechercher les liaisons de stratégie IAM spécifiant un rôle contenant l'autorisationstorage.buckets.update
. Si les appelants n'ont pas d'accèsiam.roles.get
aux autorisations incluses d'un rôle, les liaisons de stratégie qui spécifient ce rôle seront supprimées des résultats de recherche.policy.role.permissions:upd*
pour rechercher les liaisons de stratégie IAM qui spécifient un rôle contenantupd
en préfixe de n'importe quel mot de l'autorisation du rôle. Notez que si les appelants ne disposent pas d'un accèsiam.roles.get
aux autorisations incluses d'un rôle, les liaisons de stratégie spécifiant ce rôle seront supprimées des résultats de recherche.resource:organizations/123456
pour rechercher les liaisons de stratégie IAM définies sur "organizations/123456".resource=//cloudresourcemanager.googleapis.com/projects/myproject
pour rechercher les liaisons de stratégie IAM définies sur le projet nommémyproject
.Important
pour rechercher les liaisons de stratégie IAM contenantImportant
sous la forme d'un mot dans l'un des champs inclus dans l'index de recherche (à l'exception des autorisations incluses).resource:(instance1 OR instance2) policy:amy
pour rechercher les liaisons de stratégie IAM définies sur les ressourcesinstance1
ouinstance2
, et qui spécifient également l'utilisateuramy
.roles:roles/compute.admin
pour rechercher les liaisons de stratégie IAM qui spécifient le rôle d'administrateur de Compute.memberTypes:user
pour rechercher les liaisons de stratégie IAM contenant le type de compte principaluser
.
ASSET_TYPE
: facultatif. Liste des types d'éléments inclus dans l'index de recherche séparés par une virgule et auxquels les stratégies IAM sont associées. Si ce champ est vide, l'inventaire des éléments cloud recherche les stratégies IAM associées à tous les types d'éléments indexables. Les expressions régulières sont acceptées. Si l'expression régulière ne correspond à aucun type d'élément compatible, une erreurINVALID_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 redondants sont ignorés. Exemple :"location DESC, name"
. Seuls les champs primitifs singuliers de la réponse peuvent être triés:resource
assetType
project
Les autres champs, tels que les champs répétés (par exemple,
folders
) et les champs non primitifs (par exemple,policy
), ne sont pas compatibles.
Pour en savoir plus sur la recherche de stratégies IAM, consultez la section Rechercher des stratégies IAM.
Exporter un instantané d'élément vers Cloud Storage
Pour exporter toutes les métadonnées d'éléments à un horodatage donné vers un fichier d'un bucket Cloud Storage, procédez comme suit.
Créez un bucket si vous n'en avez pas encore.
Pour exporter des métadonnées d'éléments dans votre projet, exécutez la commande suivante. Cette commande stocke l'instantané exporté dans un fichier situé dans
gs://BUCKET_NAME/FILENAME
.Projets
gcloud asset export \ --project=PROJECT_ID \ --billing-project=BILLING_PROJECT_ID \ --content-type=CONTENT_TYPE \ --snapshot-time="SNAPSHOT_TIME" \ --output-path="gs://BUCKET_NAME/FILENAME"
Indiquez les valeurs suivantes :
PROJECT_ID
: ID du projet dont vous souhaitez exporter les métadonnées.BILLING_PROJECT_ID
: facultatif. ID du projet dans lequel se trouve l'agent de service inventaire des éléments cloud par défaut et qui dispose de l'autorisation d'écrire dans votre bucket Cloud Storage. Cela n'est pas nécessaire si vous êtes déjà passé au projet de facturation avecgcloud config set project
. En savoir plus sur les projets de facturationCONTENT_TYPE
: facultatif. Type de contenu de l'élément à exporter. Si aucun type de contenu n'est spécifié, seul le nom de l'élément est renvoyé. En savoir plus sur les types de contenuSNAPSHOT_TIME
: facultatif. Heure à laquelle vous souhaitez prendre un instantané de vos éléments. La valeur doit correspondre à l'heure actuelle ou à une heure antérieure de 35 jours maximum. Lorsqu'il n'est pas fourni, un instantané est pris à l'heure actuelle. Pour en savoir plus sur les formats d'heure, consultez gcloud topic datetimes.BUCKET_NAME
: nom du bucket Cloud Storage dans lequel écrire.FILENAME
: fichier de votre bucket Cloud Storage dans lequel écrire.
Dossiers
gcloud asset export \ --folder=FOLDER_ID \ --billing-project=BILLING_PROJECT_ID \ --content-type=CONTENT_TYPE \ --snapshot-time="SNAPSHOT_TIME" \ --output-path="gs://BUCKET_NAME/FILENAME"
Indiquez les valeurs suivantes :
FOLDER_ID
: ID du dossier dont vous souhaitez exporter les métadonnées.Trouver un ID de dossier Google Cloud
Console
Pour trouver un ID de dossier Google Cloud, procédez comme suit:
-
Accédez à Google Cloud Console.
- Cliquez sur le sélecteur dans la barre de menu.
- Cliquez sur le champ Sélectionner à partir de, puis sélectionnez votre organisation.
- Recherchez le nom de votre dossier. L'ID du dossier figure à côté du nom du dossier.
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)"
Où 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 inventaire des éléments cloud par défaut et qui dispose de l'autorisation d'écrire dans votre bucket Cloud Storage. Cela n'est pas nécessaire si vous êtes déjà passé au projet de facturation avecgcloud config set project
. En savoir plus sur les projets de facturationCONTENT_TYPE
: facultatif. Type de contenu de l'élément à exporter. Si aucun type de contenu n'est spécifié, seul le nom de l'élément est renvoyé. En savoir plus sur les types de contenuSNAPSHOT_TIME
: facultatif. Heure à laquelle vous souhaitez prendre un instantané de vos éléments. La valeur doit correspondre à l'heure actuelle ou à une heure antérieure de 35 jours maximum. Lorsqu'il n'est pas fourni, un instantané est pris à l'heure actuelle. Pour en savoir plus sur les formats d'heure, consultez gcloud topic datetimes.BUCKET_NAME
: nom du bucket Cloud Storage dans lequel écrire.FILENAME
: fichier de votre bucket Cloud Storage dans lequel écrire.
Organisations
gcloud asset export \ --organization=ORGANIZATION_ID \ --billing-project=BILLING_PROJECT_ID \ --content-type=CONTENT_TYPE \ --snapshot-time="SNAPSHOT_TIME" \ --output-path="gs://BUCKET_NAME/FILENAME"
Indiquez les valeurs suivantes :
ORGANIZATION_ID
: ID de l'organisation dont vous souhaitez exporter les métadonnées.Trouver un ID d'organisation Google Cloud
Console
Pour trouver un ID d'organisation Google Cloud, procédez comme suit:
-
Accédez à Google Cloud Console.
- Cliquez sur le sélecteur dans la barre de menu.
- Cliquez sur le champ Sélectionner à partir de, puis sélectionnez votre organisation.
- Cliquez sur l'onglet Tous. L'ID de l'organisation s'affiche à 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 inventaire des éléments cloud par défaut et qui dispose de l'autorisation d'écrire dans votre bucket Cloud Storage. Cela n'est pas nécessaire si vous êtes déjà passé au projet de facturation avecgcloud config set project
. En savoir plus sur les projets de facturationCONTENT_TYPE
: facultatif. Type de contenu de l'élément à exporter. Si aucun type de contenu n'est spécifié, seul le nom de l'élément est renvoyé. En savoir plus sur les types de contenuSNAPSHOT_TIME
: facultatif. Heure à laquelle vous souhaitez prendre un instantané de vos éléments. La valeur doit correspondre à l'heure actuelle ou à une heure antérieure de 35 jours maximum. Lorsqu'il n'est pas fourni, un instantané est pris à l'heure actuelle. Pour en savoir plus sur les formats d'heure, consultez gcloud topic datetimes.BUCKET_NAME
: nom du bucket Cloud Storage dans lequel écrire.FILENAME
: fichier de votre bucket Cloud Storage dans lequel écrire.
Facultatif: Pour vérifier l'état de l'exportation, exécutez la commande ci-dessous. Il s'affiche dans la gcloud CLI après l'exécution de la commande d'exportation.
gcloud asset operations describe OPERATION_PATH
Afficher l'instantané d'un élément
Pour afficher l'instantané d'élément après l'avoir exporté vers Cloud Storage, procédez comme suit.
Accédez à la page Buckets Cloud Storage dans la console Google Cloud.
Ouvrez le fichier dans lequel vous avez exporté vos métadonnées.
Le fichier d'exportation liste les éléments et le nom de leurs ressources.
Étapes suivantes
Apprenez-en plus sur Cloud Asset Inventory.
Découvrez comment obtenir l'historique des éléments.