Lavora su più progetti

A seconda delle tue esigenze, potresti dover progettare l'architettura in modo che funzioni su più progetti quando utilizzi l'inventario delle risorse Cloud. Scenari riportati di seguito sono le più comuni:

Ognuno di questi scenari richiede una certa configurazione per garantire il completamento corretto delle operazioni.

Progetti di Orchestrator

Quando utilizzi un progetto per attivare le operazioni di Cloud Asset Inventory sulle risorse di un altro progetto, in alcuni scenari devi specificare che per eseguire l'operazione venga utilizzato l'account di servizio Cloud Asset Inventory predefinito nell'altro progetto. Questi scenari includono:

Per impostare quale account di servizio utilizzare, imposta il progetto di fatturazione sull'ID di al 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, è buona norma e specificare un progetto di fatturazione per ridurre al minimo la confusione.

gcloud

Per gcloud CLI, aggiungi il flag --billing-project al tuo per specificare l'ID progetto che contiene l'account di servizio corretto:

--billing-project=BILLING_PROJECT_ID

In alternativa, puoi impostare il progetto di fatturazione prima di eseguire comandi con con gcloud CLI. Innanzitutto, controlla se il progetto di fatturazione è diverso da quello principale:

gcloud config list

Quindi, se necessario, imposta il progetto di fatturazione:

gcloud config set billing/quota_project BILLING_PROJECT_ID

Specifica i seguenti valori:

  • BILLING_PROJECT_ID: un ID progetto per il quale è attivata l'API Cloud Asset Inventory 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 l'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 gestire l'argomento Pub/Sub di destinazione, il bucket Cloud Storage Tabella BigQuery.

Esportazione tra progetti

Per esportare i metadati di una risorsa da un progetto PROJECT_A a un altro PROJECT_B, devi concedere all'account di servizio Cloud Asset Inventory predefinito in PROJECT_A l'accesso a le risorse in PROJECT_B.

Ciò consente due cose:

  • Puoi esportare i metadati degli asset da PROJECT_A in un argomento Pub/Sub, del bucket Cloud Storage o della tabella BigQuery situata in PROJECT_B.

  • Puoi utilizzare PROJECT_A per esportare i metadati della risorsa da PROJECT_B in un Argomento Pub/Sub, bucket Cloud Storage o BigQuery nella tabella PROJECT_B.

Per esportare i metadati di una risorsa da un progetto a un altro, completa i seguenti passaggi istruzioni:

  1. Assicurati che l'API Cloud Asset Inventory sia attivata nel progetto da cui vuoi eseguire la richiesta, PROJECT_A.

  2. Effettua almeno una chiamata all'API Cloud Asset Inventory in PROJECT_A per creare predefinito di Cloud Asset Inventory. In alternativa, puoi crearla 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.serviceAgent
    

    Come trovare il numero di un progetto Google Cloud

    Console Google Cloud

    Per trovare il numero di un progetto Google Cloud:

    1. Vai alla pagina Ti diamo il benvenuto nella console Google Cloud.

      Vai a Ti diamo il benvenuto

    2. Fai clic sulla casella di elenco selettore nella barra dei menu.
    3. Seleziona la tua organizzazione dalla casella di elenco, quindi cerca il nome del progetto. Il nome del progetto, il numero del progetto e l'ID progetto sono visualizzati accanto al campo Ti diamo il 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 numero di progetto Google Cloud con il seguente comando:

    gcloud projects describe PROJECT_ID --format="value(projectNumber)"

  3. Concedi i ruoli corretti all'account di servizio in PROJECT_A.

    • Per pubblicare in un feed tramite Pub/Sub, concedi il ruolo Publisher Pub/Sub (roles/pubsub.publisher) all'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.publisher
      
    • Per scrivere in un bucket Cloud Storage, concedi la classe Amministratore spazio di archiviazione (roles/storage.admin) all'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.objectCreator
      
    • Per scrivere in una tabella BigQuery, concedi il parametro Editor dati BigQuery (roles/bigquery.dataEditor) e Utente BigQuery (roles/bigquery.user) ruoli all'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.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
      

Se effettui una richiesta di inventario asset di Cloud con l'interfaccia a riga di comando gcloud da PROJECT_B o utilizzi l'API REST, assicurati di specificare PROJECT_A come progetto di fatturazione.