Cloud Asset Inventory は、 Google Cloud アセット メタデータの表示、検索、エクスポート、モニタリング、分析を可能にするグローバル メタデータ インベントリ サービスです。Cloud Asset Inventory を使用するタスクには、次のようなものがあります。
- リソースの検出と管理: ロケーション、作成時間、タグ、ステータスなどのメタデータ プロパティでフィルタします。
- リソース モニタリング: リソースの変更を時系列で追跡して、監査証跡を作成し、問題をデバッグし、コンプライアンスのずれを管理します。
- セキュリティと費用の監査: 権限が過剰に付与されているリソース、一般公開されているリソース、未使用のリソースを検出して、攻撃対象領域を最小限に抑え、費用を最適化します。
アセットの作成、更新、削除の履歴は最大 35 日間保持されます。過去 35 日間に変更されていないアセットは、最新のステータスを返します。
Google Cloudでアセットを操作する
アセットの操作方法は次のとおりです。
特定のプロジェクト、フォルダ、組織内のアセットとその関係を一覧表示し、最大 35 日間のアセット履歴を取得します。
カスタム クエリ言語を使用してリソースとその IAM 許可ポリシーを検索するか、BigQuery SQL でアセットに対してクエリを実行します。
アセット メタデータを BigQuery または Cloud Storage にエクスポートします。
リソースの IAM ポリシーと組織のポリシーを分析し、リソースの有効な IAM ポリシーを表示して、誰が何にアクセスできるかを確認します。
フィードを設定して登録し、アセットの変更をモニタリングします。
アセットから分析情報を生成して、セキュリティ ポスチャーを強化します。
アセットのメタデータのソース
アセットのメタデータは、次の場所から取得できます。
Google Cloud リソース(Compute Engine VM インスタンス、Cloud Storage バケット、App Engine インスタンスなど)。
Google Cloud リソースに設定されたポリシー(IAM ポリシー、組織のポリシー、Access Context Manager ポリシーなど)。
OS Inventory Management のランタイム情報。
アセットタイプ、アセット名、コンテンツ タイプ
Cloud Asset Inventory には、アセットを操作する複数の方法が用意されています。使用するメソッドと必要なレスポンスの詳細によっては、リクエストでアセットタイプ、アセット名、コンテンツ タイプを指定する必要があります。
アセットタイプ
Cloud Asset Inventory の一部のメソッドは、アセットタイプに基づいて結果を返します。アセットタイプには、 Google Cloud リソースタイプ、ポリシータイプ、OS インベントリのランタイム情報タイプ、関係タイプが含まれます。使用可能なアセットタイプと、それらをサポートする Cloud Asset Inventory メソッドについては、アセットタイプをご覧ください。
アセット名
一部の Cloud Asset Inventory メソッドは、アセット名に基づいて結果を返します。アセット名を指定する場合は、完全なリソース名を使用する必要があります。完全なリソース名の一覧については、アセット名をご覧ください。
コンテンツ タイプ
メタデータ コンテンツ タイプを指定することで、リソースに関する追加のメタデータをリクエストできます。コンテンツ タイプを指定しない場合は、アセット名、最終更新日時、アセットが属するプロジェクト、フォルダ、組織などの情報を含む基本的なレスポンスのみが返されます。
コンテンツ タイプの名前は、Cloud Asset Inventory の操作方法によって異なります。RPC API と REST API の名前は同じです。ただし、gcloud CLI のコンテンツ タイプ名は別のパターンに従います。整合性と説明の容易さのため、このドキュメントの残りの部分では、コンテンツ タイプを RPC 名と REST 名で参照します。
次の表に、コンテンツ タイプとその説明を示します。
| コンテンツ タイプ | 説明 | |
|---|---|---|
| RPC 名と REST 名 | gcloud CLI 名 | |
ACCESS_POLICY |
access-policy |
アセットに設定されている Access Context Manager ポリシー。 |
IAM_POLICY |
iam-policy |
リソースにバインドされている IAM ポリシー メタデータ。 |
ORG_POLICY |
org-policy |
アセットに設定された組織のポリシーのメタデータ。このコンテンツ タイプは、以前の組織のポリシー v1 を出力します。組織のポリシー v2 の場合は、resource コンテンツ タイプと orgpolicy.googleapis.com/Policy リソースタイプをお試しください。 |
OS_INVENTORY |
os-inventory |
ランタイム OS インベントリ情報。OS インベントリを有効にするには、VM Manager を設定するの関連手順を行います。 |
RELATIONSHIP |
relationship |
Security Command Center の Premium ティアまたは Enterprise ティア、または Gemini Cloud Assist へのアクセスが必要です。 多くの Google Cloud アセットは関係によって相互に接続されています。たとえば、コンピューティング インスタンス グループにコンピューティング インスタンスが含まれる場合や、 GKE クラスタに ノードが含まれる場合があります。 関係データは 2022 年 5 月 30 日から利用できます。関係は、ソースアセットの更新とは異なるタイミングで推測される場合があるため、独自の更新タイムスタンプを持つ可能性があります。 サポートされている関係の一覧については、 関係タイプをご覧ください。 |
RESOURCE |
resource |
リソースのメタデータ。 |
コンテンツ タイプによる回答の変化
次の例は、Cloud Asset Inventory を使用してプロジェクト内の VM インスタンスを一覧表示するときに、コンテンツ タイプが異なるとレスポンスがどのように変化するかを示しています。
コンテンツ タイプなし
VM インスタンスを一覧表示するときにコンテンツ タイプを指定しないと、インスタンス名、最終更新日時、インスタンスが属するプロジェクト、フォルダ、組織のみが返されます。
レスポンスの例を開く
--- ancestors: - projects/PROJECT_NUMBER - folders/FOLDER_NUMBER - organizations/ORGANIZATION_ID assetType: compute.googleapis.com/Instance name: //compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME updateTime: '2023-11-15T12:28:30.087825Z'
IAM_POLICY コンテンツ タイプ
IAM_POLICY コンテンツ タイプを指定すると、VM に IAM バインディングがある場合は、そのバインディングも取得します。
レスポンスの例を開く
---
ancestors:
- projects/PROJECT_NUMBER
- folders/FOLDER_NUMBER
- organizations/ORGANIZATION_ID
assetType: compute.googleapis.com/Instance
iamPolicy:
bindings:
- members:
- user:USER_EMAIL_ADDRESS
role: roles/compute.securityAdmin
etag: ETAG
name: //compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
updateTime: '2023-12-19T23:35:42.673842Z'RELATIONSHIP コンテンツ タイプ
RELATIONSHIP を使用するには、Security Command Center のPremium ティアもしくは Enterprise ティア、または Gemini Cloud Assist へのアクセス権が必要です。
RELATIONSHIP コンテンツ タイプを指定すると、VM インスタンスの関連アセットに関連付けられたメタデータも取得されます。
レスポンスの例を開く
--- ancestors: - projects/PROJECT_NUMBER - folders/FOLDER_NUMBER - organizations/ORGANIZATION_ID assetType: compute.googleapis.com/Instance name: //compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME relatedAsset: ancestors: - projects/PROJECT_NUMBER - folders/FOLDER_NUMBER - organizations/ORGANIZATION_ID asset: //compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/disks/INSTANCE_NAME assetType: compute.googleapis.com/Disk relationshipType: COMPUTE_INSTANCE_USE_DISK updateTime: '2023-12-19T23:35:42.673842Z'
RELATIONSHIP コンテンツ タイプを使用する場合は、すべての RELATIONSHIP をリクエストする代わりに、特定の関係タイプをリクエストできます。
RESOURCE コンテンツ タイプ
RESOURCE コンテンツ タイプを指定すると、VM に関連付けられたすべてのメタデータも取得されます。
レスポンスの例を開く
---
ancestors:
- projects/PROJECT_NUMBER
- folders/FOLDER_NUMBER
- organizations/ORGANIZATION_ID
assetType: compute.googleapis.com/Instance
name: //compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
resource:
data:
allocationAffinity:
consumeAllocationType: ANY_ALLOCATION
canIpForward: false
confidentialInstanceConfig:
enableConfidentialCompute: true
cpuPlatform: AMD Rome
creationTimestamp: '2023-11-14T14:35:37.059-08:00'
deletionProtection: false
description: ''
disks:
- architecture: X86_64
autoDelete: true
boot: true
deviceName: INSTANCE_NAME
diskSizeGb: '10'
guestOsFeatures:
- type: VIRTIO_SCSI_MULTIQUEUE
- type: SEV_CAPABLE
- type: SEV_SNP_CAPABLE
- type: SEV_LIVE_MIGRATABLE
- type: UEFI_COMPATIBLE
- type: GVNIC
index: 0
interface: NVME
licenses:
- https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/licenses/ubuntu-2004-lts
mode: READ_WRITE
shieldedInstanceInitialState:
dbx:
- content: DATA
fileType: BIN
dbxs:
- content: DATA
fileType: BIN
source: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/INSTANCE_NAME
type: PERSISTENT
displayDevice:
enableDisplay: false
fingerprint: FINGERPRINT
id: 'ID'
keyRevocationActionType: NONE_ON_KEY_REVOCATION
labelFingerprint: LABEL_FINGERPRINT
lastStartTimestamp: '2023-11-15T04:28:30.005-08:00'
machineType: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/machineTypes/n2d-standard-2
name: INSTANCE_NAME
networkInterfaces:
- accessConfigs:
- name: External NAT
natIP: 34.27.105.222
networkTier: PREMIUM
type: ONE_TO_ONE_NAT
fingerprint: jKU51FdTluk=
name: nic0
network: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/default
networkIP: 10.128.15.212
nicType: GVNIC
stackType: IPV4_ONLY
subnetwork: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/default
reservationAffinity:
consumeReservationType: ANY_ALLOCATION
resourceStatus: {}
scheduling:
automaticRestart: true
onHostMaintenance: TERMINATE
preemptible: false
provisioningModel: STANDARD
selfLink: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
serviceAccounts:
- email: PROJECT_NUMBER-compute@developer.gserviceaccount.com
scopes:
- https://www.googleapis.com/auth/devstorage.read_only
- https://www.googleapis.com/auth/logging.write
- https://www.googleapis.com/auth/monitoring.write
- https://www.googleapis.com/auth/servicecontrol
- https://www.googleapis.com/auth/service.management.readonly
- https://www.googleapis.com/auth/trace.append
shieldedInstanceConfig:
enableIntegrityMonitoring: true
enableSecureBoot: false
enableVtpm: true
shieldedInstanceIntegrityPolicy:
updateAutoLearnPolicy: true
startRestricted: false
status: RUNNING
tags:
fingerprint: FINGERPRINT
zone: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE
discoveryDocumentUri: https://www.googleapis.com/discovery/v1/apis/compute/v1/rest
discoveryName: Instance
location: ZONE
parent: //cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER
version: v1
updateTime: '2023-11-15T12:28:30.087825Z'データの鮮度
Cloud Asset Inventory は、現在のデータに対して結果整合性を提供し、履歴データに対してベスト エフォートの整合性を提供します。まれに、Cloud Asset Inventory で一部のデータ更新が検出されないことがあります。
リソースタイプの表に記載されている場合を除き、ほとんどのアセットの更新は数分で完了します。