Questo documento spiega come esportare i metadati delle risorse del progetto in un bucket Cloud Storage.
Prima di iniziare
Abilita l'API Cloud Asset Inventory nel progetto da cui stai eseguendo i comandi di Cloud Asset Inventory.
Assicurati che il tuo account disponga del ruolo corretto per chiamare l'API Cloud Asset Inventory. Per le singole autorizzazioni per ogni tipo di chiamata, consulta Autorizzazioni.
Crea un bucket Cloud Storage in cui eseguire l'esportazione, se non ne hai già uno.
Limitazioni
I bucket Cloud Storage criptati con chiavi Cloud Key Management Service (Cloud KMS) personalizzate non sono supportati.
Il bucket Cloud Storage non può avere un criterio di conservazione impostato.
Durante l'esportazione, l'operazione potrebbe creare file temporanei nella cartella di output. Non rimuovere questi file temporanei mentre l'operazione è in corso. Al termine dell'operazione, i file temporanei vengono rimossi automaticamente.
Il tipo di contenuto
ACCESS_POLICY
può essere esportato solo a livello di organizzazione.Se il file in cui stai eseguendo l'esportazione esiste già ed è in corso di esportazione, viene restituito un errore
400
.Per testare le autorizzazioni, Cloud Asset Inventory crea un file vuoto prima di esportare i dati, che invia un evento di attivazione Cloud Storage aggiuntivo di
google.cloud.storage.object.v1.finalized
.
Esportare uno snapshot della risorsa in Cloud Storage
gcloud
gcloud asset export \ --SCOPE \ --billing-project=BILLING_PROJECT_ID \ --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \ --content-type=CONTENT_TYPE \ --relationship-types=RELATIONSHIP_TYPE_1,RELATIONSHIP_TYPE_2,... \ --snapshot-time="SNAPSHOT_TIME" \ --OUTPUT_TYPE
Fornisci i seguenti valori:
-
SCOPE
: utilizza uno dei seguenti valori:-
project=PROJECT_ID
, dovePROJECT_ID
è ID del progetto contenente i metadati della risorsa che vuoi esportare. -
folder=FOLDER_ID
, doveFOLDER_ID
è ID della cartella contenente i metadati della risorsa che vuoi esportare.Come trovare l'ID di una cartella Google Cloud
Google Cloud console
Per trovare l'ID di una cartella Google Cloud , segui questi passaggi:
-
Vai alla console Google Cloud .
- Fai clic sulla casella di elenco selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella di elenco.
- Cerca il nome della cartella. L'ID cartella viene visualizzato accanto al nome della cartella.
Interfaccia a riga di comando gcloud
Puoi recuperare l'ID di una cartella Google Cloud che si trova a livello di organizzazione con il seguente comando:
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)"
dove TOP_LEVEL_FOLDER_NAME è una corrispondenza parziale o completa della stringa per il nome della cartella. Rimuovi il flag
--format
per visualizzare ulteriori informazioni sulle cartelle trovate.Il comando precedente non restituisce gli ID delle sottocartelle all'interno delle cartelle. Per farlo, esegui il seguente comando utilizzando l'ID di una cartella di primo livello:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organization=ORGANIZATION_ID
, doveORGANIZATION_ID
è l'ID dell'organizzazione che contiene i metadati della risorsa che vuoi esportare.Come trovare l'ID di un'organizzazione Google Cloud
Google Cloud console
Per trovare l'ID di un'organizzazione Google Cloud , segui questi passaggi:
-
Vai alla console Google Cloud .
- Fai clic sulla casella di elenco selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella di elenco.
- Fai clic sulla scheda Tutti. L'ID organizzazione viene visualizzato accanto al nome dell'organizzazione.
Interfaccia a riga di comando gcloud
Puoi recuperare l'ID di un'organizzazione Google Cloud con il seguente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
BILLING_PROJECT_ID
: facoltativo. L'ID progetto in cui si trova l'agente di servizio dell'Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire i set di dati e le tabelle BigQuery. Scopri di più sulla configurazione del progetto di fatturazione. ASSET_TYPE_#
: facoltativo. Un elenco separato da virgole di tipi di asset disponibili per la ricerca. Sono supportate le espressioni regolari compatibili con RE2. Se l'espressione regolare non corrisponde a nessun tipo di asset supportato, viene restituito un erroreINVALID_ARGUMENT
. Quando--asset-types
non è specificato, vengono restituiti tutti i tipi di asset.CONTENT_TYPE
: facoltativo. Il tipo di contenuti dei metadati che vuoi recuperare. Se--content-type
non è specificato, vengono restituite solo informazioni di base, ad esempio i nomi degli asset, l'ultima volta che gli asset sono stati aggiornati e a quali progetti, cartelle e organizzazioni appartengono.-
RELATIONSHIP_TYPE_#
: facoltativo. Richiede l'accesso al livello Premium o Enterprise di Security Command Center o Gemini Cloud Assist. Un elenco separato da virgole di tipi di relazioni tra asset che vuoi recuperare. Affinché la procedura funzioni, devi impostareCONTENT_TYPE
suRELATIONSHIP
. -
SNAPSHOT_TIME
: facoltativo. L'ora in cui vuoi acquisire uno snapshot dei tuoi asset, nel formato data e ora dell'argomento gcloud. Il valore non deve risalire a più di 35 giorni fa. Quando--snapshot-time
non è specificato, viene acquisita un'istantanea al momento corrente. -
OUTPUT_TYPE
: utilizza uno dei seguenti valori:--output-path="gs://BUCKET_NAME/FILE_NAME"
per scrivere l'output in un file, dove:-
BUCKET_NAME
è il nome del bucket Cloud Storage in cui scrivere. -
FILE_NAME
è il file in cui scrivere nel bucket Cloud Storage.
-
-
--output-path-prefix="gs://BUCKET_NAME/FOLDER_NAME"
per scrivere l'output in una cartella, dove:-
BUCKET_NAME
è il nome del bucket Cloud Storage in cui scrivere. -
FOLDER_NAME
è la cartella in cui scrivere nel bucket Cloud Storage. L'output è suddiviso in sottocartelle con nomi corrispondenti ai tipi di asset. Le sottocartelle non devono già essere presenti nella cartella specificata.
-
Consulta il riferimento all'interfaccia a riga di comando gcloud per tutte le opzioni.
Esempio
Esegui il seguente comando per esportare i metadati di resource
così come erano il 30 gennaio 2024 nel progetto my-project
nel file my-file.txt
nel bucket Cloud Storage my-bucket
.
gcloud asset export \ --project=my-project \ --billing-project=my-project \ --content-type=resource \ --snapshot-time="2024-01-30" \ --output-path="gs://my-bucket/my-file.txt"
Risposta di esempio
Export in progress for root asset [projects/my-project]. Use [gcloud asset operations describe projects/000000000000/operations/ExportAssets/RESOURCE/00000000000000000000000000000000] to check the status of the operation.
REST
Metodo HTTP e URL:
POST https://cloudasset.googleapis.com/v1/SCOPE_PATH:exportAssets
Intestazioni:
X-Goog-User-Project: BILLING_PROJECT_ID
Corpo JSON della richiesta:
{ "assetTypes": [ "ASSET_TYPE_1", "ASSET_TYPE_2", "..." ], "contentType": "CONTENT_TYPE", "relationshipTypes": [ "RELATIONSHIP_TYPE_1", "RELATIONSHIP_TYPE_2", "..." ], "readTime": "SNAPSHOT_TIME", "outputConfig": { "gcsDestination": { OUTPUT_TYPE } } }
Fornisci i seguenti valori:
-
SCOPE_PATH
: utilizza uno dei seguenti valori:I valori consentiti sono:
-
projects/PROJECT_ID
, dovePROJECT_ID
è ID del progetto contenente i metadati della risorsa che vuoi esportare. -
projects/PROJECT_NUMBER
, dovePROJECT_NUMBER
è il numero del progetto contenente i metadati della risorsa che vuoi esportare.Come trovare il numero di un progetto Google Cloud
Google Cloud console
Per trovare il numero di un progetto Google Cloud , svolgi i seguenti passaggi:
-
Vai alla pagina Ti diamo il benvenuto nella console Google Cloud .
- Fai clic sulla casella di elenco selettore nella barra dei menu.
-
Seleziona la tua organizzazione dalla casella di elenco, quindi cerca il nome del progetto. Il nome, il numero e l'ID progetto vengono visualizzati accanto all'intestazione 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 il numero di un progetto Google Cloud con il seguente comando:
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
-
folders/FOLDER_ID
, doveFOLDER_ID
è l'ID della cartella contenente i metadati della risorsa che vuoi esportare.Come trovare l'ID di una cartella Google Cloud
Google Cloud console
Per trovare l'ID di una cartella Google Cloud , segui questi passaggi:
-
Vai alla console Google Cloud .
- Fai clic sulla casella di elenco selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella di elenco.
- Cerca il nome della cartella. L'ID cartella viene visualizzato accanto al nome della cartella.
Interfaccia a riga di comando gcloud
Puoi recuperare l'ID di una cartella Google Cloud che si trova a livello di organizzazione con il seguente comando:
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)"
dove TOP_LEVEL_FOLDER_NAME è una corrispondenza parziale o completa della stringa per il nome della cartella. Rimuovi il flag
--format
per visualizzare ulteriori informazioni sulle cartelle trovate.Il comando precedente non restituisce gli ID delle sottocartelle all'interno delle cartelle. Per farlo, esegui il seguente comando utilizzando l'ID di una cartella di primo livello:
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
organizations/ORGANIZATION_ID
, doveORGANIZATION_ID
è l'ID dell'organizzazione che contiene i metadati della risorsa che vuoi esportare.Come trovare l'ID di un'organizzazione Google Cloud
Google Cloud console
Per trovare l'ID di un'organizzazione Google Cloud , segui questi passaggi:
-
Vai alla console Google Cloud .
- Fai clic sulla casella di elenco selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella di elenco.
- Fai clic sulla scheda Tutti. L'ID organizzazione viene visualizzato accanto al nome dell'organizzazione.
Interfaccia a riga di comando gcloud
Puoi recuperare l'ID di un'organizzazione Google Cloud con il seguente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
-
BILLING_PROJECT_ID
: l'ID progetto in cui si trova l'agente del servizio di Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire i set di dati e le tabelle BigQuery. Scopri di più sulla configurazione del progetto di fatturazione. ASSET_TYPE_#
: facoltativo. Un array di tipi di asset disponibili per la ricerca. Sono supportate le espressioni regolari compatibili con RE2. Se l'espressione regolare non corrisponde a nessun tipo di asset supportato, viene restituito un erroreINVALID_ARGUMENT
. QuandoassetTypes
non è specificato, vengono restituiti tutti i tipi di asset.CONTENT_TYPE
: facoltativo. Il tipo di contenuti dei metadati che vuoi recuperare. Se non viene specificatocontentType
, vengono restituite solo informazioni di base, ad esempio i nomi degli asset, l'ultima volta che gli asset sono stati aggiornati e a quali progetti, cartelle e organizzazioni appartengono.-
RELATIONSHIP_TYPE_#
: facoltativo. Richiede l'accesso al livello Premium o Enterprise di Security Command Center o Gemini Cloud Assist. Un elenco separato da virgole di tipi di relazioni tra asset da recuperare. Affinché la procedura funzioni, devi impostareCONTENT_TYPE
suRELATIONSHIP
. -
SNAPSHOT_TIME
: facoltativo. L'ora in cui vuoi acquisire uno snapshot dei tuoi asset, in formato RFC 3339. Il valore non deve risalire a più di 35 giorni fa. SereadTime
non è specificato, viene acquisita un'istantanea al momento corrente. -
OUTPUT_TYPE
: utilizza uno dei seguenti valori:"uri": "gs://BUCKET_NAME/FILE_NAME"
per scrivere l'output in un file, dove:-
BUCKET_NAME
è il nome del bucket Cloud Storage in cui scrivere. -
FILE_NAME
è il file in cui scrivere nel bucket Cloud Storage.
-
-
"uriPrefix": "gs://BUCKET_NAME/FOLDER_NAME"
per scrivere l'output in una cartella, dove:-
BUCKET_NAME
è il nome del bucket Cloud Storage in cui scrivere. -
FOLDER_NAME
è la cartella in cui scrivere nel bucket Cloud Storage. L'output è suddiviso in sottocartelle con nomi corrispondenti ai tipi di asset. Le sottocartelle non devono già essere presenti nella cartella specificata.
-
Consulta il riferimento REST per tutte le opzioni.
Esempi di comandi
Esegui uno dei seguenti comandi per esportare i metadati di resource
così come erano il 30 gennaio 2024 nel progetto my-project
nel file my-file.txt
nel bucket Cloud Storage my-bucket
.
curl (Linux, macOS o Cloud Shell)
curl -X POST \ -H "X-Goog-User-Project: BILLING_PROJECT_ID" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "contentType": "RESOURCE", "readTime": "2024-01-30T00:00:00Z", "outputConfig": { "gcsDestination": { "uri": "gs://my-bucket/my-file" } } }' \ https://cloudasset.googleapis.com/v1/projects/my-project:exportAssets
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-Goog-User-Project" = "BILLING_PROJECT_ID"; "Authorization" = "Bearer $cred" } $body = @" { "contentType": "RESOURCE", "readTime": "2024-01-30T00:00:00Z", "outputConfig": { "gcsDestination": { "uri": "gs://my-bucket/my-file" } } } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:exportAssets" | Select-Object -Expand Content
Risposta di esempio
{ "name": "projects/000000000000/operations/ExportAssets/RESOURCE/00000000000000000000000000000000", "metadata": { "@type": "type.googleapis.com/google.cloud.asset.v1.ExportAssetsRequest", "parent": "projects/000000000000", "readTime": "2024-01-30T00:00:00Z", "contentType": "RESOURCE", "outputConfig": { "gcsDestination": { "uri": "gs://my-bucket/export.txt" } } } }
C#
Per scoprire come installare e utilizzare la libreria client per Cloud Asset Inventory, consulta Librerie client di Cloud Asset Inventory.
Per autenticarti a Cloud Asset Inventory, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Vai
Per scoprire come installare e utilizzare la libreria client per Cloud Asset Inventory, consulta Librerie client di Cloud Asset Inventory.
Per autenticarti a Cloud Asset Inventory, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Per scoprire come installare e utilizzare la libreria client per Cloud Asset Inventory, consulta Librerie client di Cloud Asset Inventory.
Per autenticarti a Cloud Asset Inventory, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per scoprire come installare e utilizzare la libreria client per Cloud Asset Inventory, consulta Librerie client di Cloud Asset Inventory.
Per autenticarti a Cloud Asset Inventory, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
PHP
Per scoprire come installare e utilizzare la libreria client per Cloud Asset Inventory, consulta Librerie client di Cloud Asset Inventory.
Per autenticarti a Cloud Asset Inventory, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare e utilizzare la libreria client per Cloud Asset Inventory, consulta Librerie client di Cloud Asset Inventory.
Per autenticarti a Cloud Asset Inventory, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Ruby
Per scoprire come installare e utilizzare la libreria client per Cloud Asset Inventory, consulta Librerie client di Cloud Asset Inventory.
Per autenticarti a Cloud Asset Inventory, configura le Credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Controllare lo stato di un'esportazione
Il completamento delle esportazioni richiede del tempo. Per verificare se un'esportazione è stata completata, puoi eseguire una query sull'operazione utilizzando il relativo ID.
Tieni presente che, anche se l'esportazione è stata completata, qualcuno potrebbe aver effettuato un'altra richiesta di esportazione nella stessa destinazione per un'operazione diversa. È possibile effettuare nuove richieste di esportazione verso la stessa destinazione al termine di una richiesta precedente o se sono trascorsi più di 15 minuti. Le richieste di esportazione effettuate al di fuori di queste condizioni vengono rifiutate da Cloud Asset Inventory.
gcloud
Per visualizzare lo stato dell'esportazione, segui le istruzioni riportate di seguito:
Recupera
OPERATION_PATH
, che include l'ID operazione, dalla risposta alla richiesta di esportazione. Il valoreOPERATION_PATH
viene mostrato nella risposta all'esportazione, che ha il seguente formato:projects/PROJECT_NUMBER/operations/ExportAssets/CONTENT_TYPE/OPERATION_ID
Per controllare lo stato dell'esportazione, esegui il seguente comando con
OPERATION_PATH
:gcloud asset operations describe OPERATION_PATH
REST
Per visualizzare lo stato dell'esportazione, segui le istruzioni riportate di seguito:
Recupera
OPERATION_PATH
, che include l'ID operazione, dalla risposta alla richiesta di esportazione.OPERATION_PATH
viene visualizzato come valore del camponame
nella risposta all'esportazione, che è formattato come segue:projects/PROJECT_NUMBER/operations/ExportAssets/CONTENT_TYPE/OPERATION_ID
Per controllare lo stato dell'esportazione, effettua la seguente richiesta.
REST
Metodo HTTP e URL:
GET https://cloudasset.googleapis.com/v1/OPERATION_PATH
Esempi di comandi
curl (Linux, macOS o Cloud Shell)
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://cloudasset.googleapis.com/v1/OPERATION_PATH
PowerShell (Windows)
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://cloudasset.googleapis.com/v1/OPERATION_PATH" | Select-Object -Expand Content
Risposta di esempio
{ "name": "projects/000000000000/operations/ExportAssets/RESOURCE/00000000000000000000000000000000", "metadata": { "@type": "type.googleapis.com/google.cloud.asset.v1.ExportAssetsRequest", "parent": "projects/000000000000", "readTime": "2024-01-30T00:00:00Z", "contentType": "RESOURCE", "outputConfig": { "gcsDestination": { "uri": "gs://my-bucket/export.txt" } } } }
Visualizzare un'istantanea di una risorsa
Per visualizzare l'istantanea della risorsa:
Vai alla pagina Bucket in Cloud Storage nella console Google Cloud .
Fai clic sul nome del bucket in cui hai esportato lo snapshot della risorsa, quindi sul nome del file dell'esportazione.
Fai clic su Scarica per scaricare lo snapshot della risorsa e aprirlo nell'editor di testo che preferisci.