Questo argomento illustra come esportare i metadati degli asset per la tua organizzazione, cartella o progetto in una tabella BigQuery ed eseguire l'analisi dei dati sul tuo inventario. BigQuery offre agli utenti un'esperienza di tipo SQL per analizzare i dati e produrre insight significativi senza l'uso di script personalizzati.
Prima di iniziare
Prima di iniziare, completa i seguenti passaggi.
Abilita l'API Cloud Asset Inventory nel progetto in cui eseguirai i comandi API.
Configura le autorizzazioni necessarie per chiamare l'API Cloud Asset Inventory utilizzando gcloud CLI o l'API.
Completa i seguenti passaggi per configurare il tuo ambiente.
Interfaccia a riga di comando gcloud
Per configurare il tuo ambiente in modo da utilizzare gcloud CLI per chiamare l'API Cloud Asset Inventory, installa Google Cloud CLI sul tuo client locale.
REST
Per configurare il tuo ambiente in modo da chiamare l'API Cloud Asset Inventory con il comando
curl
, completa i passaggi seguenti.Verifica di avere accesso al comando
curl
.Assicurati di concedere al tuo account uno dei seguenti ruoli nel progetto, nella cartella o nell'organizzazione.
Ruolo Visualizzatore asset cloud (
roles/cloudasset.viewer
)Ruolo di base del proprietario (
roles/owner
)
Se stai esportando i metadati da un progetto a un altro, assicurati che l'account di servizio Cloud Asset Inventory predefinito esista e abbia le autorizzazioni corrette del progetto di esportazione.
Limitazioni
Quando esporti un'istantanea di asset, tieni presente quanto segue:
Le tabelle BigQuery criptate con chiavi Cloud Key Management Service (Cloud KMS) personalizzate non sono supportate.
L'aggiunta dell'output di esportazione a una tabella esistente non è supportata, a meno che non venga esportata in una tabella partizionata. La tabella di destinazione deve essere vuota o devi sovrascriverla. Per sovrascriverlo, utilizza il flag
--output-bigquery-force
con gcloud CLI oppure utilizzaforce
con l'API REST.I tipi di risorse Google Kubernetes Engine (GKE), ad eccezione di
container.googleapis.com/Cluster
econtainer.googleapis.com/NodePool
, non sono supportati durante l'esportazione in tabelle separate per tipo di risorsa.Se la tabella in cui stai eseguendo l'esportazione esiste già ed è in fase di esportazione, viene restituito un errore
400
.
Impostazione dello schema BigQuery 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 contenuto durante l'esportazione determina lo schema per la tabella.
Risorsa o valore non specificato: quando imposti il tipo di contenuto su
RESOURCE
o non lo specifichi e imposti il flagper-asset-type
sufalse
, oppure non lo utilizzi, crei una tabella BigQuery con lo schema riportato di seguito.Schema delle risorse
[ { "name": "name", "type": "STRING", "mode": "NULLABLE" }, { "name": "asset_type", "type": "STRING", "mode": "NULLABLE" }, { "name": "resource", "type": "RECORD", "mode": "NULLABLE", "fields": [ { "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": "ancestors", "type": "STRING", "mode": "REPEATED" }, { "name": "update_time", "type": "TIMESTAMP", "mode": "NULLABLE" } ]
La colonna
resource.data
contiene i metadati della risorsa rappresentati come stringa JSON.Quando imposti il tipo di contenuti su
RESOURCE
o non imposti il tipo di contenuti e imposti il flagper-asset-type
sutrue
, crei tabelle separate per tipo di asset. Lo schema di ogni tabella include colonne di tipo RECORD mappate ai campi nidificati nel campoResource.data
di quel tipo di asset (fino ai 15 livelli nidificati supportati da BigQuery). Per le tabelle di esempio BigQuery per tipo, consulta projects/export-assets-examples/datasets/structured_export.Criterio IAM: quando imposti il tipo di contenuto su
IAM_POLICY
nell'API REST oiam-policy
nell'interfaccia alla gcloud CLI, crei una tabella BigQuery con lo schema riportato di seguito.Schema dei criteri IAM
[ { "name": "name", "mode": "NULLABLE", "type": "STRING" }, { "name": "asset_type", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "version", "mode": "NULLABLE", "type": "INTEGER" }, { "fields": [ { "name": "role", "mode": "NULLABLE", "type": "STRING" }, { "name": "members", "mode": "REPEATED", "type": "STRING" }, { "fields": [ { "name": "expression", "mode": "NULLABLE", "type": "STRING" }, { "name": "title", "mode": "NULLABLE", "type": "STRING" }, { "name": "description", "mode": "NULLABLE", "type": "STRING" }, { "name": "location", "mode": "NULLABLE", "type": "STRING" } ], "name": "condition", "mode": "NULLABLE", "type": "RECORD" } ], "name": "bindings", "mode": "REPEATED", "type": "RECORD" }, { "fields": [ { "name": "service", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "log_type", "mode": "NULLABLE", "type": "INTEGER" }, { "name": "exempted_members", "mode": "REPEATED", "type": "STRING" } ], "name": "audit_log_configs", "mode": "REPEATED", "type": "RECORD" } ], "name": "audit_configs", "mode": "REPEATED", "type": "RECORD" }, { "name": "etag", "mode": "NULLABLE", "type": "STRING" } ], "name": "iam_policy", "mode": "NULLABLE", "type": "RECORD" }, { "name": "ancestors", "mode": "REPEATED", "type": "STRING" }, { "name": "update_time", "mode": "NULLABLE", "type": "TIMESTAMP" } ]
Criterio dell'organizzazione: quando imposti il tipo di contenuto su
ORG_POLICY
nell'API REST oorg-policy
nell'interfaccia alla gcloud CLI, crei una tabella BigQuery con lo schema riportato di seguito.Schema dei criteri dell'organizzazione
[ { "name": "name", "mode": "NULLABLE", "type": "STRING" }, { "name": "asset_type", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "version", "mode": "NULLABLE", "type": "INTEGER" }, { "name": "constraint", "mode": "NULLABLE", "type": "STRING" }, { "name": "etag", "mode": "NULLABLE", "type": "STRING" }, { "name": "update_time", "mode": "NULLABLE", "type": "TIMESTAMP" }, { "fields": [ { "name": "allowed_values", "mode": "REPEATED", "type": "STRING" }, { "name": "denied_values", "mode": "REPEATED", "type": "STRING" }, { "name": "all_values", "mode": "NULLABLE", "type": "INTEGER" }, { "name": "suggested_value", "mode": "NULLABLE", "type": "STRING" }, { "name": "inherit_from_parent", "mode": "NULLABLE", "type": "BOOLEAN" } ], "name": "list_policy", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "enforced", "mode": "NULLABLE", "type": "BOOLEAN" } ], "name": "boolean_policy", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "_present", "mode": "NULLABLE", "type": "BOOLEAN" } ], "name": "restore_default", "mode": "NULLABLE", "type": "RECORD" } ], "name": "org_policy", "mode": "REPEATED", "type": "RECORD" }, { "name": "ancestors", "mode": "REPEATED", "type": "STRING" }, { "name": "update_time", "mode": "NULLABLE", "type": "TIMESTAMP" } ]
Criterio VPCSC: quando imposti il tipo di contenuto su
ACCESS_POLICY
nell'API REST oaccess-policy
nell'interfaccia alla gcloud CLI, crei una tabella BigQuery con lo schema riportato di seguito.Schema dei criteri VPCSC
[ { "name": "name", "mode": "NULLABLE", "type": "STRING" }, { "name": "asset_type", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "name", "mode": "NULLABLE", "type": "STRING" }, { "name": "parent", "mode": "NULLABLE", "type": "STRING" }, { "name": "title", "mode": "NULLABLE", "type": "STRING" }, { "name": "scopes", "mode": "REPEATED", "type": "STRING" }, { "name": "etag", "mode": "NULLABLE", "type": "STRING" } ], "name": "access_policy", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "name", "mode": "NULLABLE", "type": "STRING" }, { "name": "title", "mode": "NULLABLE", "type": "STRING" }, { "name": "description", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "fields": [ { "name": "ip_subnetworks", "mode": "REPEATED", "type": "STRING" }, { "fields": [ { "name": "require_screenlock", "mode": "NULLABLE", "type": "BOOLEAN" }, { "name": "allowed_encryption_statuses", "mode": "REPEATED", "type": "INTEGER" }, { "fields": [ { "name": "os_type", "mode": "NULLABLE", "type": "INTEGER" }, { "name": "minimum_version", "mode": "NULLABLE", "type": "STRING" }, { "name": "require_verified_chrome_os", "mode": "NULLABLE", "type": "BOOLEAN" } ], "name": "os_constraints", "mode": "REPEATED", "type": "RECORD" }, { "name": "allowed_device_management_levels", "mode": "REPEATED", "type": "INTEGER" }, { "name": "require_admin_approval", "mode": "NULLABLE", "type": "BOOLEAN" }, { "name": "require_corp_owned", "mode": "NULLABLE", "type": "BOOLEAN" } ], "name": "device_policy", "mode": "NULLABLE", "type": "RECORD" }, { "name": "required_access_levels", "mode": "REPEATED", "type": "STRING" }, { "name": "negate", "mode": "NULLABLE", "type": "BOOLEAN" }, { "name": "members", "mode": "REPEATED", "type": "STRING" }, { "name": "regions", "mode": "REPEATED", "type": "STRING" } ], "name": "conditions", "mode": "REPEATED", "type": "RECORD" }, { "name": "combining_function", "mode": "NULLABLE", "type": "INTEGER" } ], "name": "basic", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "fields": [ { "name": "expression", "mode": "NULLABLE", "type": "STRING" }, { "name": "title", "mode": "NULLABLE", "type": "STRING" }, { "name": "description", "mode": "NULLABLE", "type": "STRING" }, { "name": "location", "mode": "NULLABLE", "type": "STRING" } ], "name": "expr", "mode": "NULLABLE", "type": "RECORD" } ], "name": "custom", "mode": "NULLABLE", "type": "RECORD" } ], "name": "access_level", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "name", "mode": "NULLABLE", "type": "STRING" }, { "name": "title", "mode": "NULLABLE", "type": "STRING" }, { "name": "description", "mode": "NULLABLE", "type": "STRING" }, { "name": "perimeter_type", "mode": "NULLABLE", "type": "INTEGER" }, { "fields": [ { "name": "resources", "mode": "REPEATED", "type": "STRING" }, { "name": "access_levels", "mode": "REPEATED", "type": "STRING" }, { "name": "restricted_services", "mode": "REPEATED", "type": "STRING" }, { "fields": [ { "name": "enable_restriction", "mode": "NULLABLE", "type": "BOOLEAN" }, { "name": "allowed_services", "mode": "REPEATED", "type": "STRING" } ], "name": "vpc_accessible_services", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "fields": [ { "fields": [ { "name": "access_level", "mode": "NULLABLE", "type": "STRING" }, { "name": "resource", "mode": "NULLABLE", "type": "STRING" } ], "name": "sources", "mode": "REPEATED", "type": "RECORD" }, { "name": "identities", "mode": "REPEATED", "type": "STRING" }, { "name": "identity_type", "mode": "NULLABLE", "type": "INTEGER" } ], "name": "ingress_from", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "fields": [ { "name": "service_name", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "method", "mode": "NULLABLE", "type": "STRING" }, { "name": "permission", "mode": "NULLABLE", "type": "STRING" } ], "name": "method_selectors", "mode": "REPEATED", "type": "RECORD" } ], "name": "operations", "mode": "REPEATED", "type": "RECORD" }, { "name": "resources", "mode": "REPEATED", "type": "STRING" } ], "name": "ingress_to", "mode": "NULLABLE", "type": "RECORD" } ], "name": "ingress_policies", "mode": "REPEATED", "type": "RECORD" }, { "fields": [ { "fields": [ { "name": "identities", "mode": "REPEATED", "type": "STRING" }, { "name": "identity_type", "mode": "NULLABLE", "type": "INTEGER" } ], "name": "egress_from", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "resources", "mode": "REPEATED", "type": "STRING" }, { "fields": [ { "name": "service_name", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "method", "mode": "NULLABLE", "type": "STRING" }, { "name": "permission", "mode": "NULLABLE", "type": "STRING" } ], "name": "method_selectors", "mode": "REPEATED", "type": "RECORD" } ], "name": "operations", "mode": "REPEATED", "type": "RECORD" }, { "name": "external_resources", "mode": "REPEATED", "type": "STRING" } ], "name": "egress_to", "mode": "NULLABLE", "type": "RECORD" } ], "name": "egress_policies", "mode": "REPEATED", "type": "RECORD" } ], "name": "status", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "resources", "mode": "REPEATED", "type": "STRING" }, { "name": "access_levels", "mode": "REPEATED", "type": "STRING" }, { "name": "restricted_services", "mode": "REPEATED", "type": "STRING" }, { "fields": [ { "name": "enable_restriction", "mode": "NULLABLE", "type": "BOOLEAN" }, { "name": "allowed_services", "mode": "REPEATED", "type": "STRING" } ], "name": "vpc_accessible_services", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "fields": [ { "fields": [ { "name": "access_level", "mode": "NULLABLE", "type": "STRING" }, { "name": "resource", "mode": "NULLABLE", "type": "STRING" } ], "name": "sources", "mode": "REPEATED", "type": "RECORD" }, { "name": "identities", "mode": "REPEATED", "type": "STRING" }, { "name": "identity_type", "mode": "NULLABLE", "type": "INTEGER" } ], "name": "ingress_from", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "fields": [ { "name": "service_name", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "method", "mode": "NULLABLE", "type": "STRING" }, { "name": "permission", "mode": "NULLABLE", "type": "STRING" } ], "name": "method_selectors", "mode": "REPEATED", "type": "RECORD" } ], "name": "operations", "mode": "REPEATED", "type": "RECORD" }, { "name": "resources", "mode": "REPEATED", "type": "STRING" } ], "name": "ingress_to", "mode": "NULLABLE", "type": "RECORD" } ], "name": "ingress_policies", "mode": "REPEATED", "type": "RECORD" }, { "fields": [ { "fields": [ { "name": "identities", "mode": "REPEATED", "type": "STRING" }, { "name": "identity_type", "mode": "NULLABLE", "type": "INTEGER" } ], "name": "egress_from", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "resources", "mode": "REPEATED", "type": "STRING" }, { "fields": [ { "name": "service_name", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "method", "mode": "NULLABLE", "type": "STRING" }, { "name": "permission", "mode": "NULLABLE", "type": "STRING" } ], "name": "method_selectors", "mode": "REPEATED", "type": "RECORD" } ], "name": "operations", "mode": "REPEATED", "type": "RECORD" }, { "name": "external_resources", "mode": "REPEATED", "type": "STRING" } ], "name": "egress_to", "mode": "NULLABLE", "type": "RECORD" } ], "name": "egress_policies", "mode": "REPEATED", "type": "RECORD" } ], "name": "spec", "mode": "NULLABLE", "type": "RECORD" }, { "name": "use_explicit_dry_run_spec", "mode": "NULLABLE", "type": "BOOLEAN" } ], "name": "service_perimeter", "mode": "NULLABLE", "type": "RECORD" }, { "name": "ancestors", "mode": "REPEATED", "type": "STRING" }, { "name": "update_time", "mode": "NULLABLE", "type": "TIMESTAMP" } ]
Inventario delle istanze OSConfig: quando imposti il tipo di contenuto su
OS_INVENTORY
nell'API REST oos-inventory
nell'interfaccia alla gcloud CLI, crei una tabella BigQuery con lo schema riportato di seguito.Schema dell'inventario del sistema operativo
[ { "name": "name", "mode": "NULLABLE", "type": "STRING" }, { "name": "asset_type", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "name", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "hostname", "mode": "NULLABLE", "type": "STRING" }, { "name": "long_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "short_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "version", "mode": "NULLABLE", "type": "STRING" }, { "name": "architecture", "mode": "NULLABLE", "type": "STRING" }, { "name": "kernel_version", "mode": "NULLABLE", "type": "STRING" }, { "name": "kernel_release", "mode": "NULLABLE", "type": "STRING" }, { "name": "osconfig_agent_version", "mode": "NULLABLE", "type": "STRING" } ], "name": "os_info", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "key", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "id", "mode": "NULLABLE", "type": "STRING" }, { "name": "origin_type", "mode": "NULLABLE", "type": "INTEGER" }, { "name": "create_time", "mode": "NULLABLE", "type": "TIMESTAMP" }, { "name": "update_time", "mode": "NULLABLE", "type": "TIMESTAMP" }, { "name": "type", "mode": "NULLABLE", "type": "INTEGER" }, { "fields": [ { "fields": [ { "name": "package_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "architecture", "mode": "NULLABLE", "type": "STRING" }, { "name": "version", "mode": "NULLABLE", "type": "STRING" } ], "name": "yum_package", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "package_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "architecture", "mode": "NULLABLE", "type": "STRING" }, { "name": "version", "mode": "NULLABLE", "type": "STRING" } ], "name": "apt_package", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "package_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "architecture", "mode": "NULLABLE", "type": "STRING" }, { "name": "version", "mode": "NULLABLE", "type": "STRING" } ], "name": "zypper_package", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "package_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "architecture", "mode": "NULLABLE", "type": "STRING" }, { "name": "version", "mode": "NULLABLE", "type": "STRING" } ], "name": "googet_package", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "patch_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "category", "mode": "NULLABLE", "type": "STRING" }, { "name": "severity", "mode": "NULLABLE", "type": "STRING" }, { "name": "summary", "mode": "NULLABLE", "type": "STRING" } ], "name": "zypper_patch", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "title", "mode": "NULLABLE", "type": "STRING" }, { "name": "description", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "id", "mode": "NULLABLE", "type": "STRING" }, { "name": "name", "mode": "NULLABLE", "type": "STRING" } ], "name": "categories", "mode": "REPEATED", "type": "RECORD" }, { "name": "kb_article_ids", "mode": "REPEATED", "type": "STRING" }, { "name": "support_url", "mode": "NULLABLE", "type": "STRING" }, { "name": "more_info_urls", "mode": "REPEATED", "type": "STRING" }, { "name": "update_id", "mode": "NULLABLE", "type": "STRING" }, { "name": "revision_number", "mode": "NULLABLE", "type": "INTEGER" }, { "name": "last_deployment_change_time", "mode": "NULLABLE", "type": "TIMESTAMP" } ], "name": "wua_package", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "caption", "mode": "NULLABLE", "type": "STRING" }, { "name": "description", "mode": "NULLABLE", "type": "STRING" }, { "name": "hot_fix_id", "mode": "NULLABLE", "type": "STRING" }, { "name": "install_time", "mode": "NULLABLE", "type": "TIMESTAMP" } ], "name": "qfe_package", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "package_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "architecture", "mode": "NULLABLE", "type": "STRING" }, { "name": "version", "mode": "NULLABLE", "type": "STRING" } ], "name": "cos_package", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "display_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "display_version", "mode": "NULLABLE", "type": "STRING" }, { "name": "publisher", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "year", "mode": "NULLABLE", "type": "INTEGER" }, { "name": "month", "mode": "NULLABLE", "type": "INTEGER" }, { "name": "day", "mode": "NULLABLE", "type": "INTEGER" } ], "name": "install_date", "mode": "NULLABLE", "type": "RECORD" }, { "name": "help_link", "mode": "NULLABLE", "type": "STRING" } ], "name": "windows_application", "mode": "NULLABLE", "type": "RECORD" } ], "name": "installed_package", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "fields": [ { "name": "package_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "architecture", "mode": "NULLABLE", "type": "STRING" }, { "name": "version", "mode": "NULLABLE", "type": "STRING" } ], "name": "yum_package", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "package_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "architecture", "mode": "NULLABLE", "type": "STRING" }, { "name": "version", "mode": "NULLABLE", "type": "STRING" } ], "name": "apt_package", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "package_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "architecture", "mode": "NULLABLE", "type": "STRING" }, { "name": "version", "mode": "NULLABLE", "type": "STRING" } ], "name": "zypper_package", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "package_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "architecture", "mode": "NULLABLE", "type": "STRING" }, { "name": "version", "mode": "NULLABLE", "type": "STRING" } ], "name": "googet_package", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "patch_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "category", "mode": "NULLABLE", "type": "STRING" }, { "name": "severity", "mode": "NULLABLE", "type": "STRING" }, { "name": "summary", "mode": "NULLABLE", "type": "STRING" } ], "name": "zypper_patch", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "title", "mode": "NULLABLE", "type": "STRING" }, { "name": "description", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "id", "mode": "NULLABLE", "type": "STRING" }, { "name": "name", "mode": "NULLABLE", "type": "STRING" } ], "name": "categories", "mode": "REPEATED", "type": "RECORD" }, { "name": "kb_article_ids", "mode": "REPEATED", "type": "STRING" }, { "name": "support_url", "mode": "NULLABLE", "type": "STRING" }, { "name": "more_info_urls", "mode": "REPEATED", "type": "STRING" }, { "name": "update_id", "mode": "NULLABLE", "type": "STRING" }, { "name": "revision_number", "mode": "NULLABLE", "type": "INTEGER" }, { "name": "last_deployment_change_time", "mode": "NULLABLE", "type": "TIMESTAMP" } ], "name": "wua_package", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "caption", "mode": "NULLABLE", "type": "STRING" }, { "name": "description", "mode": "NULLABLE", "type": "STRING" }, { "name": "hot_fix_id", "mode": "NULLABLE", "type": "STRING" }, { "name": "install_time", "mode": "NULLABLE", "type": "TIMESTAMP" } ], "name": "qfe_package", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "package_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "architecture", "mode": "NULLABLE", "type": "STRING" }, { "name": "version", "mode": "NULLABLE", "type": "STRING" } ], "name": "cos_package", "mode": "NULLABLE", "type": "RECORD" }, { "fields": [ { "name": "display_name", "mode": "NULLABLE", "type": "STRING" }, { "name": "display_version", "mode": "NULLABLE", "type": "STRING" }, { "name": "publisher", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "year", "mode": "NULLABLE", "type": "INTEGER" }, { "name": "month", "mode": "NULLABLE", "type": "INTEGER" }, { "name": "day", "mode": "NULLABLE", "type": "INTEGER" } ], "name": "install_date", "mode": "NULLABLE", "type": "RECORD" }, { "name": "help_link", "mode": "NULLABLE", "type": "STRING" } ], "name": "windows_application", "mode": "NULLABLE", "type": "RECORD" } ], "name": "available_package", "mode": "NULLABLE", "type": "RECORD" } ], "name": "value", "mode": "NULLABLE", "type": "RECORD" } ], "name": "items", "mode": "REPEATED", "type": "RECORD" }, { "name": "update_time", "mode": "NULLABLE", "type": "TIMESTAMP" } ], "name": "os_inventory", "mode": "NULLABLE", "type": "RECORD" }, { "name": "ancestors", "mode": "REPEATED", "type": "STRING" }, { "name": "update_time", "mode": "NULLABLE", "type": "TIMESTAMP" } ]
Relazione: quando imposti il tipo di contenuto su
RELATIONSHIP
nell'API REST orelationship
nell'interfaccia alla gcloud CLI, crei una tabella BigQuery con lo schema riportato di seguito.Schema relazioni
[ { "name": "name", "mode": "NULLABLE", "type": "STRING" }, { "name": "asset_type", "mode": "NULLABLE", "type": "STRING" }, { "fields": [ { "name": "asset", "mode": "NULLABLE", "type": "STRING" }, { "name": "asset_type", "mode": "NULLABLE", "type": "STRING" }, { "name": "ancestors", "mode": "REPEATED", "type": "STRING" }, { "name": "relationship_type", "mode": "NULLABLE", "type": "STRING" } ], "name": "related_asset", "mode": "NULLABLE", "type": "RECORD" }, { "name": "ancestors", "mode": "REPEATED", "type": "STRING" }, { "name": "update_time", "mode": "NULLABLE", "type": "TIMESTAMP" } ]
Esportare un'istantanea degli asset in BigQuery
Esportare gli asset in un determinato timestamp
Per esportare uno snapshot degli asset in un determinato timestamp in una tabella BigQuery denominata TABLE_NAME
, effettua una delle seguenti richieste.
gcloud
Progetti
gcloud asset export \
--project=PROJECT_ID \
--billing-project=BILLING_PROJECT_ID \
--content-type=CONTENT_TYPE \
--snapshot-time="SNAPSHOT_TIME" \
--bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
--output-bigquery-force
Specifica i seguenti valori:
PROJECT_ID
: l'ID del progetto di cui vuoi esportare i metadati.BILLING_PROJECT_ID
: facoltativo. L'ID progetto in cui si trova l'agente di servizio Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire i set di dati e le tabelle BigQuery. Questa operazione non è necessaria se hai già effettuato il passaggio al progetto di fatturazione congcloud config set project
. Scopri di più sui progetti di fatturazione.CONTENT_TYPE
: il tipo di contenuti della risorsa. Il tipo di contenutiaccess-policy
può essere esportato solo per un'organizzazione. Se la esporti per un progetto o una cartella, viene creata una tabella vuota.SNAPSHOT_TIME
: facoltativo. Il momento in cui vuoi acquisire un'istantanea degli asset. Il valore deve corrispondere all'ora corrente o a un'ora non superiore a 35 giorni prima. Se non fornito, uno snapshot viene acquisito all'ora attuale. Per informazioni sui formati temporali, consulta gcloud topic datetimes.DATASET_ID
: l'ID del set di dati BigQuery.TABLE_NAME
: la tabella in cui stai esportando i metadati. Se non esiste, viene creato.
Altri flag:
--output-bigquery-force
: sovrascrive la tabella di destinazione, se esistente.
Cartelle
gcloud asset export \
--folder=FOLDER_ID \
--billing-project=BILLING_PROJECT_ID \
--content-type=CONTENT_TYPE \
--snapshot-time="SNAPSHOT_TIME" \
--bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
--output-bigquery-force
Specifica i seguenti valori:
FOLDER_ID
: l'ID della cartella di cui vuoi esportare i metadati.Come trovare l'ID di una cartella Google Cloud
Console
Per trovare l'ID di una cartella Google Cloud, completa i seguenti passaggi:
-
Vai alla console Google Cloud.
- Fai clic sulla casella del selettore nella barra dei menu.
- Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
- Cerca il nome della cartella. L'ID cartella è 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 può essere una corrispondenza stringa completa o parziale. Rimuovi l'opzione
--format
per visualizzare ulteriori informazioni sulle cartelle trovate.Per ottenere l'ID di una cartella all'interno di un'altra cartella, elenca le sottocartelle:
gcloud resource-manager folders list --folder=FOLDER_ID
-
BILLING_PROJECT_ID
: facoltativo. L'ID progetto in cui si trova l'agente di servizio Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire i set di dati e le tabelle BigQuery. Questa operazione non è necessaria se hai già effettuato il passaggio al progetto di fatturazione congcloud config set project
. Scopri di più sui progetti di fatturazione.CONTENT_TYPE
: il tipo di contenuti della risorsa. Il tipo di contenutiaccess-policy
può essere esportato solo per un'organizzazione. Se la esporti per un progetto o una cartella, viene creata una tabella vuota.SNAPSHOT_TIME
: facoltativo. Il momento in cui vuoi acquisire un'istantanea degli asset. Il valore deve corrispondere all'ora corrente o a un'ora non superiore a 35 giorni prima. Se non fornito, uno snapshot viene acquisito all'ora attuale. Per informazioni sui formati temporali, consulta gcloud topic datetimes.PROJECT_ID
: l'ID del progetto in cui si trova la tabella BigQuery.DATASET_ID
: l'ID del set di dati BigQuery.TABLE_NAME
: la tabella in cui stai esportando i metadati. Se non esiste, viene creato.
Altri flag:
--output-bigquery-force
: sovrascrive la tabella di destinazione, se esistente.
Organizzazioni
gcloud asset export \
--organization=ORGANIZATION_ID \
--billing-project=BILLING_PROJECT_ID \
--content-type=CONTENT_TYPE \
--snapshot-time="SNAPSHOT_TIME" \
--bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
--output-bigquery-force
Specifica i seguenti valori:
ORGANIZATION_ID
: l'ID dell'organizzazione di cui vuoi esportare i metadati.Come trovare un ID organizzazione Google Cloud
Console
Per trovare l'ID organizzazione di Google Cloud, completa questi passaggi:
-
Vai alla console Google Cloud.
- Fai clic sulla casella del selettore nella barra dei menu.
- Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
- Fai clic sulla scheda Tutte. L'ID organizzazione è visualizzato accanto al nome dell'organizzazione.
Interfaccia a riga di comando gcloud
Puoi recuperare un ID 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 Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire i set di dati e le tabelle BigQuery. Questa operazione non è necessaria se hai già effettuato il passaggio al progetto di fatturazione congcloud config set project
. Scopri di più sui progetti di fatturazione.CONTENT_TYPE
: il tipo di contenuti della risorsa.SNAPSHOT_TIME
: facoltativo. Il momento in cui vuoi acquisire un'istantanea degli asset. Il valore deve corrispondere all'ora corrente o a un'ora non superiore a 35 giorni prima. Se non fornito, uno snapshot viene acquisito all'ora attuale. Per informazioni sui formati temporali, consulta gcloud topic datetimes.PROJECT_ID
: l'ID del progetto in cui si trova la tabella BigQuery.DATASET_ID
: l'ID del set di dati BigQuery.TABLE_NAME
: la tabella in cui stai esportando i metadati. Se non esiste, viene creato.
Altri flag:
--output-bigquery-force
: sovrascrive la tabella di destinazione, se esistente.
REST
curl -X POST \
-H "X-Goog-User-Project: BILLING_PROJECT_ID" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"contentType": "CONTENT_TYPE",
"readTime": "SNAPSHOT_TIME",
"outputConfig": {
"bigqueryDestination": {
"dataset": "projects/PROJECT_ID/datasets/DATASET_ID",
"table": "TABLE_NAME",
"force": true
}
}
}' \
https://cloudasset.googleapis.com/v1/SCOPE:exportAssets
Specifica i seguenti valori:
BILLING_PROJECT_ID
: l'ID progetto in cui si trova l'agente di servizio Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire i set di dati e le tabelle BigQuery. Scopri di più sui progetti di fatturazione.CONTENT_TYPE
: il tipo di contenuti della risorsa. Il tipo di contenutiACCESS_POLICY
può essere esportato solo per un'organizzazione. Se la esporti per un progetto o una cartella, viene creata una tabella vuota.SNAPSHOT_TIME
: facoltativo. L'ora in cui vuoi acquisire uno snapshot degli asset, in formato RFC 3339. Il valore deve essere l'ora corrente o un'ora non superiore a 35 giorni nel passato. Se non specificato, l'istantanea viene acquisita all'ora attuale.PROJECT_ID
: l'ID del progetto in cui si trova la tabella BigQuery.DATASET_ID
L'ID del set di dati BigQuery.TABLE_NAME
La tabella in cui stai esportando i metadati. Se non esiste, viene creato.SCOPE
: un ambito può essere un progetto, una cartella o un'organizzazione.I valori consentiti sono:
projects/PROJECT_ID
projects/PROJECT_NUMBER
Come trovare il numero di un progetto Google Cloud
Console
Per trovare il numero di un progetto Google Cloud, completa questi passaggi:
-
Vai alla pagina Dashboard nella console Google Cloud.
- Fai clic sulla casella del selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella Seleziona da, quindi cerca il nome del tuo progetto.
- Fai clic sul nome del progetto per passare a quel progetto. Il numero di progetto è visualizzato nella scheda Informazioni sul 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
Come trovare l'ID di una cartella Google Cloud
Console
Per trovare l'ID di una cartella Google Cloud, completa i seguenti passaggi:
-
Vai alla console Google Cloud.
- Fai clic sulla casella del selettore nella barra dei menu.
- Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
- Cerca il nome della cartella. L'ID cartella è 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 può essere una corrispondenza stringa completa o parziale. Rimuovi l'opzione
--format
per visualizzare ulteriori informazioni sulle cartelle trovate.Per ottenere l'ID di una cartella all'interno di un'altra cartella, elenca le sottocartelle:
gcloud resource-manager folders list --folder=FOLDER_ID
-
organizations/ORGANIZATION_ID
Come trovare un ID organizzazione Google Cloud
Console
Per trovare l'ID organizzazione di Google Cloud, completa questi passaggi:
-
Vai alla console Google Cloud.
- Fai clic sulla casella del selettore nella barra dei menu.
- Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
- Fai clic sulla scheda Tutte. L'ID organizzazione è visualizzato accanto al nome dell'organizzazione.
Interfaccia a riga di comando gcloud
Puoi recuperare un ID organizzazione Google Cloud con il seguente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
Altri parametri:
"force": true
: sovrascrive la tabella di destinazione, se esistente.
Esportazione di tabelle separate per ogni tipo di risorsa
Per esportare gli asset in tabelle BigQuery separate per ogni tipo di risorsa, utilizza il flag --per-asset-type
. Il nome di ogni tabella è TABLE_NAME
concatenato con _
(trattino basso) e il nome del tipo di asset. I caratteri non alfanumerici vengono sostituiti con _
.
Tieni presente che i tipi di risorse GKE, ad eccezione di container.googleapis.com/Cluster
e container.googleapis.com/NodePool
, non sono supportati per questo tipo di esportazione.
gcloud
Progetti
gcloud asset export \
--project=PROJECT_ID \
--billing-project=BILLING_PROJECT_ID \
--content-type=CONTENT_TYPE \
--snapshot-time="SNAPSHOT_TIME" \
--bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
--output-bigquery-force \
--per-asset-type
Specifica i seguenti valori:
PROJECT_ID
: l'ID del progetto di cui vuoi esportare i metadati.BILLING_PROJECT_ID
: facoltativo. L'ID progetto in cui si trova l'agente di servizio Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire i set di dati e le tabelle BigQuery. Questa operazione non è necessaria se hai già effettuato il passaggio al progetto di fatturazione congcloud config set project
. Scopri di più sui progetti di fatturazione.CONTENT_TYPE
: il tipo di contenuti della risorsa. Il tipo di contenutiaccess-policy
può essere esportato solo per un'organizzazione. Se la esporti per un progetto o una cartella, viene creata una tabella vuota.SNAPSHOT_TIME
: facoltativo. Il momento in cui vuoi acquisire un'istantanea degli asset. Il valore deve corrispondere all'ora corrente o a un'ora non superiore a 35 giorni prima. Se non fornito, uno snapshot viene acquisito all'ora attuale. Per informazioni sui formati temporali, consulta gcloud topic datetimes.DATASET_ID
: l'ID del set di dati BigQuery.TABLE_NAME
: la tabella in cui stai esportando i metadati. Se non esiste, viene creato.
Altri flag:
--output-bigquery-force
: sovrascrive la tabella di destinazione, se esistente.--per-asset-type
: esportazioni in più tabelle BigQuery per tipo di risorsa.
Cartelle
gcloud asset export \
--folder=FOLDER_ID \
--billing-project=BILLING_PROJECT_ID \
--content-type=CONTENT_TYPE \
--snapshot-time="SNAPSHOT_TIME" \
--bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
--output-bigquery-force \
--per-asset-type
Specifica i seguenti valori:
FOLDER_ID
: l'ID della cartella di cui vuoi esportare i metadati.Come trovare l'ID di una cartella Google Cloud
Console
Per trovare l'ID di una cartella Google Cloud, completa i seguenti passaggi:
-
Vai alla console Google Cloud.
- Fai clic sulla casella del selettore nella barra dei menu.
- Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
- Cerca il nome della cartella. L'ID cartella è 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 può essere una corrispondenza stringa completa o parziale. Rimuovi l'opzione
--format
per visualizzare ulteriori informazioni sulle cartelle trovate.Per ottenere l'ID di una cartella all'interno di un'altra cartella, elenca le sottocartelle:
gcloud resource-manager folders list --folder=FOLDER_ID
-
BILLING_PROJECT_ID
: facoltativo. L'ID progetto in cui si trova l'agente di servizio Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire i set di dati e le tabelle BigQuery. Questa operazione non è necessaria se hai già effettuato il passaggio al progetto di fatturazione congcloud config set project
. Scopri di più sui progetti di fatturazione.CONTENT_TYPE
: il tipo di contenuti della risorsa. Il tipo di contenutiaccess-policy
può essere esportato solo per un'organizzazione. Se la esporti per un progetto o una cartella, viene creata una tabella vuota.SNAPSHOT_TIME
: facoltativo. Il momento in cui vuoi acquisire un'istantanea degli asset. Il valore deve corrispondere all'ora corrente o a un'ora non superiore a 35 giorni prima. Se non fornito, uno snapshot viene acquisito all'ora attuale. Per informazioni sui formati temporali, consulta gcloud topic datetimes.PROJECT_ID
: l'ID del progetto in cui si trova la tabella BigQuery.DATASET_ID
: l'ID del set di dati BigQuery.TABLE_NAME
: la tabella in cui stai esportando i metadati. Se non esiste, viene creato.
Altri flag:
--output-bigquery-force
: sovrascrive la tabella di destinazione, se esistente.--per-asset-type
: esportazioni in più tabelle BigQuery per tipo di risorsa.
Organizzazioni
gcloud asset export \
--organization=ORGANIZATION_ID \
--billing-project=BILLING_PROJECT_ID \
--content-type=CONTENT_TYPE \
--snapshot-time="SNAPSHOT_TIME" \
--bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
--output-bigquery-force \
--per-asset-type
Specifica i seguenti valori:
ORGANIZATION_ID
: l'ID dell'organizzazione per cui vuoi gli insight.Come trovare un ID organizzazione Google Cloud
Console
Per trovare l'ID organizzazione di Google Cloud, completa questi passaggi:
-
Vai alla console Google Cloud.
- Fai clic sulla casella del selettore nella barra dei menu.
- Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
- Fai clic sulla scheda Tutte. L'ID organizzazione è visualizzato accanto al nome dell'organizzazione.
Interfaccia a riga di comando gcloud
Puoi recuperare un ID 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 Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire i set di dati e le tabelle BigQuery. Questa operazione non è necessaria se hai già effettuato il passaggio al progetto di fatturazione congcloud config set project
. Scopri di più sui progetti di fatturazione.CONTENT_TYPE
: il tipo di contenuti della risorsa.SNAPSHOT_TIME
: facoltativo. Il momento in cui vuoi acquisire un'istantanea degli asset. Il valore deve corrispondere all'ora corrente o a un'ora non superiore a 35 giorni prima. Se non fornito, uno snapshot viene acquisito all'ora attuale. Per informazioni sui formati temporali, consulta gcloud topic datetimes.PROJECT_ID
: l'ID del progetto in cui si trova la tabella BigQuery.DATASET_ID
: l'ID del set di dati BigQuery.TABLE_NAME
: la tabella in cui stai esportando i metadati. Se non esiste, viene creato.
Altri flag:
--output-bigquery-force
: sovrascrive la tabella di destinazione, se esistente.--per-asset-type
: esportazioni in più tabelle BigQuery per tipo di risorsa.
REST
curl -X POST \
-H "X-Goog-User-Project: BILLING_PROJECT_ID" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"contentType": "CONTENT_TYPE",
"readTime": "SNAPSHOT_TIME",
"outputConfig": {
"bigqueryDestination": {
"dataset": "projects/PROJECT_ID/datasets/DATASET_ID",
"table": "TABLE_NAME",
"force": true,
"separateTablesPerAssetType": true
}
}
}' \
https://cloudasset.googleapis.com/v1/SCOPE:exportAssets
Specifica i seguenti valori:
BILLING_PROJECT_ID
: l'ID progetto in cui si trova l'agente di servizio Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire i set di dati e le tabelle BigQuery. Scopri di più sui progetti di fatturazione.CONTENT_TYPE
: il tipo di contenuti della risorsa. Il tipo di contenutiACCESS_POLICY
può essere esportato solo per un'organizzazione. Se la esporti per un progetto o una cartella, viene creata una tabella vuota.SNAPSHOT_TIME
: facoltativo. L'ora in cui vuoi acquisire uno snapshot degli asset, in formato RFC 3339. Il valore deve essere l'ora corrente o un'ora non superiore a 35 giorni nel passato. Se non specificato, l'istantanea viene acquisita all'ora attuale.PROJECT_ID
: l'ID del progetto in cui si trova la tabella BigQuery.DATASET_ID
: l'ID del set di dati BigQuery.TABLE_NAME
: la tabella in cui stai esportando i metadati. Se non esiste, viene creato.SCOPE
: un ambito può essere un progetto, una cartella o un'organizzazione.I valori consentiti sono:
projects/PROJECT_ID
projects/PROJECT_NUMBER
Come trovare il numero di un progetto Google Cloud
Console
Per trovare il numero di un progetto Google Cloud, completa questi passaggi:
-
Vai alla pagina Dashboard nella console Google Cloud.
- Fai clic sulla casella del selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella Seleziona da, quindi cerca il nome del tuo progetto.
- Fai clic sul nome del progetto per passare a quel progetto. Il numero di progetto è visualizzato nella scheda Informazioni sul 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
Come trovare l'ID di una cartella Google Cloud
Console
Per trovare l'ID di una cartella Google Cloud, completa i seguenti passaggi:
-
Vai alla console Google Cloud.
- Fai clic sulla casella del selettore nella barra dei menu.
- Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
- Cerca il nome della cartella. L'ID cartella è 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 può essere una corrispondenza stringa completa o parziale. Rimuovi l'opzione
--format
per visualizzare ulteriori informazioni sulle cartelle trovate.Per ottenere l'ID di una cartella all'interno di un'altra cartella, elenca le sottocartelle:
gcloud resource-manager folders list --folder=FOLDER_ID
-
organizations/ORGANIZATION_ID
Come trovare un ID organizzazione Google Cloud
Console
Per trovare l'ID organizzazione di Google Cloud, completa questi passaggi:
-
Vai alla console Google Cloud.
- Fai clic sulla casella del selettore nella barra dei menu.
- Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
- Fai clic sulla scheda Tutte. L'ID organizzazione è visualizzato accanto al nome dell'organizzazione.
Interfaccia a riga di comando gcloud
Puoi recuperare un ID organizzazione Google Cloud con il seguente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
Altri parametri:
"force": true
: sovrascrive la tabella di destinazione, se esistente.
Se l'esportazione in una tabella non riesce, l'intera operazione di esportazione non riesce e restituisce il primo errore. I risultati delle esportazioni precedenti riuscite vengono mantenuti.
I tipi seguenti sono pacchettizzati in una stringa JSON per risolvere un problema di compatibilità tra i tipi JSON3 e i tipi di BigQuery.
google.protobuf.Timestamp
google.protobuf.Duration
google.protobuf.FieldMask
google.protobuf.ListValue
google.protobuf.Value
google.protobuf.Struct
google.api.*
Esportazione in una tabella partizionata
Per esportare gli asset di un progetto in tabelle partizionate, definisci la chiave di partizione nella richiesta di esportazione. Lo snapshot esportato viene archiviato in una tabella BigQuery denominata TABLE_NAME
con granularità giornaliera e due colonne di timestamp aggiuntive, readTime
e requestTime
, una delle quali è specificata dal valore PARTITION_KEY
.
Per esportare gli asset di un progetto in tabelle partizionate, effettua una delle seguenti richieste.
gcloud
Progetti
gcloud asset export \
--project=PROJECT_ID \
--billing-project=BILLING_PROJECT_ID \
--content-type=CONTENT_TYPE \
--snapshot-time="SNAPSHOT_TIME" \
--bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
--partition-key=PARTITION_KEY \
--output-bigquery-force
Specifica i seguenti valori:
PROJECT_ID
: l'ID del progetto di cui vuoi esportare i metadati.BILLING_PROJECT_ID
: facoltativo. L'ID progetto in cui si trova l'agente di servizio Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire i set di dati e le tabelle BigQuery. Questa operazione non è necessaria se hai già effettuato il passaggio al progetto di fatturazione congcloud config set project
. Scopri di più sui progetti di fatturazione.CONTENT_TYPE
: il tipo di contenuti della risorsa. Il tipo di contenutiaccess-policy
può essere esportato solo per un'organizzazione. Se la esporti per un progetto o una cartella, viene creata una tabella vuota.SNAPSHOT_TIME
: facoltativo. Il momento in cui vuoi acquisire un'istantanea degli asset. Il valore deve corrispondere all'ora corrente o a un'ora non superiore a 35 giorni prima. Se non fornito, uno snapshot viene acquisito all'ora attuale. Per informazioni sui formati temporali, consulta gcloud topic datetimes.DATASET_ID
: l'ID del set di dati BigQuery.TABLE_NAME
: la tabella in cui esportare i metadati. Se non esiste, viene creato.PARTITION_KEY
: la colonna della chiave di partizione durante l'esportazione in tabelle partizionate BigQuery. I valori validi sonoread-time
erequest-time
.
Altri flag:
--output-bigquery-force
: sovrascrive la tabella di destinazione, se esistente.
Cartelle
gcloud asset export \
--folder=FOLDER_ID \
--billing-project=BILLING_PROJECT_ID \
--content-type=CONTENT_TYPE \
--snapshot-time="SNAPSHOT_TIME" \
--bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
--partition-key=PARTITION_KEY \
--output-bigquery-force
Specifica i seguenti valori:
FOLDER_ID
: l'ID della cartella di cui vuoi esportare i metadati.Come trovare l'ID di una cartella Google Cloud
Console
Per trovare l'ID di una cartella Google Cloud, completa i seguenti passaggi:
-
Vai alla console Google Cloud.
- Fai clic sulla casella del selettore nella barra dei menu.
- Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
- Cerca il nome della cartella. L'ID cartella è 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 può essere una corrispondenza stringa completa o parziale. Rimuovi l'opzione
--format
per visualizzare ulteriori informazioni sulle cartelle trovate.Per ottenere l'ID di una cartella all'interno di un'altra cartella, elenca le sottocartelle:
gcloud resource-manager folders list --folder=FOLDER_ID
-
BILLING_PROJECT_ID
: facoltativo. L'ID progetto in cui si trova l'agente di servizio Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire i set di dati e le tabelle BigQuery. Questa operazione non è necessaria se hai già effettuato il passaggio al progetto di fatturazione congcloud config set project
. Scopri di più sui progetti di fatturazione.CONTENT_TYPE
: il tipo di contenuti della risorsa. Il tipo di contenutiaccess-policy
può essere esportato solo per un'organizzazione. Se la esporti per un progetto o una cartella, viene creata una tabella vuota.SNAPSHOT_TIME
: facoltativo. Il momento in cui vuoi acquisire un'istantanea degli asset. Il valore deve corrispondere all'ora corrente o a un'ora non superiore a 35 giorni prima. Se non fornito, uno snapshot viene acquisito all'ora attuale. Per informazioni sui formati temporali, consulta gcloud topic datetimes.PROJECT_ID
: l'ID del progetto in cui si trova la tabella BigQuery.DATASET_ID
: l'ID del set di dati BigQuery.TABLE_NAME
: la tabella in cui stai esportando i metadati. Se non esiste, viene creato.PARTITION_KEY
: la colonna della chiave di partizione durante l'esportazione in tabelle partizionate BigQuery. I valori validi sonoread-time
erequest-time
.
Altri flag:
--output-bigquery-force
: sovrascrive la tabella di destinazione, se esistente.
organizzazione
gcloud asset export \
--organization=ORGANIZATION_ID \
--billing-project=BILLING_PROJECT_ID \
--content-type=CONTENT_TYPE \
--snapshot-time="SNAPSHOT_TIME" \
--bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
--partition-key=PARTITION_KEY \
--output-bigquery-force
Specifica i seguenti valori:
ORGANIZATION_ID
: l'ID dell'organizzazione per cui vuoi gli insight.Come trovare un ID organizzazione Google Cloud
Console
Per trovare l'ID organizzazione di Google Cloud, completa questi passaggi:
-
Vai alla console Google Cloud.
- Fai clic sulla casella del selettore nella barra dei menu.
- Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
- Fai clic sulla scheda Tutte. L'ID organizzazione è visualizzato accanto al nome dell'organizzazione.
Interfaccia a riga di comando gcloud
Puoi recuperare un ID 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 Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire i set di dati e le tabelle BigQuery. Questa operazione non è necessaria se hai già effettuato il passaggio al progetto di fatturazione congcloud config set project
. Scopri di più sui progetti di fatturazione.CONTENT_TYPE
: il tipo di contenuti della risorsa.SNAPSHOT_TIME
: facoltativo. Il momento in cui vuoi acquisire un'istantanea degli asset. Il valore deve corrispondere all'ora corrente o a un'ora non superiore a 35 giorni prima. Se non fornito, uno snapshot viene acquisito all'ora attuale. Per informazioni sui formati temporali, consulta gcloud topic datetimes.PROJECT_ID
: l'ID del progetto in cui si trova la tabella BigQuery.DATASET_ID
: l'ID del set di dati BigQuery.TABLE_NAME
: la tabella in cui stai esportando i metadati. Se non esiste, viene creato.PARTITION_KEY
: la colonna della chiave di partizione durante l'esportazione in tabelle partizionate BigQuery. I valori validi sonoread-time
erequest-time
.
Altri flag:
--output-bigquery-force
: sovrascrive la tabella di destinazione, se esistente.
Se il flag output-bigquery-force
è impostato su true
, la partizione corrispondente viene sovrascritta dai risultati dello snapshot, ma i dati in una o più partizioni diverse rimangono invariati. Se output-bigquery-force
non viene configurato o
false
, aggiunge i dati alla partizione corrispondente.
L'operazione di esportazione non va a buon fine se un aggiornamento dello schema o un tentativo di aggiungere dati non va a buon fine. Questo include se la tabella di destinazione esiste già e non ha lo schema previsto dall'esportazione.
REST
curl -X POST \
-H "X-Goog-User-Project: BILLING_PROJECT_ID" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{
"contentType": "CONTENT_TYPE",
"readTime": "SNAPSHOT_TIME",
"outputConfig": {
"bigqueryDestination": {
"dataset": "projects/PROJECT_ID/datasets/DATASET_ID",
"table": "TABLE_NAME",
"force": true,
"partitionSpec": {
"partitionKey": "PARTITION_KEY"
}
}
}
}' \
https://cloudasset.googleapis.com/v1/SCOPE:exportAssets
Specifica i seguenti valori:
BILLING_PROJECT_ID
: l'ID progetto in cui si trova l'agente di servizio Cloud Asset Inventory predefinito che dispone delle autorizzazioni per gestire i set di dati e le tabelle BigQuery. Scopri di più sui progetti di fatturazione.PROJECT_ID
: l'ID del progetto in cui si trova la tabella BigQuery.CONTENT_TYPE
: il tipo di contenuti della risorsa. Il tipo di contenutiACCESS_POLICY
può essere esportato solo per un'organizzazione. Se la esporti per un progetto o una cartella, viene creata una tabella vuota.SNAPSHOT_TIME
: facoltativo. L'ora in cui vuoi acquisire uno snapshot degli asset, in formato RFC 3339. Il valore deve essere l'ora corrente o un'ora non superiore a 35 giorni nel passato. Se non specificato, l'istantanea viene acquisita all'ora attuale.DATASET_ID
: è l'ID del set di dati BigQuery.TABLE_NAME
: è la tabella in cui stai esportando i metadati. Se non esiste, viene creato.PARTITION_KEY
: è la colonna della chiave di partizione durante l'esportazione in tabelle partizionate BigQuery. I valori validi sonoread-time
erequest-time
.SCOPE
: un ambito può essere un progetto, una cartella o un'organizzazione.I valori consentiti sono:
projects/PROJECT_ID
projects/PROJECT_NUMBER
Come trovare il numero di un progetto Google Cloud
Console
Per trovare il numero di un progetto Google Cloud, completa questi passaggi:
-
Vai alla pagina Dashboard nella console Google Cloud.
- Fai clic sulla casella del selettore nella barra dei menu.
- Seleziona la tua organizzazione dalla casella Seleziona da, quindi cerca il nome del tuo progetto.
- Fai clic sul nome del progetto per passare a quel progetto. Il numero di progetto è visualizzato nella scheda Informazioni sul 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
Come trovare l'ID di una cartella Google Cloud
Console
Per trovare l'ID di una cartella Google Cloud, completa i seguenti passaggi:
-
Vai alla console Google Cloud.
- Fai clic sulla casella del selettore nella barra dei menu.
- Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
- Cerca il nome della cartella. L'ID cartella è 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 può essere una corrispondenza stringa completa o parziale. Rimuovi l'opzione
--format
per visualizzare ulteriori informazioni sulle cartelle trovate.Per ottenere l'ID di una cartella all'interno di un'altra cartella, elenca le sottocartelle:
gcloud resource-manager folders list --folder=FOLDER_ID
-
organizations/ORGANIZATION_ID
Come trovare un ID organizzazione Google Cloud
Console
Per trovare l'ID organizzazione di Google Cloud, completa questi passaggi:
-
Vai alla console Google Cloud.
- Fai clic sulla casella del selettore nella barra dei menu.
- Fai clic sulla casella Seleziona da, quindi seleziona la tua organizzazione.
- Fai clic sulla scheda Tutte. L'ID organizzazione è visualizzato accanto al nome dell'organizzazione.
Interfaccia a riga di comando gcloud
Puoi recuperare un ID organizzazione Google Cloud con il seguente comando:
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
Altri parametri:
"force": true
: sovrascrive la tabella di destinazione, se esistente. Funziona solo se la tabella ha la stessa struttura di partizione prevista dall'esportazione.Se il criterio
force
viene impostato sutrue
, la partizione corrispondente viene sovrascritta dai risultati dello snapshot, mentre i dati nelle diverse partizioni rimangono intatti. Seforce
non viene configurato o se viene impostato sufalse
, i dati vengono aggiunti alla partizione corrispondente.
L'operazione di esportazione non va a buon fine se un aggiornamento dello schema o un tentativo di aggiungere dati non va a buon fine. Questo include se la tabella di destinazione esiste già e non ha lo schema previsto per l'esportazione.
Controllare lo stato di un'esportazione
Le operazioni sono associate a un ID operazione, che è un UUID.
Questo valore è potenzialmente sensibile, poiché il comando gcloud asset operations describe
non richiede autorizzazioni aggiuntive per essere eseguito correttamente. Assicurati di condividere l'ID operazione solo con utenti attendibili.
Il server rifiuta le richieste se una precedente richiesta alla stessa destinazione è iniziata meno di 15 minuti fa ed è ancora in esecuzione. Possono verificarsi risultati non definiti se il tempo dell'esportazione è superiore a 15 minuti e viene eseguita una richiesta consecutiva alla stessa destinazione prima che la prima richiesta abbia esito positivo.
Per controllare lo stato di un'esportazione, esegui questi comandi.
Interfaccia a riga di comando gcloud
Per verificare lo stato dell'esportazione, puoi eseguire il comando seguente. OPERATION_PATH
viene visualizzato nella risposta dopo aver eseguito il comando di esportazione.
gcloud asset operations describe OPERATION_PATH
REST
Per visualizzare lo stato dell'esportazione, esegui questo comando con l'ID operazione restituito nella risposta all'esportazione.
Puoi trovare
OPERATION_PATH
nel camponame
della risposta all'esportazione, che è formattata come segue:"name": "projects/PROJECT_NUMBER/operations/ExportAssets/CONTENT_TYPE/OPERATION_ID"
Per controllare lo stato dell'esportazione, esegui questo comando con
OPERATION_PATH
:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://cloudasset.googleapis.com/v1/OPERATION_PATH
Visualizzare l'istantanea di un asset
Per visualizzare la tabella contenente i metadati degli snapshot degli asset, segui questi passaggi.
Console
Vai alla pagina BigQuery Studio nella console Google Cloud.
Per visualizzare le tabelle e le visualizzazioni nel set di dati, apri il pannello di navigazione. Nella sezione Risorse, seleziona il progetto per espanderlo, quindi seleziona un set di dati.
Seleziona la tabella dall'elenco.
Seleziona Dettagli e prendi nota del valore in Numero di righe. Potresti aver bisogno di questo valore per controllare il punto di partenza per i risultati utilizzando gcloud CLI o l'API REST.
Per visualizzare un set di dati di esempio, seleziona Anteprima.
REST
Per sfogliare i dati della tabella, chiama tabledata.list
.
Nel parametro tableId
, specifica il nome della tabella.
Puoi configurare i seguenti parametri facoltativi per controllare l'output.
maxResults
è il numero massimo di risultati da restituire.selectedFields
è un elenco separato da virgole di colonne da restituire. Se non specificate, vengono restituite tutte le colonne.startIndex
è l'indice in base zero della riga iniziale da leggere.
I valori vengono restituiti aggregati in un oggetto JSON che devi analizzare, come descritto nella documentazione di riferimento di tabledata.list
.
L'esportazione elenca gli asset e i relativi nomi delle risorse.
Esecuzione di query su uno snapshot degli asset
Dopo aver esportato lo snapshot in BigQuery, puoi eseguire query sui metadati degli asset. Per saperne di più su diversi casi d'uso tipici, consulta Esportazione in query di esempio BigQuery.
Per impostazione predefinita, BigQuery esegue job di query interattivi o on demand, il che significa che la query viene eseguita il prima possibile. Le query interattive vengono conteggiate ai fini del limite di frequenza contemporaneo e del limite giornaliero.
I risultati della query vengono salvati in una tabella temporanea o permanente. Puoi scegliere di aggiungere o sovrascrivere dati in una tabella esistente o di creare una nuova tabella, se non ne esiste nessuna con lo stesso nome.
Per eseguire una query interattiva che scrive l'output in una tabella temporanea, completa i passaggi seguenti.
Console
Vai alla pagina BigQuery Studio nella console Google Cloud.
Seleziona
Crea nuova query.Nell'area di testo Editor query, inserisci una query BigQuery SQL valida.
(Facoltativo) Per modificare la località di trattamento dati, completa i seguenti passaggi.
Seleziona Altro e poi Impostazioni query.
In Località di elaborazione, seleziona Selezione automatica, poi scegli la località dei dati.
Per aggiornare le impostazioni della query, seleziona Salva.
Seleziona Esegui.
REST
Per avviare un nuovo job, chiama il metodo
jobs.insert
. Nella risorsa job, imposta i seguenti parametri.Nel campo
configuration
, imposta il campoquery
su un valore JobConfigurationQuery che descrive il job di query BigQuery.Nel campo
jobReference
, imposta il campolocation
in modo appropriato per il tuo job.
Per raccogliere i risultati con un sondaggio, chiama il numero
getQueryResults
. Sondaggio fino a quandojobComplete
non equivale atrue
. Puoi verificare la presenza di errori e avvisi nell'elencoerrors
.