プロジェクト、フォルダ、組織内のリソースを検索し、クエリを使用して返された結果をフィルタできます。
始める前に
Cloud Asset Inventory コマンドを実行するプロジェクトで Cloud Asset Inventory API を有効にします。
アカウントに Cloud Asset Inventory API を呼び出すための適切なロールがあることを確認します。呼び出しタイプごとの個々の権限については、権限をご覧ください。
クエリを作成する
クエリを作成する前に、クエリを指定しない検索リクエストから始めると便利です。完全なレスポンスのフィールドと値を使用し、検索クエリ構文を使用してクエリを作成し、目的の結果が返されるまでクエリを絞り込みます。
クエリで使用できるフィールドの詳細については、searchAllResources リファレンス ドキュメントをご覧ください。
すべてのリソースを検索できるわけではありません。リソース名と、検索 API で使用できるかどうかについては、リソースタイプをご覧ください。
リソースを検索する
Console
リソース メタデータを検索する手順は次のとおりです。
-
Google Cloud コンソールの [アセット インベントリ] ページに移動します。
- 検索するプロジェクト、フォルダ、または組織に変更します。
- [リソース] タブをクリックします。
-
リソースを検索するには、[フィルタ] フィールドにクエリを入力します。検索クエリの作成方法については、検索クエリの構文をご覧ください。
クエリの作成を容易にするには、[フィルタ] フィールドをクリックして、検索可能なフィールドを表示し、クエリに追加します。
検索を実行すると、クエリに一致するリソースが [結果] テーブルに一覧表示されます。クエリをダブルクリックして編集するか、[検索結果をフィルタ] ペインを使用して、特定の条件で検索結果を絞り込むことができます。
クエリを Google Cloud CLI コマンドとして表示するには、[クエリを表示] をクリックします。
結果をエクスポートするには、[CSV 形式でダウンロード] をクリックします。
gcloud
gcloud asset search-all-resources \ --scope=SCOPE_PATH \ --query="QUERY" \ --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \ --order-by="ORDER_BY" \ --read-mask="READ_MASK"
次の値を指定します。
-
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))"
-
-
-
QUERY
: 省略可。 クエリ式。指定しない場合や空の場合は、指定されたスコープ内のすべてのリソースが検索されます。検索クエリの作成方法については、検索クエリの構文をご覧ください。 ASSET_TYPE_#
: 省略可。 検索可能なアセットタイプのカンマ区切りのリスト。RE2 互換の正規表現がサポートされています。正規表現が、サポートされているアセットタイプと一致しない場合は、INVALID_ARGUMENT
エラーが返されます。--asset-types
が指定されていない場合、すべてのアセットタイプが返されます。-
ORDER_BY
: 省略可。 結果の並べ替え順序を指定するフィールドのカンマ区切りリスト。デフォルトの順序は昇順です。 降順を適用するには、フィールド名の後にDESC
を追加します。並べ替え可能なフィールドについては、リファレンス ドキュメントをご覧ください。 READ_MASK
: 省略可。 結果で返されるフィールドを示すフィールドのカンマ区切りのリスト。デフォルトで返されるフィールドと、読み取りマスクを指定する際に考慮すべきその他の条件を確認してください。
--format
フラグと --flatten
フラグを使用して、gcloud CLI の出力をフォーマットできます。
すべてのオプションについては、gcloud CLI リファレンスをご覧ください。
例
次のコマンドを実行して、完全なリソース名に instance
の後に 1
が続く my-project
プロジェクト内のすべての Compute Engine インスタンスのリストを取得します。結果は名前の降順で並べ替えられます。読み取りマスクが設定されているため、name
フィールドと location
フィールドのみが返されます。
gcloud asset search-all-resources \ --scope=projects/my-project \ --query="name:instance 1" \ --asset-types=compute.googleapis.com/Instance \ --order-by="name DESC" \ --read-mask="name,location"
レスポンスの例
--- location: us-central1-a name: //compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/instance-2-1 --- location: us-central1-a name: //compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/instance-1
REST
HTTP メソッドと URL:
POST https://cloudasset.googleapis.com/v1/SCOPE_PATH:searchAllResources
JSON 本文のリクエスト:
{ "query": "QUERY", "assetTypes": [ "ASSET_TYPE_1", "ASSET_TYPE_2", "..." ], "orderBy": "ORDER_BY", "pageSize": "PAGE_SIZE", "pageToken": "PAGE_TOKEN", "readMask": "READ_MASK" }
次の値を指定します。
-
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))"
-
-
-
QUERY
: 省略可。 クエリ式。指定しない場合や空の場合は、指定されたスコープ内のすべてのリソースが検索されます。検索クエリの作成方法については、検索クエリの構文をご覧ください。 ASSET_TYPE_#
: 省略可。 検索可能なアセットタイプの配列。RE2 互換の正規表現がサポートされています。正規表現が、サポートされているアセットタイプと一致しない場合は、INVALID_ARGUMENT
エラーが返されます。assetTypes
が指定されていない場合、すべてのアセットタイプが返されます。-
ORDER_BY
: 省略可。 結果の並べ替え順序を指定するフィールドのカンマ区切りリスト。デフォルトの順序は昇順です。 降順を適用するには、フィールド名の後にDESC
を追加します。並べ替え可能なフィールドについては、リファレンス ドキュメントをご覧ください。 -
PAGE_SIZE
: 省略可。 ページごとに返す結果の数を指定します。最大値は 500 です。値が0
または負の値に設定されている場合は、適切なデフォルト値が選択されます。後続の結果を取得するために、nextPageToken
が返されます。 -
PAGE_TOKEN
: 省略可。 長いリクエスト レスポンスは複数のページに分割されます。pageToken
が指定されていない場合、最初のページが返されます。後続のページを呼び出すには、前のレスポンスのnextPageToken
をpageToken
値として使用します。 READ_MASK
: 省略可。 結果で返されるフィールドを示すフィールドのカンマ区切りのリスト。デフォルトで返されるフィールドと、読み取りマスクを指定する際に考慮すべきその他の条件を確認してください。
すべてのオプションについては、REST リファレンスをご覧ください。
コマンドの例
次のいずれかのコマンドを実行して、完全なリソース名に instance
の後に 1
が続く my-project
プロジェクト内のすべての Compute Engine インスタンスのリストを取得します。結果は名前の降順で並べ替えられ、name
フィールドと location
フィールドのみが返されます。
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 '{ "query": "name:instance 1", "assetTypes": ["compute.googleapis.com/Instance"], "orderBy": "name DESC", "readMask": "name,location" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "query": "name:instance 1", "assetTypes": ["compute.googleapis.com/Instance"], "orderBy": "name DESC", "readMask": "name,location" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
レスポンスの例
{ "results": [ { "name": "//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/instance-2-1", "location": "us-central1-a" }, { "name": "//compute.googleapis.com/projects/my-project/zones/us-central1-a/instances/instance-1", "location": "us-central1-a" } ] }
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 への認証を行うには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
その他の検索例
次のコードサンプルは、gcloud と REST の両方の特定の検索クエリを示しています。これは、独自の検索を構築する際に役立ちます。
プロジェクト内のすべてのリソース
次のサンプルは、my-project
プロジェクト内のすべてのリソースを検索する方法を示しています。
gcloud
gcloud asset search-all-resources \ --scope=projects/my-project \ --format="table(assetType.basename(), name.basename(), name.scope(projects).segment(0):label=PROJECT_ID, labels)"
REST
HTTP メソッドと URL:
GET https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
コマンドの例
curl(Linux、macOS、Cloud Shell)
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method GET ` -Headers $headers ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
Compute Engine インスタンス(説明別)
次のサンプルは、my-project
プロジェクトで名前が instance-prod
の Compute Engine インスタンスを検索する方法を示しています。
gcloud
gcloud asset search-all-resources \ --scope=projects/my-project \ --query="description=instance-prod" \ --asset-types=compute.googleapis.com/Instance \ --format="table(name, assetType, location)"
REST
HTTP メソッドと URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
JSON 本文のリクエスト:
{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "description=instance-prod", "readMask": "name,assetType,location" }
コマンドの例
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", "pageSize": 1, "query": "description=instance-prod", "readMask": "name,assetType,location" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "description=instance-prod", "readMask": "name,assetType,location" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
完全一致ではなく、名前に instance-prod
が含まれているインスタンス(instance-prod-1
や instance-prod-2
など)を検索するには、=instance-prod
を :instance-prod
に置き換えます。
Compute Engine インスタンス(ラベル別)
次のサンプルは、env
という名前のラベルを持つ my-project
プロジェクト内の Compute Engine インスタンスを検索する方法を示しています。
gcloud
gcloud asset search-all-resources \ --scope=projects/my-project \ --query="labels.env:*" \ --asset-types=compute.googleapis.com/Instance \ --format="table(name, assetType, labels)"
REST
HTTP メソッドと URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
JSON 本文のリクエスト:
{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "labels.env:*", "readMask": "name,assetType,labels" }
コマンドの例
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", "pageSize": 1, "query": "labels.env:*", "readMask": "name,assetType,labels" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "labels.env:*", "readMask": "name,assetType,labels" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
Compute Engine インスタンス(TagKey 別)
次のサンプルは、TagKey
でタグが直接適用されている my-project
プロジェクト内の Compute Engine インスタンスを検索する方法を示しています。env
を含む namespacedName
。
有効な TagKey で検索するには、tagKeys
を effectiveTagKeys
に置き換えます。
gcloud
gcloud asset search-all-resources \ --scope=projects/my-project \ --query="tagKeys:env" \ --asset-types=compute.googleapis.com/Instance \ --format="table(name, assetType, tags)"
REST
HTTP メソッドと URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
JSON 本文のリクエスト:
{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "tagKeys:env", "readMask": "name,assetType,tags" }
コマンドの例
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", "pageSize": 1, "query": "tagKeys:env", "readMask": "name,assetType,tags" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "tagKeys:env", "readMask": "name,assetType,tags" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
Compute Engine インスタンス(TagValue 別)
次のサンプルは、TagValue
のタグが直接添付されている my-project
プロジェクト内の Compute Engine インスタンスを検索する方法を示しています。namespacedName
には prod
または sea
が含まれ、インスタンス名に instance1
は含まれません。
有効な TagValues で検索するには、tagValues
を effectiveTagValues
に置き換えます。
gcloud
gcloud asset search-all-resources \ --scope=projects/my-project \ --query="tagValues:(prod OR sea) (NOT name:instance1)" \ --asset-types=compute.googleapis.com/Instance \ --format="table(name, assetType, tags)"
REST
HTTP メソッドと URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
JSON 本文のリクエスト:
{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "tagValues:(prod OR sea) (NOT name:instance1)", "readMask": "name,assetType,tags" }
コマンドの例
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", "pageSize": 1, "query": "tagValues:(prod OR sea) (NOT name:instance1)", "readMask": "name,assetType,tags" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "tagValues:(prod OR sea) (NOT name:instance1)", "readMask": "name,assetType,tags" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
特定の時刻よりも後に作成された Compute Engine インスタンス
次のサンプルは、2023 年 12 月 31 日より後に作成された my-project
プロジェクト内の Compute Engine インスタンスを検索する方法を示しています。
日時比較の詳細については、数値とタイムスタンプの比較をご覧ください。
gcloud
gcloud asset search-all-resources \ --scope=projects/my-project \ --query="createTime>2023-31-12" \ --asset-types=compute.googleapis.com/Instance \ --format="table(name, assetType, location)"
REST
HTTP メソッドと URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
JSON 本文のリクエスト:
{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "createTime>2023-31-12", "readMask": "name,assetType,location" }
コマンドの例
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", "pageSize": 1, "query": "createTime>2023-31-12", "readMask": "name,assetType,location" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "createTime>2023-31-12", "readMask": "name,assetType,location" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
米国内の Compute Engine インスタンス
次のサンプルは、米国にある my-project
プロジェクト内の Compute Engine インスタンスを検索する方法を示しています。
gcloud
gcloud asset search-all-resources \ --scope=projects/my-project \ --query="location:us-*" \ --asset-types=compute.googleapis.com/Instance \ --format="table(name, assetType, location)"
REST
HTTP メソッドと URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
JSON 本文のリクエスト:
{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "location:us-*", "readMask": "name,assetType,location" }
コマンドの例
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", "pageSize": 1, "query": "location:us-*", "readMask": "name,assetType,location" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "location:us-*", "readMask": "name,assetType,location" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
実行中の Compute Engine インスタンス
次のサンプルは、my-project
プロジェクトで実行されている Compute Engine インスタンスを検索する方法を示しています。
gcloud
gcloud asset search-all-resources \ --scope=projects/my-project \ --query="state=RUNNING" \ --asset-types=compute.googleapis.com/Instance \ --read-mask="name,assetType,location,versionedResources" \ --format="table(name, assetType, location, versionedResources)"
REST
HTTP メソッドと URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
JSON 本文のリクエスト:
{ "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "state=RUNNING", "readMask": "name,assetType,location,versionedResources" }
コマンドの例
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", "pageSize": 1, "query": "state=RUNNING", "readMask": "name,assetType,location,versionedResources" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "compute.googleapis.com/Instance", "pageSize": 1, "query": "state=RUNNING", "readMask": "name,assetType,location,versionedResources" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
IAM 拒否ポリシー
次のサンプルは、my-project
プロジェクトで IAM 拒否ポリシーを検索する方法を示しています。
gcloud
gcloud asset search-all-resources \ --scope=projects/my-project \ --asset-types=iam.googleapis.com/PolicyV2 \ --query="name:denypolicies"
REST
HTTP メソッドと URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
JSON 本文のリクエスト:
{ "assetTypes": "iam.googleapis.com/PolicyV2", "pageSize": 1, "query": "name:denypolicies" }
コマンドの例
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": "iam.googleapis.com/PolicyV2", "pageSize": 1, "query": "name:denypolicies" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "assetTypes": "iam.googleapis.com/PolicyV2", "pageSize": 1, "query": "name:denypolicies" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
実行されていない Compute Engine インスタンスを検索するには、state=RUNNING
を NOT state:running
に置き換えます。
関連する Google Cloud リソース
関係クエリは、Security Command Center Premium ティアと Enterprise ティアのサブスクライバーのみが使用できます。
次のサンプルは、サポートされている関係タイプで、my-project
プロジェクト内の関連リソースを検索する方法を示しています。たとえば、完全なリソース名に instance-group
が含まれているインスタンス グループに属するすべての Compute Engine インスタンスを検索します。
gcloud
gcloud asset search-all-resources \ --scope=projects/my-project \ --query="relationships:instance-group" \ --format="table(name, assetType, relationships)"
REST
HTTP メソッドと URL:
POST https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
JSON 本文のリクエスト:
{ "pageSize": 1, "query": "relationships:instance-group", "readMask": "name,assetType,relationships" }
コマンドの例
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 '{ "pageSize": 1, "query": "relationships:instance-group", "readMask": "name,assetType,relationships" }' \ https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources
PowerShell(Windows)
$cred = gcloud auth print-access-token $headers = @{ "X-HTTP-Method-Override" = "GET"; "Authorization" = "Bearer $cred" } $body = @" { "pageSize": 1, "query": "relationships:instance-group", "readMask": "name,assetType,relationships" } "@ Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -Body $body ` -Uri "https://cloudasset.googleapis.com/v1/projects/my-project:searchAllResources" | Select-Object -Expand Content
検索する関係の種類を指定することもできます。たとえば、INSTANCE_TO_INSTANCEGROUP
関係タイプを検索するには、クエリ relationships.INSTANCE_TO_INSTANCEGROUP
を使用します。instance-group
を含む完全なリソース名を持つその関係タイプを検索するには、クエリ relationships.INSTANCE_TO_INSTANCEGROUP:instance-group
を使用します。