Selon vos besoins, vous devrez peut-être concevoir votre architecture pour qu'elle fonctionne sur plusieurs projets lors de l'utilisation de l'inventaire des éléments cloud. Les scénarios suivants sont les plus courants :
Projets d'orchestration: lorsque vous souhaitez qu'un seul projet déclencher des opérations d'inventaire des éléments cloud dans d'autres projets.
Exporter entre projets: lorsque vous souhaitez exporter des ressources les métadonnées d'un projet à un autre.
Chacun de ces scénarios nécessite une certaine configuration pour garantir que les opérations se terminent avec succès.
Projets d'orchestrateur
Lorsque vous utilisez un projet pour déclencher des opérations d'inventaire des éléments cloud sur les ressources de dans un autre projet, dans certains cas, vous devez spécifier que compte de service inventaire des éléments cloud de l'autre projet pour effectuer la opération. Voici quelques exemples de scénarios :
Exporter les métadonnées des éléments vers des buckets Cloud Storage
Surveiller les modifications apportées aux éléments avec Pub/Sub
Pour définir le compte de service à utiliser, définissez le projet de facturation sur l'ID du projet contenant les ressources sur lesquelles vous travaillez. Si les paramètres de facturation projet n'est pas spécifié, l'inventaire des éléments cloud utilise l'inventaire par défaut des éléments cloud compte de service dans le projet qui effectue l'appel, qui peut ne pas avoir autorisations requises pour terminer l'opération.
Bien que cela ne soit pas obligatoire pour toutes les opérations, il est recommandé de toujours spécifier un projet de facturation pour éviter toute confusion.
gcloud
Pour la gcloud CLI, ajoutez l'option --billing-project
à votre commande pour spécifier l'ID de projet contenant le compte de service approprié :
--billing-project=BILLING_PROJECT_ID
Vous pouvez également définir le projet de facturation avant d'exécuter des commandes avec la gcloud CLI. Tout d'abord, vérifiez si le projet de facturation est différent du projet de base:
gcloud config list
Si nécessaire, définissez le projet de facturation :
gcloud config set billing/quota_project BILLING_PROJECT_ID
Indiquez les valeurs suivantes :
BILLING_PROJECT_ID
: un ID de projet avec l'API Cloud Asset Inventory activée et un compte de service disposant des autorisations nécessaires pour gérer votre sujet Pub/Sub, votre bucket Cloud Storage ou votre table BigQuery cibles.
REST
Pour l'API REST, ajoutez l'en-tête X-Goog-User-Project
pour spécifier l'ID de projet contenant le compte de service approprié :
"X-Goog-User-Project: BILLING_PROJECT_ID"
Indiquez les valeurs suivantes :
BILLING_PROJECT_ID
: un ID de projet associé au L'API Cloud Asset Inventory est activée, et un compte de service disposant des autorisations nécessaires gérer votre sujet Pub/Sub cible, votre bucket Cloud Storage ou table BigQuery.
Exporter entre projets
Pour exporter les métadonnées des éléments d'un projet (PROJECT_A
) vers un autre (PROJECT_B
),
vous devez accorder au compte de service inventaire des éléments cloud par défaut dans PROJECT_A
un accès
les ressources dans PROJECT_B
.
Cela permet deux choses:
Vous pouvez exporter les métadonnées des éléments depuis
PROJECT_A
vers un sujet Pub/Sub, un bucket Cloud Storage ou une table BigQuery situés dansPROJECT_B
.Vous pouvez utiliser
PROJECT_A
pour exporter les métadonnées d'un élément dePROJECT_B
dans un Sujet Pub/Sub, bucket Cloud Storage ou BigQuery située dansPROJECT_B
.
Pour exporter les métadonnées d'un élément d'un projet vers un autre, procédez comme suit :
Assurez-vous que la propriété L'API Cloud Asset Inventory est activée dans le projet à partir duquel vous souhaitez exécuter votre requête,
PROJECT_A
.Effectuez au moins un appel à l'API Cloud Asset Inventory dans
PROJECT_A
pour créer la Inventaire des éléments cloud par défaut. Vous pouvez également le créer manuellement :gcloud beta services identity create \ --service=cloudasset.googleapis.com \ --project=PROJECT_A_ID gcloud projects add-iam-policy-binding PROJECT_A_ID \ --member=serviceAccount:service-PROJECT_A_NUMBER@gcp-sa-cloudasset.iam.gserviceaccount.com \ --role=roles/cloudasset.serviceAgent
Trouver un numéro de projet Google Cloud
console Google Cloud
Pour trouver un numéro de projet Google Cloud, procédez comme suit:
-
Accédez à la page Bienvenue dans la console Google Cloud.
<ph type="x-smartling-placeholder"></ph> Accéder à la page d'accueil
- Cliquez sur la liste déroulante Basculateur dans la barre de menu.
-
Sélectionnez votre organisation dans la 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 peuvent s'afficher. Si le projet que vous recherchez ne s'affiche pas, accédez à la page Gérer les ressources et filtrez la liste en utilisant le nom de ce projet.
CLI gcloud
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)"
-
Attribuez les rôles appropriés au compte de service dans
PROJECT_A
.Pour publier dans un flux via Pub/Sub, accordez le rôle Rôle d'éditeur Pub/Sub (
roles/pubsub.publisher
) au compte de service associé au sujet:gcloud pubsub topics add-iam-policy-binding projects/PROJECT_B_ID/topics/TOPIC_ID \ --member=serviceAccount:service-PROJECT_A_NUMBER@gcp-sa-cloudasset.iam.gserviceaccount.com \ --role=roles/pubsub.publisher
Pour écrire dans un bucket Cloud Storage, accordez le rôle Administrateur de l'espace de stockage (
roles/storage.admin
) au compte de service du bucket:gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \ --member=serviceAccount:service-PROJECT_A_NUMBER@gcp-sa-cloudasset.iam.gserviceaccount.com \ --role=roles/storage.objectCreator
Pour écrire dans une table BigQuery, accordez le rôle Éditeur de données BigQuery (
roles/bigquery.dataEditor
) et Utilisateur BigQuery (roles/bigquery.user
) au compte de service du projet:gcloud projects add-iam-policy-binding PROJECT_B_ID \ --member=serviceAccount:service-PROJECT_A_NUMBER@gcp-sa-cloudasset.iam.gserviceaccount.com \ --role=roles/bigquery.user gcloud projects add-iam-policy-binding PROJECT_B_ID \ --member=serviceAccount:service-PROJECT_A_NUMBER@gcp-sa-cloudasset.iam.gserviceaccount.com \ --role=roles/bigquery.dataEditor
Si vous envoyez une requête d'inventaire des éléments cloud avec la gcloud CLI depuis
PROJECT_B
ou l'API REST, veillez à
spécifiez PROJECT_A
comme projet de facturation.