A seconda delle tue esigenze, potresti dover progettare l'architettura in modo che funzioni in più progetti quando utilizzi Cloud Asset Inventory. Gli scenari seguenti sono i più comuni:
Progetti orchestrator: quando vuoi che un singolo progetto attivi operazioni di Cloud Asset Inventory in altri progetti.
Esportazione tra progetti: quando vuoi esportare i metadati delle risorse da un progetto a un altro.
Ciascuno di questi scenari richiede una configurazione per garantire il completamento delle operazioni.
Progetti di Orchestrator
Quando utilizzi un progetto per attivare operazioni di Cloud Asset Inventory sulle risorse di un altro progetto, in alcuni scenari devi specificare che l'account di servizio Cloud Asset Inventory predefinito nell'altro progetto venga utilizzato per eseguire l'operazione. Questi scenari includono:
Per impostare il account di servizio da utilizzare, imposta il progetto di fatturazione sull'ID del progetto che contiene le risorse su cui stai operando. Se il progetto di fatturazione non è specificato, Cloud Asset Inventory utilizza l'account di servizio Cloud Asset Inventory predefinito nel progetto che effettua la chiamata, che potrebbe non disporre delle autorizzazioni necessarie per completare l'operazione.
Sebbene non sia obbligatorio per tutte le operazioni, può essere una buona pratica specificare sempre un progetto di fatturazione per ridurre al minimo la confusione.
gcloud
Per gcloud CLI, aggiungi il flag --billing-project al comando per specificare l'ID progetto che contiene il account di servizio corretto:
--billing-project=BILLING_PROJECT_ID
In alternativa, puoi impostare il progetto di fatturazione prima di eseguire i comandi con gcloud CLI. Innanzitutto, verifica se il progetto di fatturazione è diverso dal progetto principale:
gcloud config list
Se necessario, imposta il progetto di fatturazione:
gcloud config set billing/quota_project BILLING_PROJECT_ID
Fornisci i seguenti valori:
BILLING_PROJECT_ID: un ID progetto con l'API Cloud Asset Inventory abilitata e un account di servizio con autorizzazioni per gestire l'argomento Pub/Sub, il bucket Cloud Storage o la tabella BigQuery di destinazione.
REST
Per l'API REST, aggiungi l'intestazione X-Goog-User-Project per specificare l'ID progetto che contiene il account di servizio corretto:
"X-Goog-User-Project: BILLING_PROJECT_ID"
Fornisci i seguenti valori:
BILLING_PROJECT_ID: un ID progetto con l'API Cloud Asset Inventory abilitata e un account di servizio con autorizzazioni per gestire l'argomento Pub/Sub, il bucket Cloud Storage o la tabella BigQuery di destinazione.
Esportare tra progetti
Per esportare i metadati degli asset da un progetto, PROJECT_A, a un altro, PROJECT_B,
devi concedere al account di servizio Cloud Asset Inventory predefinito in PROJECT_A l'accesso
alle risorse in PROJECT_B.
Ciò consente due cose:
Puoi esportare i metadati degli asset da
PROJECT_Ain un argomento Pub/Sub, un bucket Cloud Storage o una tabella BigQuery che si trova inPROJECT_B.Puoi utilizzare
PROJECT_Aper esportare i metadati degli asset daPROJECT_Bin un argomento Pub/Sub, un bucket Cloud Storage o una tabella BigQuery che si trova inPROJECT_B.
Per esportare i metadati degli asset da un progetto a un altro, completa le seguenti istruzioni:
Assicurati che l'API Cloud Asset Inventory sia abilitata nel progetto da cui vuoi eseguire la richiesta,
PROJECT_A.Esegui almeno una chiamata all'API Cloud Asset Inventory in
PROJECT_Aper creare l'account di servizio Cloud Asset Inventory predefinito. In alternativa, puoi crearlo manualmente: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.serviceAgentCome trovare un Google Cloud numero di progetto
ConsoleGoogle Cloud
Per trovare un numero di progetto, completa i seguenti passaggi: Google Cloud
-
Vai alla pagina Benvenuto nella console Google Cloud .
- Fai clic sulla casella di elenco del selettore nella barra dei menu.
-
Seleziona la tua organizzazione dalla casella di elenco e poi cerca il nome del tuo progetto. Il nome, il numero e l'ID progetto sono visualizzati vicino all'intestazione Benvenuto.
Vengono visualizzate fino a 4000 risorse. Se non vedi il progetto che stai cercando, vai alla pagina Gestisci risorse e filtra l'elenco utilizzando il nome del progetto.
Interfaccia a riga di comando gcloud
Puoi recuperare un Google Cloud numero di progetto con il seguente comando:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
Concedi i ruoli corretti al account di servizio in
PROJECT_A.Per pubblicare in un feed tramite Pub/Sub, concedi il ruolo Pub/Sub Publisher (
roles/pubsub.publisher) al account di servizio nell'argomento: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.publisherPer scrivere in un bucket Cloud Storage, concedi il ruolo Amministratore di Storage (
roles/storage.admin) al account di servizio nel 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.adminPer scrivere in una tabella BigQuery, concedi i ruoli Editor dati BigQuery (
roles/bigquery.dataEditor) e Utente BigQuery (roles/bigquery.user) al account di servizio nel progetto: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 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
Se effettui una richiesta Cloud Asset Inventory con gcloud CLI da
PROJECT_B o utilizzi l'API REST, assicurati di
specificare PROJECT_A come progetto di fatturazione.