このトピックでは、組織、フォルダ、またはプロジェクトのアセット メタデータを BigQuery テーブルにエクスポートし、インベントリに対してデータ分析を行う方法を説明します。BigQuery は、カスタム スクリプトを使用しなくてもデータを分析し、有用な分析情報を提供できる SQL のような操作性を備えています。
始める前に
始める前に、次の手順を行います。
API コマンドを実行するプロジェクトで Cloud Asset Inventory API を有効にします。
gcloud CLI または API を使用して Cloud Asset Inventory API を呼び出すために必要な権限を構成します。
環境を設定するには、次の手順を実行します。
gcloud CLI
gcloud CLI を使用して Cloud Asset Inventory API を呼び出すように環境を設定するには、ローカル クライアントに Google Cloud CLI をインストールします。
REST
curl
コマンドで Cloud Asset Inventory API を呼び出すように環境を設定するには、次の手順を行います。curl
コマンドにアクセスできるかを確認します。プロジェクト、フォルダ、組織で、次のいずれかのロールがアカウントに付与されていることを確認します。
Cloud Asset 閲覧者のロール(
roles/cloudasset.viewer
)オーナーの基本ロール(
roles/owner
)
あるプロジェクトから別のプロジェクトにメタデータをエクスポートする場合は、エクスポート元のプロジェクトのデフォルトの Cloud Asset Inventory サービス アカウントが存在し、適切な権限があることを確認してください。
制限事項
アセットのスナップショットをエクスポートするときは、次の点に注意してください。
カスタム Cloud Key Management Service(Cloud KMS)鍵で暗号化された BigQuery テーブルはサポートされていません。
パーティション分割テーブルにエクスポートする場合を除き、既存のテーブルへのエクスポート出力の追加はサポートされていません。宛先テーブルは空にするか、上書きする必要があります。これを上書きするには、gcloud CLI で
--output-bigquery-force
フラグを使用するか、REST API でforce
を使用します。Google Kubernetes Engine(GKE)リソースタイプは、
container.googleapis.com/Cluster
とcontainer.googleapis.com/NodePool
を除き、リソースタイプごとに別々のテーブルにエクスポートする場合はサポートされません。エクスポート先のテーブルがすでに存在し、そのファイルがすでにエクスポート中の場合は、
400
エラーが返されます。
エクスポート用の BigQuery スキーマの設定
すべての BigQuery テーブルは、列名、データ型、その他の情報を記述するスキーマによって定義されます。エクスポート中にコンテンツ タイプを設定すると、テーブルのスキーマが決まります。
リソースまたは未指定: コンテンツ タイプを
RESOURCE
に設定する、または指定せず、そしてper-asset-type
フラグをfalse
に設定する、または指定しない場合、次のスキーマを含む BigQuery テーブルを作成します。リソース スキーマ
[ { "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" } ]
resource.data
列は、JSON 文字列として表現されるリソース メタデータです。コンテンツ タイプを
RESOURCE
に設定する、または設定せず、そしてper-asset-type
フラグをtrue
に設定する場合、アセットタイプ別の個別のテーブルを作成します。各テーブルのスキーマには、そのアセットタイプのResource.data
フィールドのネストされたフィールド(BigQuery でサポートされる最大 15 のネストレベルまで)にマッピングされた RECORD 型の列が含まれます。種類別の BigQuery のサンプル テーブルについては、projects/export-assets-examples/datasets/structured_export をご覧ください。IAM ポリシー: コンテンツ タイプをREST API で
IAM_POLICY
または gcloud CLI でiam-policy
に設定した場合、次のスキーマを含む BigQuery テーブルを作成します。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" } ]
組織のポリシー: コンテンツ タイプを REST API で
ORG_POLICY
または gcloud CLI でorg-policy
に設定した場合、次のスキーマを含む BigQuery テーブルを作成します。組織のポリシーのスキーマ
[ { "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" } ]
VPCSC ポリシー: コンテンツ タイプを REST API で
ACCESS_POLICY
または gcloud CLI でaccess-policy
に設定した場合、次のスキーマを含む BigQuery テーブルを作成します。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" } ]
OSConfig インスタンス インベントリ: コンテンツ タイプを REST API で
OS_INVENTORY
または gcloud CLI でos-inventory
に設定した場合、次のスキーマを含む BigQuery テーブルを作成します。OS インベントリのスキーマ
[ { "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" } ]
関係: コンテンツ タイプを REST API で
RELATIONSHIP
、または gcloud CLI でrelationship
に設定した場合、次のスキーマを含む BigQuery テーブルを作成します。関係スキーマ
[ { "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" } ]
アセット スナップショットを BigQuery にエクスポートする
特定のタイムスタンプでのアセットのエクスポート
任意のタイムスタンプで、アセット スナップショットを TABLE_NAME
という名前の BigQuery テーブルにエクスポートするには、次のリクエストのいずれかを行います。
gcloud
プロジェクト
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
次の値を指定します。
PROJECT_ID
: メタデータをエクスポートするプロジェクトの ID。BILLING_PROJECT_ID
: 省略可。デフォルトの Cloud Asset Inventory サービス エージェントが存在する、BigQuery のデータセットとテーブルを管理する権限を持つプロジェクト ID。gcloud config set project
で課金プロジェクトに切り替えている場合は不要です。詳細は、課金プロジェクトをお読みください。CONTENT_TYPE
: アセットのコンテンツ タイプ。access-policy
コンテンツ タイプは、組織に対して 1 つのみエクスポートできます。プロジェクトまたはフォルダにエクスポートすると、空白のテーブルが作成されます。SNAPSHOT_TIME
: 省略可。アセットのスナップショットを作成したい時刻。この値は、現在の時刻または過去 35 日以内の時刻である必要があります。指定しない場合、現在の時刻にスナップショットが作成されます。時刻形式については、gcloud topic datetimes をご覧ください。DATASET_ID
: BigQuery データセットの ID。TABLE_NAME
: メタデータのエクスポート先のテーブル。存在しない場合は作成されます。
その他のフラグ:
--output-bigquery-force
: 宛先テーブルが存在する場合に宛先テーブルを上書きします。
フォルダ
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
次の値を指定します。
FOLDER_ID
: メタデータをエクスポートするフォルダの ID。Google Cloud フォルダ ID を確認する方法
Console
Google Cloud フォルダ ID を確認するには、次の手順を行います。
-
Google Cloud コンソールに移動します。
- メニューバーの切り替えボックスをクリックします。
- [選択元] ボックスをクリックして、組織を選択します。
- フォルダ名を検索します。フォルダ ID がフォルダ名の横に表示されます。
gcloud CLI
組織レベルの Google Cloud フォルダ ID を取得するには、次のコマンドを使用します。
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)"
ここで、TOP_LEVEL_FOLDER_NAME は文字列の完全一致または部分一致です。
--format
オプションを削除すると、検出されたフォルダに関する詳細情報が表示されます。別のフォルダ内のフォルダの ID を取得するには、以下のとおりサブフォルダを一覧表示します。
gcloud resource-manager folders list --folder=FOLDER_ID
-
BILLING_PROJECT_ID
: 省略可。デフォルトの Cloud Asset Inventory サービス エージェントが存在する、BigQuery のデータセットとテーブルを管理する権限を持つプロジェクト ID。gcloud config set project
で課金プロジェクトに切り替えている場合は不要です。詳細は、課金プロジェクトをお読みください。CONTENT_TYPE
: アセットのコンテンツ タイプ。access-policy
コンテンツ タイプは、組織に対して 1 つのみエクスポートできます。プロジェクトまたはフォルダにエクスポートすると、空白のテーブルが作成されます。SNAPSHOT_TIME
: 省略可。アセットのスナップショットを作成したい時刻。この値は、現在の時刻または過去 35 日以内の時刻である必要があります。指定しない場合、現在の時刻にスナップショットが作成されます。時刻形式については、gcloud topic datetimes をご覧ください。PROJECT_ID
: BigQuery テーブルが存在するプロジェクトの ID。DATASET_ID
: BigQuery データセットの ID。TABLE_NAME
: メタデータのエクスポート先のテーブル。存在しない場合は作成されます。
その他のフラグ:
--output-bigquery-force
: 宛先テーブルが存在する場合に宛先テーブルを上書きします。
組織
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
次の値を指定します。
ORGANIZATION_ID
: メタデータをエクスポートする組織の ID。Google Cloud 組織 ID を確認する方法
Console
Google Cloud 組織 ID を確認するには、次の手順を行います。
-
Google Cloud コンソールに移動します。
- メニューバーの切り替えボックスをクリックします。
- [選択元] ボックスをクリックして、組織を選択します。
- [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。
gcloud CLI
Google Cloud 組織 ID を取得するには、次のコマンドを使用します。
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
BILLING_PROJECT_ID
: 省略可。デフォルトの Cloud Asset Inventory サービス エージェントが存在する、BigQuery のデータセットとテーブルを管理する権限を持つプロジェクト ID。gcloud config set project
で課金プロジェクトに切り替えている場合は不要です。詳細は、課金プロジェクトをお読みください。CONTENT_TYPE
: アセットのコンテンツ タイプ。SNAPSHOT_TIME
: 省略可。アセットのスナップショットを作成したい時刻。この値は、現在の時刻または過去 35 日以内の時刻である必要があります。指定しない場合、現在の時刻にスナップショットが作成されます。時刻形式については、gcloud topic datetimes をご覧ください。PROJECT_ID
: BigQuery テーブルが存在するプロジェクトの ID。DATASET_ID
: BigQuery データセットの ID。TABLE_NAME
: メタデータのエクスポート先のテーブル。存在しない場合は作成されます。
その他のフラグ:
--output-bigquery-force
: 宛先テーブルが存在する場合に宛先テーブルを上書きします。
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
次の値を指定します。
BILLING_PROJECT_ID
: デフォルトの Cloud Asset Inventory サービス エージェントが存在する、BigQuery のデータセットとテーブルを管理する権限を持つプロジェクト ID。詳細は、課金プロジェクトをお読みください。CONTENT_TYPE
: アセットのコンテンツ タイプ。ACCESS_POLICY
コンテンツ タイプは、組織に対して 1 つのみエクスポートできます。プロジェクトまたはフォルダにエクスポートすると、空白のテーブルが作成されます。SNAPSHOT_TIME
: 省略可。アセットのスナップショットを作成する時刻を RFC 3339 形式で表したもの。この値は、現在の時刻または過去 35 日以内の時刻である必要があります。指定しない場合、現在の時刻にスナップショットが作成されます。PROJECT_ID
: BigQuery テーブルが存在するプロジェクトの ID。DATASET_ID
: BigQuery データセットの ID。TABLE_NAME
: メタデータのエクスポート先のテーブル。存在しない場合は作成されます。SCOPE
: プロジェクト、フォルダ、組織がスコープになります。使用できる値は次のとおりです。
projects/PROJECT_ID
projects/PROJECT_NUMBER
Google Cloud プロジェクト番号を確認する方法
Console
Google Cloud プロジェクト番号を確認するには、次の手順を行います。
-
Google Cloud コンソールの [ダッシュボード] ページに移動します。
- メニューバーの切り替えボックスをクリックします。
- [選択元] ボックスで組織を選択し、プロジェクト名を検索します。
- プロジェクト名をクリックして、そのプロジェクトに切り替えます。プロジェクト番号が [プロジェクト情報] カードに表示されます。
gcloud CLI
Google Cloud プロジェクト番号を取得するには、次のコマンドを使用します。
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
folders/FOLDER_ID
Google Cloud フォルダ ID を確認する方法
Console
Google Cloud フォルダ ID を確認するには、次の手順を行います。
-
Google Cloud コンソールに移動します。
- メニューバーの切り替えボックスをクリックします。
- [選択元] ボックスをクリックして、組織を選択します。
- フォルダ名を検索します。フォルダ ID がフォルダ名の横に表示されます。
gcloud CLI
組織レベルの Google Cloud フォルダ ID を取得するには、次のコマンドを使用します。
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)"
ここで、TOP_LEVEL_FOLDER_NAME は文字列の完全一致または部分一致です。
--format
オプションを削除すると、検出されたフォルダに関する詳細情報が表示されます。別のフォルダ内のフォルダの ID を取得するには、以下のとおりサブフォルダを一覧表示します。
gcloud resource-manager folders list --folder=FOLDER_ID
-
organizations/ORGANIZATION_ID
Google Cloud 組織 ID を確認する方法
Console
Google Cloud 組織 ID を確認するには、次の手順を行います。
-
Google Cloud コンソールに移動します。
- メニューバーの切り替えボックスをクリックします。
- [選択元] ボックスをクリックして、組織を選択します。
- [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。
gcloud CLI
Google Cloud 組織 ID を取得するには、次のコマンドを使用します。
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
他のパラメータ:
"force": true
: 宛先テーブルが存在する場合に宛先テーブルを上書きします。
リソースタイプごとの別々のテーブルのエクスポート
リソースタイプごとに別々の BigQuery テーブルにアセットをエクスポートするには、--per-asset-type
フラグを使用します。各テーブルの名前は、_
(アンダースコア)とアセットタイプ名で連結された TABLE_NAME
です。英数字以外の文字は _
に置き換えられます。
GKE リソースタイプは、container.googleapis.com/Cluster
と container.googleapis.com/NodePool
を除き、このタイプのエクスポートではサポートされていません。
gcloud
プロジェクト
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
次の値を指定します。
PROJECT_ID
: メタデータをエクスポートするプロジェクトの ID。BILLING_PROJECT_ID
: 省略可。デフォルトの Cloud Asset Inventory サービス エージェントが存在する、BigQuery のデータセットとテーブルを管理する権限を持つプロジェクト ID。gcloud config set project
で課金プロジェクトに切り替えている場合は不要です。詳細は、課金プロジェクトをお読みください。CONTENT_TYPE
: アセットのコンテンツ タイプ。access-policy
コンテンツ タイプは、組織に対して 1 つのみエクスポートできます。プロジェクトまたはフォルダにエクスポートすると、空白のテーブルが作成されます。SNAPSHOT_TIME
: 省略可。アセットのスナップショットを作成したい時刻。この値は、現在の時刻または過去 35 日以内の時刻である必要があります。指定しない場合、現在の時刻にスナップショットが作成されます。時刻形式については、gcloud topic datetimes をご覧ください。DATASET_ID
: BigQuery データセットの ID。TABLE_NAME
: メタデータのエクスポート先のテーブル。存在しない場合は作成されます。
その他のフラグ:
--output-bigquery-force
: 宛先テーブルが存在する場合に宛先テーブルを上書きします。--per-asset-type
: リソースタイプごとに複数の BigQuery テーブルにエクスポートします。
フォルダ
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
次の値を指定します。
FOLDER_ID
: メタデータをエクスポートするフォルダの ID。Google Cloud フォルダ ID を確認する方法
Console
Google Cloud フォルダ ID を確認するには、次の手順を行います。
-
Google Cloud コンソールに移動します。
- メニューバーの切り替えボックスをクリックします。
- [選択元] ボックスをクリックして、組織を選択します。
- フォルダ名を検索します。フォルダ ID がフォルダ名の横に表示されます。
gcloud CLI
組織レベルの Google Cloud フォルダ ID を取得するには、次のコマンドを使用します。
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)"
ここで、TOP_LEVEL_FOLDER_NAME は文字列の完全一致または部分一致です。
--format
オプションを削除すると、検出されたフォルダに関する詳細情報が表示されます。別のフォルダ内のフォルダの ID を取得するには、以下のとおりサブフォルダを一覧表示します。
gcloud resource-manager folders list --folder=FOLDER_ID
-
BILLING_PROJECT_ID
: 省略可。デフォルトの Cloud Asset Inventory サービス エージェントが存在する、BigQuery のデータセットとテーブルを管理する権限を持つプロジェクト ID。gcloud config set project
で課金プロジェクトに切り替えている場合は不要です。詳細は、課金プロジェクトをお読みください。CONTENT_TYPE
: アセットのコンテンツ タイプ。access-policy
コンテンツ タイプは、組織に対して 1 つのみエクスポートできます。プロジェクトまたはフォルダにエクスポートすると、空白のテーブルが作成されます。SNAPSHOT_TIME
: 省略可。アセットのスナップショットを作成したい時刻。この値は、現在の時刻または過去 35 日以内の時刻である必要があります。指定しない場合、現在の時刻にスナップショットが作成されます。時刻形式については、gcloud topic datetimes をご覧ください。PROJECT_ID
: BigQuery テーブルが存在するプロジェクトの ID。DATASET_ID
: BigQuery データセットの ID。TABLE_NAME
: メタデータのエクスポート先のテーブル。存在しない場合は作成されます。
その他のフラグ:
--output-bigquery-force
: 宛先テーブルが存在する場合に宛先テーブルを上書きします。--per-asset-type
: リソースタイプごとに複数の BigQuery テーブルにエクスポートします。
組織
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
次の値を指定します。
ORGANIZATION_ID
: 分析情報を取得する組織の ID。Google Cloud 組織 ID を確認する方法
Console
Google Cloud 組織 ID を確認するには、次の手順を行います。
-
Google Cloud コンソールに移動します。
- メニューバーの切り替えボックスをクリックします。
- [選択元] ボックスをクリックして、組織を選択します。
- [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。
gcloud CLI
Google Cloud 組織 ID を取得するには、次のコマンドを使用します。
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
BILLING_PROJECT_ID
: 省略可。デフォルトの Cloud Asset Inventory サービス エージェントが存在する、BigQuery のデータセットとテーブルを管理する権限を持つプロジェクト ID。gcloud config set project
で課金プロジェクトに切り替えている場合は不要です。詳細は、課金プロジェクトをお読みください。CONTENT_TYPE
: アセットのコンテンツ タイプ。SNAPSHOT_TIME
: 省略可。アセットのスナップショットを作成したい時刻。この値は、現在の時刻または過去 35 日以内の時刻である必要があります。指定しない場合、現在の時刻にスナップショットが作成されます。時刻形式については、gcloud topic datetimes をご覧ください。PROJECT_ID
: BigQuery テーブルが存在するプロジェクトの ID。DATASET_ID
: BigQuery データセットの ID。TABLE_NAME
: メタデータのエクスポート先のテーブル。存在しない場合は作成されます。
その他のフラグ:
--output-bigquery-force
: 宛先テーブルが存在する場合に宛先テーブルを上書きします。--per-asset-type
: リソースタイプごとに複数の BigQuery テーブルにエクスポートします。
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
次の値を指定します。
BILLING_PROJECT_ID
: デフォルトの Cloud Asset Inventory サービス エージェントが存在する、BigQuery のデータセットとテーブルを管理する権限を持つプロジェクト ID。詳細は、課金プロジェクトをお読みください。CONTENT_TYPE
: アセットのコンテンツ タイプ。ACCESS_POLICY
コンテンツ タイプは、組織に対して 1 つのみエクスポートできます。プロジェクトまたはフォルダにエクスポートすると、空白のテーブルが作成されます。SNAPSHOT_TIME
: 省略可。アセットのスナップショットを作成する時刻を RFC 3339 形式で表したもの。この値は、現在の時刻または過去 35 日以内の時刻である必要があります。指定しない場合、現在の時刻にスナップショットが作成されます。PROJECT_ID
: BigQuery テーブルが存在するプロジェクトの ID。DATASET_ID
: BigQuery データセットの ID。TABLE_NAME
: メタデータのエクスポート先のテーブル。存在しない場合は作成されます。SCOPE
: プロジェクト、フォルダ、組織がスコープになります。使用できる値は次のとおりです。
projects/PROJECT_ID
projects/PROJECT_NUMBER
Google Cloud プロジェクト番号を確認する方法
Console
Google Cloud プロジェクト番号を確認するには、次の手順を行います。
-
Google Cloud コンソールの [ダッシュボード] ページに移動します。
- メニューバーの切り替えボックスをクリックします。
- [選択元] ボックスで組織を選択し、プロジェクト名を検索します。
- プロジェクト名をクリックして、そのプロジェクトに切り替えます。プロジェクト番号が [プロジェクト情報] カードに表示されます。
gcloud CLI
Google Cloud プロジェクト番号を取得するには、次のコマンドを使用します。
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
folders/FOLDER_ID
Google Cloud フォルダ ID を確認する方法
Console
Google Cloud フォルダ ID を確認するには、次の手順を行います。
-
Google Cloud コンソールに移動します。
- メニューバーの切り替えボックスをクリックします。
- [選択元] ボックスをクリックして、組織を選択します。
- フォルダ名を検索します。フォルダ ID がフォルダ名の横に表示されます。
gcloud CLI
組織レベルの Google Cloud フォルダ ID を取得するには、次のコマンドを使用します。
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)"
ここで、TOP_LEVEL_FOLDER_NAME は文字列の完全一致または部分一致です。
--format
オプションを削除すると、検出されたフォルダに関する詳細情報が表示されます。別のフォルダ内のフォルダの ID を取得するには、以下のとおりサブフォルダを一覧表示します。
gcloud resource-manager folders list --folder=FOLDER_ID
-
organizations/ORGANIZATION_ID
Google Cloud 組織 ID を確認する方法
Console
Google Cloud 組織 ID を確認するには、次の手順を行います。
-
Google Cloud コンソールに移動します。
- メニューバーの切り替えボックスをクリックします。
- [選択元] ボックスをクリックして、組織を選択します。
- [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。
gcloud CLI
Google Cloud 組織 ID を取得するには、次のコマンドを使用します。
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
他のパラメータ:
"force": true
: 宛先テーブルが存在する場合に宛先テーブルを上書きします。
いずれかのテーブルへのエクスポートが失敗すると、エクスポート操作全体が失敗し、最初のエラーが返されます。前回成功したエクスポートの結果は保持されます。
次のタイプは、JSON3 と BigQuery の型との互換性の問題を解決するために、JSON 文字列でパックしています。
google.protobuf.Timestamp
google.protobuf.Duration
google.protobuf.FieldMask
google.protobuf.ListValue
google.protobuf.Value
google.protobuf.Struct
google.api.*
パーティション分割テーブルへのエクスポート
プロジェクト内のアセットをパーティション分割テーブルにエクスポートするには、エクスポート リクエストでパーティション キーを定義します。エクスポートされたスナップショットは、BigQuery テーブル TABLE_NAME
に 1 日単位で 2 つのタイムスタンプ列(readTime
と requestTime
)に格納されます。これらの列のうち 1 つは PARTITION_KEY
値で指定されます。
プロジェクト内のアセットをパーティション分割テーブルにエクスポートするには、次のリクエストのいずれかを行います。
gcloud
プロジェクト
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
次の値を指定します。
PROJECT_ID
: メタデータをエクスポートするプロジェクトの ID。BILLING_PROJECT_ID
: 省略可。デフォルトの Cloud Asset Inventory サービス エージェントが存在する、BigQuery のデータセットとテーブルを管理する権限を持つプロジェクト ID。gcloud config set project
で課金プロジェクトに切り替えている場合は不要です。詳細は、課金プロジェクトをお読みください。CONTENT_TYPE
: アセットのコンテンツ タイプ。access-policy
コンテンツ タイプは、組織に対して 1 つのみエクスポートできます。プロジェクトまたはフォルダにエクスポートすると、空白のテーブルが作成されます。SNAPSHOT_TIME
: 省略可。アセットのスナップショットを作成したい時刻。この値は、現在の時刻または過去 35 日以内の時刻である必要があります。指定しない場合、現在の時刻にスナップショットが作成されます。時刻形式については、gcloud topic datetimes をご覧ください。DATASET_ID
: BigQuery データセットの ID。TABLE_NAME
: メタデータのエクスポート先のテーブル。存在しない場合は作成されます。PARTITION_KEY
: BigQuery パーティション分割テーブルへのエクスポート時のパーティション キー列です。有効な値はread-time
とrequest-time
です。
その他のフラグ:
--output-bigquery-force
: 宛先テーブルが存在する場合に宛先テーブルを上書きします。
フォルダ
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
次の値を指定します。
FOLDER_ID
: メタデータをエクスポートするフォルダの ID。Google Cloud フォルダ ID を確認する方法
Console
Google Cloud フォルダ ID を確認するには、次の手順を行います。
-
Google Cloud コンソールに移動します。
- メニューバーの切り替えボックスをクリックします。
- [選択元] ボックスをクリックして、組織を選択します。
- フォルダ名を検索します。フォルダ ID がフォルダ名の横に表示されます。
gcloud CLI
組織レベルの Google Cloud フォルダ ID を取得するには、次のコマンドを使用します。
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)"
ここで、TOP_LEVEL_FOLDER_NAME は文字列の完全一致または部分一致です。
--format
オプションを削除すると、検出されたフォルダに関する詳細情報が表示されます。別のフォルダ内のフォルダの ID を取得するには、以下のとおりサブフォルダを一覧表示します。
gcloud resource-manager folders list --folder=FOLDER_ID
-
BILLING_PROJECT_ID
: 省略可。デフォルトの Cloud Asset Inventory サービス エージェントが存在する、BigQuery のデータセットとテーブルを管理する権限を持つプロジェクト ID。gcloud config set project
で課金プロジェクトに切り替えている場合は不要です。詳細は、課金プロジェクトをお読みください。CONTENT_TYPE
: アセットのコンテンツ タイプ。access-policy
コンテンツ タイプは、組織に対して 1 つのみエクスポートできます。プロジェクトまたはフォルダにエクスポートすると、空白のテーブルが作成されます。SNAPSHOT_TIME
: 省略可。アセットのスナップショットを作成したい時刻。この値は、現在の時刻または過去 35 日以内の時刻である必要があります。指定しない場合、現在の時刻にスナップショットが作成されます。時刻形式については、gcloud topic datetimes をご覧ください。PROJECT_ID
: BigQuery テーブルが存在するプロジェクトの ID。DATASET_ID
: BigQuery データセットの ID。TABLE_NAME
: メタデータのエクスポート先のテーブル。存在しない場合は作成されます。PARTITION_KEY
: BigQuery パーティション分割テーブルへのエクスポート時のパーティション キー列です。有効な値はread-time
とrequest-time
です。
その他のフラグ:
--output-bigquery-force
: 宛先テーブルが存在する場合に宛先テーブルを上書きします。
組織
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
次の値を指定します。
ORGANIZATION_ID
: 分析情報を取得する組織の ID。Google Cloud 組織 ID を確認する方法
Console
Google Cloud 組織 ID を確認するには、次の手順を行います。
-
Google Cloud コンソールに移動します。
- メニューバーの切り替えボックスをクリックします。
- [選択元] ボックスをクリックして、組織を選択します。
- [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。
gcloud CLI
Google Cloud 組織 ID を取得するには、次のコマンドを使用します。
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
BILLING_PROJECT_ID
: 省略可。デフォルトの Cloud Asset Inventory サービス エージェントが存在する、BigQuery のデータセットとテーブルを管理する権限を持つプロジェクト ID。gcloud config set project
で課金プロジェクトに切り替えている場合は不要です。詳細は、課金プロジェクトをお読みください。CONTENT_TYPE
: アセットのコンテンツ タイプ。SNAPSHOT_TIME
: 省略可。アセットのスナップショットを作成したい時刻。この値は、現在の時刻または過去 35 日以内の時刻である必要があります。指定しない場合、現在の時刻にスナップショットが作成されます。時刻形式については、gcloud topic datetimes をご覧ください。PROJECT_ID
: BigQuery テーブルが存在するプロジェクトの ID。DATASET_ID
: BigQuery データセットの ID。TABLE_NAME
: メタデータのエクスポート先のテーブル。存在しない場合は作成されます。PARTITION_KEY
: BigQuery パーティション分割テーブルへのエクスポート時のパーティション キー列です。有効な値はread-time
とrequest-time
です。
その他のフラグ:
--output-bigquery-force
: 宛先テーブルが存在する場合に宛先テーブルを上書きします。
output-bigquery-force
フラグを true
に設定すると、対応するパーティションはスナップショットの結果によって上書きされますが、1 つ以上の別のパーティション内のデータはそのまま残ります。output-bigquery-force
が未設定または false
の場合、対応するパーティションにデータが追加されます。
スキーマの更新またはデータの追加が失敗すると、エクスポート操作は失敗します。これには、宛先テーブルがすでに存在し、エクスポートが想定するスキーマがない場合も含まれます。
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
次の値を指定します。
BILLING_PROJECT_ID
: デフォルトの Cloud Asset Inventory サービス エージェントが存在する、BigQuery のデータセットとテーブルを管理する権限を持つプロジェクト ID。詳細は、課金プロジェクトをお読みください。PROJECT_ID
: BigQuery テーブルが存在するプロジェクトの ID。CONTENT_TYPE
: アセットのコンテンツ タイプ。ACCESS_POLICY
コンテンツ タイプは、組織に対して 1 つのみエクスポートできます。プロジェクトまたはフォルダにエクスポートすると、空白のテーブルが作成されます。SNAPSHOT_TIME
: 省略可。アセットのスナップショットを作成する時刻を RFC 3339 形式で表したもの。この値は、現在の時刻または過去 35 日以内の時刻である必要があります。指定しない場合、現在の時刻にスナップショットが作成されます。DATASET_ID
: BigQuery データセットの ID。TABLE_NAME
: メタデータのエクスポート先のテーブル。存在しない場合は作成されます。PARTITION_KEY
: BigQuery パーティション分割テーブルへのエクスポート時のパーティション キー列です。有効な値はread-time
とrequest-time
です。SCOPE
: プロジェクト、フォルダ、組織がスコープになります。使用できる値は次のとおりです。
projects/PROJECT_ID
projects/PROJECT_NUMBER
Google Cloud プロジェクト番号を確認する方法
Console
Google Cloud プロジェクト番号を確認するには、次の手順を行います。
-
Google Cloud コンソールの [ダッシュボード] ページに移動します。
- メニューバーの切り替えボックスをクリックします。
- [選択元] ボックスで組織を選択し、プロジェクト名を検索します。
- プロジェクト名をクリックして、そのプロジェクトに切り替えます。プロジェクト番号が [プロジェクト情報] カードに表示されます。
gcloud CLI
Google Cloud プロジェクト番号を取得するには、次のコマンドを使用します。
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
folders/FOLDER_ID
Google Cloud フォルダ ID を確認する方法
Console
Google Cloud フォルダ ID を確認するには、次の手順を行います。
-
Google Cloud コンソールに移動します。
- メニューバーの切り替えボックスをクリックします。
- [選択元] ボックスをクリックして、組織を選択します。
- フォルダ名を検索します。フォルダ ID がフォルダ名の横に表示されます。
gcloud CLI
組織レベルの Google Cloud フォルダ ID を取得するには、次のコマンドを使用します。
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)"
ここで、TOP_LEVEL_FOLDER_NAME は文字列の完全一致または部分一致です。
--format
オプションを削除すると、検出されたフォルダに関する詳細情報が表示されます。別のフォルダ内のフォルダの ID を取得するには、以下のとおりサブフォルダを一覧表示します。
gcloud resource-manager folders list --folder=FOLDER_ID
-
organizations/ORGANIZATION_ID
Google Cloud 組織 ID を確認する方法
Console
Google Cloud 組織 ID を確認するには、次の手順を行います。
-
Google Cloud コンソールに移動します。
- メニューバーの切り替えボックスをクリックします。
- [選択元] ボックスをクリックして、組織を選択します。
- [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。
gcloud CLI
Google Cloud 組織 ID を取得するには、次のコマンドを使用します。
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
他のパラメータ:
"force": true
: 宛先テーブルが存在する場合に宛先テーブルを上書きします。これは、テーブルがエクスポートで想定されるのと同じパーティション構造を持つ場合にのみ機能します。force
がtrue
に設定されている場合、対応するパーティションはスナップショットの結果によって上書きされますが、別のパーティション内のデータはそのまま残ります。force
が未設定またはfalse
に設定されている場合、データは対応するパーティションに追加されます。
スキーマの更新またはデータの追加が失敗すると、エクスポート操作は失敗します。これには、宛先テーブルがすでに存在し、エクスポートが想定するスキーマがない場合も含まれます。
エクスポートのステータスの確認
オペレーションは、UUID であるオペレーション ID に関連付けられます。この値は、正常に動作するための追加の権限を gcloud asset operations describe
コマンドで付与する必要がないため、機密性の高い情報になる可能性があります。オペレーション ID は信頼できるユーザーとのみ共有してください。
サーバーは、同じ宛先への前回のリクエストが開始されてからの経過時間が 15 分未満であり、まだ実行されている場合にリクエストを拒否します。エクスポート時間が 15 分を超え、最初のリクエストが正常に完了する前に同じ宛先に対し連続したリクエストが実行されると、不定の結果が生じる可能性があります。
エクスポートのステータスを確認するには、次のコマンドを実行します。
gcloud CLI
エクスポートのステータスを確認するには、次のコマンドを実行します。OPERATION_PATH
は、エクスポート コマンドを実行した後にレスポンスに表示されます。
gcloud asset operations describe OPERATION_PATH
REST
エクスポートのステータスを表示するには、エクスポートに対するレスポンスで返されたオペレーション ID を使用して次のコマンドを実行します。
OPERATION_PATH
は、エクスポートに対するレスポンスのname
フィールドにあります。形式は次のとおりです。"name": "projects/PROJECT_NUMBER/operations/ExportAssets/CONTENT_TYPE/OPERATION_ID"
エクスポートのステータスを確認するには、
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
アセット スナップショットの表示
アセット スナップショットのメタデータを含むテーブルを表示するには、次の手順を行います。
コンソール
Google Cloud コンソールの [BigQuery Studio] ページに移動します。
データセット内のテーブルとビューを表示するには、ナビゲーション パネルを開きます。[リソース] セクションでプロジェクトを展開し、データセットを選択します。
リストからテーブルを選択します。
[詳細] を選択し、[行数] の値を書き留めます。gcloud CLI または API を使用して結果の開始点を制御するために、この値が必要になることがあります。
データのサンプルセットを表示するには、[プレビュー] を選択します。
REST
テーブルのデータを閲覧するには、tabledata.list
を呼び出します。tableId
パラメータで、テーブルの名前を指定します。
次の省略可能パラメータを構成すると、出力を制御できます。
maxResults
は返される結果の最大数です。selectedFields
は返される列のカンマ区切りのリストです。指定しなければ、すべての列が返されます。startIndex
は、読み取りを開始する行を指し示す、ゼロから始まるインデックスです。
値は 1 つの JSON オブジェクトにラップされて返されます。このオブジェクトは、tabledata.list
リファレンス ドキュメントに記載されている手順に沿って解析する必要があります。
エクスポートは、アセットとそのリソース名の一覧を表示します。
アセット スナップショットの照会
スナップショットを BigQuery にエクスポートすると、アセットのメタデータに対してクエリを実行できます。一般的なユースケースの詳細については、BigQuery サンプルクエリへのエクスポートをご覧ください。
デフォルトでは、BigQuery によってインタラクティブな、すなわちオンデマンド型のクエリジョブが実行されます。すなわち、クエリは可能な限り速やかに実行されます。インタラクティブ クエリは、同時実行のレート制限と毎日の制限に対してカウントされます。
クエリの結果は、一時テーブルまたは永続テーブルのいずれかに保存されます。既存のテーブルにデータを追加するか、既存のテーブルのデータを上書きするか、同じ名前のテーブルが存在しない場合は新しいテーブルを作成できます。
出力を一時テーブルに書き込むインタラクティブ クエリを実行するには、次の手順を実行します。
コンソール
Google Cloud コンソールの [BigQuery Studio] ページに移動します。
[クエリを新規作成] を選択します。
[クエリエディタ] テキスト領域に、有効な BigQuery SQL クエリを入力します。
省略可: データ処理ロケーションを変更するには、次の手順を実行します。
[展開]、[クエリの設定] の順に選択します。
[処理を行うロケーション] で [自動選択] を選択してから、データのロケーションを選択します。
クエリの設定を更新するには、[保存] を選択します。
[Run] を選択します。
REST
新しいジョブを開始するには、
jobs.insert
メソッドを呼び出します。ジョブリソースで、次のパラメータを設定します。configuration
フィールドで、query
フィールドを、BigQuery クエリジョブを記述する JobConfigurationQuery に設定します。jobReference
フィールドで、ジョブに適したlocation
フィールドを設定します。
結果を取得するには、
getQueryResults
を呼び出します。jobComplete
がtrue
と等しくなるまで取得を続けます。エラーと警告は、errors
リストで確認できます。