Google Cloud プロジェクトまたは組織のアセットの作成、更新、削除の履歴を最大 35 日間取得できます。過去 35 日間に変更されていないアセットは、最新のステータスを報告します。
始める前に
Cloud Asset Inventory コマンドを実行するプロジェクトで Cloud Asset Inventory API を有効にします。
アカウントに Cloud Asset Inventory API を呼び出すための適切なロールがあることを確認します。呼び出しタイプごとの個々の権限については、権限をご覧ください。
制限事項
アセットの履歴は、組織レベルとプロジェクト レベルでのみ取得できます。フォルダはサポートされていません。
アセットの履歴を取得する
Console
Google Cloud に保存されているアセットの履歴を取得する手順は次のとおりです。
-
Google Cloud コンソールの [アセット インベントリ] ページに移動します。
- 検索するプロジェクト、フォルダ、または組織に変更します。
- [リソース] タブをクリックします。
- 結果パネルでリソースをクリックします。
- [変更履歴] タブをクリックします。
- レポートの開始時間と終了時間を選択します。
- [比較するレコードを選択] リストボックスを使用して、選択した日付のレコードの差分を表示します。
検索を実行すると、クエリに一致するリソースが [結果] テーブルに一覧表示されます。クエリをダブルクリックして編集するか、[結果をフィルタ] ペインを使用して特定の条件で検索結果を絞り込むことができます。
クエリを Google Cloud CLI コマンドとして表示するには、[クエリを表示] をクリックします。
結果をエクスポートするには、[CSV 形式でダウンロード] をクリックします。
gcloud
gcloud asset get-history \ --SCOPE \ --asset-names=ASSET_NAME_1,ASSET_NAME_2,... \ --content-type=CONTENT_TYPE \ --relationship-types=RELATIONSHIP_TYPE_1,RELATIONSHIP_TYPE_2,... \ --start-time="START_TIME" \ --end-time="END_TIME"
次の値を指定します。
-
SCOPE
: 次のいずれかの値を使用できます。-
project=PROJECT_ID
。ここで、PROJECT_ID
は取得するアセットを含むプロジェクトの ID です。 -
organization=ORGANIZATION_ID
。ここで、ORGANIZATION_ID
は取得するアセットを含む組織の ID です。Google Cloud 組織の ID を確認する方法
Google Cloud コンソール
Google Cloud 組織の ID を確認する手順は次のとおりです。
-
Google Cloud Console に移動します。
- メニューバーの切り替えボックスをクリックします。
- リストボックスから組織を選択します。
- [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。
gcloud CLI
Google Cloud 組織の ID を取得するには、次のコマンドを使用します。
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
ASSET_NAME_#
: アセットのフルネームのカンマ区切りリスト。CONTENT_TYPE
: 取得するメタデータの コンテンツ タイプ。--content-type
が指定されていない場合、アセット名、アセットの最終更新日、アセットが属するプロジェクト、フォルダ、組織などの基本情報のみが返されます。-
RELATIONSHIP_TYPE_#
: 省略可。 Security Command Center のプレミアム ティアと エンタープライズ ティアのサブスクライバーのみご利用いただけます。取得する アセット関係の種類のカンマ区切りのリスト。これを機能させるには、CONTENT_TYPE
をRELATIONSHIP
に設定する必要があります。 -
START_TIME
: 期間の開始日時(gcloud topic datetime 形式)。この値は過去 35 日以内にする必要があります。 -
END_TIME
: 省略可。 期間の終了ポイント(gcloud topic datetime 形式)。この値は過去 35 日以内にする必要があります。--end-time
が指定されていない場合は、現在の時刻に設定されます。
すべてのオプションについては、gcloud CLI リファレンスをご覧ください。
例
次のコマンドを実行して、2024 年 1 月 30 日から 2024 年 2 月 5 日までの my-project
プロジェクトの my-instance
Compute Engine インスタンスの resource
履歴メタデータを取得します。インスタンスには次のプロパティがあります。
- インスタンス名:
my-instance
- プロジェクト:
my-project
- ロケーション:
us-central1-a
gcloud asset get-history \ --project=my-project \ --asset-names=//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance \ --content-type=resource \ --start-time="2024-01-30" \ --end-time="2024-02-05"
レスポンスの例
--- asset: ancestors: - projects/000000000000 - folders/000000000000 - organizations/000000000000 assetType: compute.googleapis.com/Instance name: //compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance resource: data: LATEST_ASSET_METADATA discoveryDocumentUri: https://www.googleapis.com/discovery/v1/apis/compute/v1/rest discoveryName: Instance location: us-central1-a parent: //cloudresourcemanager.googleapis.com/projects/000000000000 version: v1 updateTime: '2024-02-05T16:00:25.259186Z' window: endTime: '2024-02-05T16:00:25.259186Z' startTime: '2024-02-03T16:00:28.854779Z' --- asset: ancestors: - projects/000000000000 - folders/000000000000 - organizations/000000000000 assetType: compute.googleapis.com/Instance name: //compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance resource: data: EARLIEST_ASSET_METADATA discoveryDocumentUri: https://www.googleapis.com/discovery/v1/apis/compute/v1/rest discoveryName: Instance location: us-central1-a parent: //cloudresourcemanager.googleapis.com/projects/000000000000 version: v1 updateTime: '2024-02-03T16:00:28.854779Z' window: endTime: '2024-02-03T16:00:28.854779Z' startTime: '2024-01-30T08:00:22.930462Z'
REST
HTTP メソッドと URL:
POST https://cloudasset.googleapis.com/v1/SCOPE_PATH:batchGetAssetsHistory
JSON 本文のリクエスト:
{ "assetNames": [ "ASSET_NAME_1", "ASSET_NAME_2", "..." ], "contentType": "CONTENT_TYPE", "relationshipTypes": [ "RELATIONSHIP_TYPE_1", "RELATIONSHIP_TYPE_2", "..." ], "readTimeWindow": { "startTime": "START_TIME", "endTime": "END_TIME" } }
次の値を指定します。
-
SCOPE_PATH
: 次のいずれかの値を使用できます。使用できる値は次のとおりです。
-
projects/PROJECT_ID
。ここで、PROJECT_ID
は取得するアセットを含むプロジェクトの ID です。 -
projects/PROJECT_NUMBER
。ここで、PROJECT_NUMBER
は取得するアセットを含むプロジェクトの数です。Google Cloud プロジェクト番号を確認する方法
Google Cloud コンソール
Google Cloud プロジェクト番号を確認するには、次の手順を行います。
-
Google Cloud コンソールの [ようこそ] ページに移動します。
- メニューバーの切り替えボックスをクリックします。
-
リストボックスから組織を選択し、プロジェクト名を検索します。プロジェクト名、プロジェクト番号、プロジェクト ID は [ようこそ] の見出しの近くに表示されます。
最大 4,000 個のリソースが表示されます。目的のプロジェクトが表示されない場合は、[リソースの管理] ページに移動し、そのプロジェクトの名前を使用してリストをフィルタします。
gcloud CLI
Google Cloud プロジェクト番号を取得するには、次のコマンドを使用します。
gcloud projects describe PROJECT_ID --format="value(projectNumber)"
-
-
organizations/ORGANIZATION_ID
。ここで、ORGANIZATION_ID
は取得するアセットを含む組織の ID です。Google Cloud 組織の ID を確認する方法
Google Cloud コンソール
Google Cloud 組織の ID を確認する手順は次のとおりです。
-
Google Cloud Console に移動します。
- メニューバーの切り替えボックスをクリックします。
- リストボックスから組織を選択します。
- [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。
gcloud CLI
Google Cloud 組織の ID を取得するには、次のコマンドを使用します。
gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"
-
-
ASSET_NAME_#
: アセットの完全な名前の配列。CONTENT_TYPE
: 取得するメタデータのコンテンツ タイプ。contentType
が指定されていない場合、アセット名、アセットの最終更新日、アセットが属するプロジェクト、フォルダ、組織などの基本情報のみが返されます。-
RELATIONSHIP_TYPE_#
: 省略可。 Security Command Center のプレミアム ティアと エンタープライズ ティアのサブスクライバーのみご利用いただけます。取得するアセット関係タイプのカンマ区切りのリスト。これを機能させるには、CONTENT_TYPE
をRELATIONSHIP
に設定する必要があります。 -
START_TIME
: 期間の先頭(RFC 3339 形式)。この値は過去 35 日以内にする必要があります。 -
END_TIME
: 省略可。 期間の終了ポイント(RFC 3339 形式)。この値は過去 35 日以内にする必要があります。endTime
が指定されていない場合は、現在の時刻に設定されます。
すべてのオプションについては、REST リファレンスをご覧ください。
コマンドの例
次のいずれかのコマンドを実行して、2024 年 1 月 30 日から 2024 年 2 月 5 日までの my-project
プロジェクトの my-instance
Compute Engine インスタンスの resource
履歴を取得します。インスタンスには次のプロパティがあります。
- インスタンス名:
my-instance
- プロジェクト:
my-project
- ロケーション:
us-central1-a
curl(Linux、macOS、Cloud Shell)
curl -X POST \ -H "X-HTTP-Method-Override: GET" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d '{ "assetNames": ["//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance"], "contentType": "RESOURCE", "readTimeWindow": { "startTime": "2024-01-30T00:00:00Z", "endTime": "2024-02-05T00:00:00Z" } }' \ https://cloudasset.googleapis.com/v1/projects/my-project:batchGetAssetsHistory
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetNames": ["//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance"], "contentType": "RESOURCE", "readTimeWindow": { "startTime": "2024-01-30T00:00:00Z", "endTime": "2024-02-05T00:00:00Z" } } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:batchGetAssetsHistory" | Select-Object -Expand Content
レスポンスの例
{ "assets": [ { "window": { "startTime": "2024-02-03T16:00:28.854779Z", "endTime": "2024-02-05T16:00:25.259186Z" }, "asset": { "name": "//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance", "assetType": "compute.googleapis.com/Instance", "resource": { "version": "v1", "discoveryDocumentUri": "https://www.googleapis.com/discovery/v1/apis/compute/v1/rest", "discoveryName": "Instance", "parent": "//cloudresourcemanager.googleapis.com/projects/000000000000", "data": { LATEST_ASSET_METADATA }, "location": "us-central1-a" }, "ancestors": [ "projects/000000000000", "folders/000000000000", "organizations/000000000000" ], "updateTime": "2024-02-05T16:00:25.259186Z" } }, { "window": { "startTime": "2024-01-30T08:00:22.930462Z", "endTime": "2024-02-03T16:00:28.854779Z" }, "asset": { "name": "//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/my-instance", "assetType": "compute.googleapis.com/Instance", "resource": { "version": "v1", "discoveryDocumentUri": "https://www.googleapis.com/discovery/v1/apis/compute/v1/rest", "discoveryName": "Instance", "parent": "//cloudresourcemanager.googleapis.com/projects/000000000000", "data": { EARLIEST_ASSET_METADATA }, "location": "us-central1-a" }, "ancestors": [ "projects/000000000000", "folders/000000000000", "organizations/000000000000" ], "updateTime": "2024-02-03T16:00:28.854779Z" } } ] }
C#
Cloud Asset Inventory 用のクライアント ライブラリをインストールして使用する方法については、Cloud Asset Inventory クライアント ライブラリをご覧ください。
Cloud Asset Inventory への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
Cloud Asset Inventory 用のクライアント ライブラリをインストールして使用する方法については、Cloud Asset Inventory クライアント ライブラリをご覧ください。
Cloud Asset Inventory への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
Cloud Asset Inventory 用のクライアント ライブラリをインストールして使用する方法については、Cloud Asset Inventory クライアント ライブラリをご覧ください。
Cloud Asset Inventory への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
Cloud Asset Inventory 用のクライアント ライブラリをインストールして使用する方法については、Cloud Asset Inventory クライアント ライブラリをご覧ください。
Cloud Asset Inventory への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
Cloud Asset Inventory 用のクライアント ライブラリをインストールして使用する方法については、Cloud Asset Inventory クライアント ライブラリをご覧ください。
Cloud Asset Inventory への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
Cloud Asset Inventory 用のクライアント ライブラリをインストールして使用する方法については、Cloud Asset Inventory クライアント ライブラリをご覧ください。
Cloud Asset Inventory への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Ruby
Cloud Asset Inventory 用のクライアント ライブラリをインストールして使用する方法については、Cloud Asset Inventory クライアント ライブラリをご覧ください。
Cloud Asset Inventory への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。