Questo documento mostra come esportare uno snapshot delle risorse dalla tua organizzazione, cartella o progetto in una tabella BigQuery e poi eseguire l'analisi dei dati sul tuo inventario. BigQuery offre agli utenti un'esperienza simile a SQL per analizzare i dati e produrre informazioni significative senza l'utilizzo di script personalizzati.
Prima di iniziare
Abilita l'API Cloud Asset Inventory nel progetto da cui esegui i comandi 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, vedi Autorizzazioni.
Crea un set di dati BigQuery in cui esportare i dati, se non ne hai già uno.
Limitazioni
Quando esporti i dati delle tabelle BigQuery, non tutti i campi sono supportati da Cloud Asset Inventory.
I campi delle risorse che cambiano frequentemente, come
numBytes,numLongTermBytes,numPhysicalBytesenumRows, potrebbero essere esportati con un valorenull.L'esportazione nelle tabelle BigQuery in cluster non è supportata.
Le tabelle BigQuery criptate con chiavi Cloud Key Management Service (Cloud KMS) personalizzate non sono supportate.
L'aggiunta dell'output dell'esportazione a una tabella esistente non è supportata, a meno che tu non esporti in una tabella partizionata. La tabella di destinazione deve essere vuota o devi sovrascriverla. Per sovrascriverlo, utilizza il flag
--output-bigquery-forcecon gcloud CLI oppure utilizza"force": truecon l'API REST.I tipi di risorse Google Kubernetes Engine (GKE), ad eccezione di
container.googleapis.com/Clusterecontainer.googleapis.com/NodePool, non sono supportati durante l'esportazione in tabelle separate per ogni tipo di risorsa.Cloud Asset Inventory rifiuta le richieste di esportazione se una richiesta precedente alla stessa destinazione è stata avviata meno di 15 minuti fa ed è ancora in esecuzione. Tuttavia, se un'esportazione ha richiesto più di 15 minuti per essere completata, viene contrassegnata come completata e sono consentite nuove richieste di esportazione nella stessa destinazione.
Il tipo di contenuti
ACCESS_POLICYpuò essere esportato solo a livello di organizzazione.Se la tabella in cui stai esportando esiste già ed è in fase di esportazione, viene restituito un errore
400.
Carcassa
I nomi dei campi utilizzano convenzioni di maiuscole e minuscole diverse a seconda del tipo di contenuti richiesto e delle impostazioni di esportazione:
Per il tipo di contenuti
RESOURCEquando esporti gli asset nelle tabelle per tipo di asset, non ci sono spazi tra le parole e la prima lettera di ogni nuova parola dopo la prima è maiuscola. Ad esempio,assetType.Per tutti gli altri tipi di contenuti, il nome del campo è in minuscolo e gli spazi sono sostituiti dai trattini bassi. Ad esempio,
asset_type.
Schemi BigQuery utilizzati per l'esportazione
Ogni tabella BigQuery è definita da uno schema che descrive i nomi delle colonne, i tipi di dati e altre informazioni. L'impostazione del tipo di contenuti per un'esportazione determina lo schema della tabella:
Risorsa o non specificato:quando imposti il tipo di contenuti su
RESOURCEo non lo specifichi e imposti il flagper-asset-typesufalseo non lo utilizzi, crei una tabella BigQuery con lo schema seguente.Schema delle risorse
[ { "mode": "NULLABLE", "name": "name", "type": "STRING" }, { "mode": "NULLABLE", "name": "asset_type", "type": "STRING" }, { "fields": [ { "mode": "NULLABLE", "name": "version", "type": "STRING" }, { "mode": "NULLABLE", "name": "discovery_document_uri", "type": "STRING" }, { "mode": "NULLABLE", "name": "discovery_name", "type": "STRING" }, { "mode": "NULLABLE", "name": "resource_url", "type": "STRING" }, { "mode": "NULLABLE", "name": "parent", "type": "STRING" }, { "mode": "NULLABLE", "name": "data", "type": "STRING" }, { "mode": "NULLABLE", "name": "location", "type": "STRING" } ], "mode": "NULLABLE", "name": "resource", "type": "RECORD" }, { "mode": "REPEATED", "name": "ancestors", "type": "STRING" }, { "mode": "NULLABLE", "name": "update_time", "type": "TIMESTAMP" } ]
La colonna
resource.datacontiene i metadati della risorsa rappresentati come stringa JSON.Quando imposti il tipo di contenuti su
RESOURCEo non lo imposti e imposti il flagper-asset-typesutrue, crei tabelle separate per ogni tipo di asset. Lo schema di ogni tabella include colonne di tipo RECORD mappate ai campi nidificati nel campoResource.datadi quel tipo di asset (fino a 15 livelli nidificati supportati da BigQuery). Per tabelle di esempio, vedi export-assets-examples nella console Google Cloud .Policy IAM:quando imposti il tipo di contenuti su
IAM_POLICYnell'API REST o suiam-policyin gcloud CLI, crei una tabella BigQuery con lo schema seguente.Schema della policy IAM
[ { "mode": "NULLABLE", "name": "name", "type": "STRING" }, { "mode": "NULLABLE", "name": "asset_type", "type": "STRING" }, { "fields": [ { "mode": "NULLABLE", "name": "version", "type":