Google Cloud プロジェクト、フォルダ、組織のアセットを一覧表示できます。
始める前に
Cloud Asset Inventory コマンドを実行するプロジェクトで Cloud Asset Inventory API を有効にします。
アカウントに Cloud Asset Inventory API を呼び出すための適切なロールがあることを確認します。呼び出しタイプごとの個々の権限については、権限をご覧ください。
制限事項
BigQuery テーブルデータを一覧表示する場合、すべてのフィールドがサポートされているわけではありません。
BigQuery メタデータ内の頻繁に変更されるアセット フィールド(
numBytes
、numLongTermBytes
、numPhysicalBytes
、numRows
など)には、null
値が割り当てられます。
アセットを一覧表示する
gcloud
gcloud asset list \ --SCOPE \ --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \ --content-type=CONTENT_TYPE \ --relationship-types=RELATIONSHIP_TYPE_1,RELATIONSHIP_TYPE_2,... \ --snapshot-time="SNAPSHOT_TIME"
次の値を指定します。
-
SCOPE
: 次のいずれかの値を使用できます。-
project=PROJECT_ID
。ここで、PROJECT_ID
は、取得するアセットを含むプロジェクトの ID です。 -
folder=FOLDER_ID
。ここで、FOLDER_ID
は、取得するアセットを含むフォルダの ID です。Google Cloud フォルダの ID を確認する方法
Google Cloud コンソール
Google Cloud フォルダの ID を確認するには、次の手順を行います。
-
Google Cloud Console に移動します。
- メニューバーの切り替えボックスをクリックします。
- リストボックスから組織を選択します。
- フォルダ名を検索します。フォルダ 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 を返しません。これを行うには、最上位フォルダの ID を使用して次のコマンドを実行します。
gcloud resource-manager folders list --folder=FOLDER_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_TYPE_#
: 省略可。 検索可能なアセットタイプのカンマ区切りのリスト。RE2 互換の正規表現がサポートされています。正規表現が、サポートされているアセットタイプと一致しない場合は、INVALID_ARGUMENT
エラーが返されます。--asset-types
が指定されていない場合、すべてのアセットタイプが返されます。CONTENT_TYPE
: 省略可。 取得するメタデータのコンテンツ タイプ。--content-type
が指定されていない場合、アセット名、アセットの最終更新日、アセットが属するプロジェクト、フォルダ、組織などの基本情報のみが返されます。-
RELATIONSHIP_TYPE_#
: 省略可。 Security Command Center Premium ティアと Enterprise ティアのサブスクライバーのみご利用いただけます。取得するアセット関係タイプのカンマ区切りのリスト。これを機能させるには、CONTENT_TYPE
をRELATIONSHIP
に設定する必要があります。 -
SNAPSHOT_TIME
: 省略可。 アセットのスナップショットを撮る時刻(gcloud topic datetime 形式)。この値は過去 35 日以内にする必要があります。--snapshot-time
が指定されていない場合、現在の時刻にスナップショットが撮影されます。
すべてのオプションについては、gcloud CLI リファレンスをご覧ください。
例
次のコマンドは、my-project
プロジェクトの 2024 年 1 月 30 日(2024-01-30
)の Compute Engine インスタンスの resource
メタデータ スナップショットを取得します。
このコマンドを実行する前に、スナップショット時間を過去 35 日以内に変更し、プロジェクト名を変更してください。
gcloud asset list \ --project=my-project \ --asset-types=compute.googleapis.com/Instance \ --content-type=resource \ --snapshot-time="2024-01-30"
レスポンスの例
--- ancestors: - projects/000000000000 - folders/000000000000 - organizations/000000000000 assetType: compute.googleapis.com/Instance name: //compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/instance-name resource: data: ASSET_METADATA updateTime: '2024-01-30T00:00:00.000000Z'
REST
HTTP メソッドと URL:
POST https://cloudasset.googleapis.com/v1/SCOPE_PATH/assets
JSON 本文のリクエスト:
{ "assetTypes": [ "ASSET_TYPE_1", "ASSET_TYPE_2", "..." ], "contentType": "CONTENT_TYPE", "relationshipTypes": [ "RELATIONSHIP_TYPE_1", "RELATIONSHIP_TYPE_2", "..." ], "readTime": "SNAPSHOT_TIME", "pageSize": "PAGE_SIZE", "pageToken": "PAGE_TOKEN" }
次の値を指定します。
-
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)"
-
-
folders/FOLDER_ID
。ここで、FOLDER_ID
は、取得するアセットを含むフォルダの ID です。Google Cloud フォルダの ID を確認する方法
Google Cloud コンソール
Google Cloud フォルダの ID を確認するには、次の手順を行います。
-
Google Cloud Console に移動します。
- メニューバーの切り替えボックスをクリックします。
- リストボックスから組織を選択します。
- フォルダ名を検索します。フォルダ 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 を返しません。これを行うには、最上位フォルダの ID を使用して次のコマンドを実行します。
gcloud resource-manager folders list --folder=FOLDER_ID
-
-
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_TYPE_#
: 省略可。 検索可能なアセットタイプの配列。RE2 互換の正規表現がサポートされています。正規表現が、サポートされているアセットタイプと一致しない場合は、INVALID_ARGUMENT
エラーが返されます。assetTypes
が指定されていない場合、すべてのアセットタイプが返されます。CONTENT_TYPE
: 省略可。 取得するメタデータのコンテンツ タイプ。contentType
が指定されていない場合、アセット名、アセットの最終更新日、アセットが属するプロジェクト、フォルダ、組織などの基本情報のみが返されます。-
RELATIONSHIP_TYPE_#
: 省略可。 Security Command Center Premium ティアと Enterprise ティアのサブスクライバーのみご利用いただけます。取得するアセット関係タイプのカンマ区切りのリスト。これを機能させるには、CONTENT_TYPE
をRELATIONSHIP
に設定する必要があります。 -
SNAPSHOT_TIME
: 省略可。 アセットのスナップショットを作成する時刻を RFC 3339 形式で表したもの。この値は過去 35 日以内にする必要があります。readTime
が指定されていない場合、現在の時刻にスナップショットが撮影されます。 -
PAGE_SIZE
: 省略可。 ページごとに返す結果の数を指定します。最大値は 500 です。値が0
または負の値に設定されている場合は、適切なデフォルト値が選択されます。後続の結果を取得するために、nextPageToken
が返されます。 -
PAGE_TOKEN
: 省略可。 長いリクエスト レスポンスは複数のページに分割されます。pageToken
が指定されていない場合、最初のページが返されます。後続のページを呼び出すには、前のレスポンスのnextPageToken
をpageToken
値として使用します。
すべてのオプションについては、REST リファレンスをご覧ください。
コマンドの例
次のコマンドは、my-project
プロジェクトの 2024 年 1 月 30 日(2024-01-30T00:00:00Z
)の Compute Engine インスタンスの resource
メタデータ スナップショットを取得します。
これらのコマンドを実行する前に、スナップショット時間を過去 35 日以内に変更し、プロジェクト名を変更してください。
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 '{ "assetTypes": ["compute.googleapis.com/Instance"], "contentType": "RESOURCE", "readTime": "2024-01-30T00:00:00Z" }' \ https://cloudasset.googleapis.com/v1/projects/my-project/assets
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": ["compute.googleapis.com/Instance"], "contentType": "RESOURCE", "readTime": "2024-01-30T00: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/assets" | Select-Object -Expand Content
レスポンスの例
{ "readTime": "2024-01-30T00:00:00Z", "assets": [ { "name": "//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/instance-name", "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": { ASSET_METADATA }, "location": "us-central1-a" }, "ancestors": [ "projects/000000000000", "folders/000000000000", "organizations/000000000000" ], "updateTime": "2024-01-30T00:00:00.000000Z" } ] }
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 への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。