アセットのクエリ

このトピックでは、データを BigQuery テーブルに最初にエクスポートすることなく、プロジェクト、フォルダ、または組織のアセットのメタデータをクエリする方法を説明します。

制限事項

始める前に

始める前に、次の手順を行います。

  1. API コマンドを実行するプロジェクトで Cloud Asset Inventory API を有効にします。

    Cloud Asset Inventory API を有効にする

  2. gcloud CLI または API を使用して Cloud Asset Inventory API を呼び出すために必要な権限を構成します。

  3. 環境を設定するには、次の手順を実行します。

    gcloud CLI

    gcloud CLI を使用して Cloud Asset Inventory API を呼び出すように環境を設定するには、ローカル クライアントに Google Cloud CLI をインストールします。

    REST

    curl コマンドで Cloud Asset Inventory API を呼び出すように環境を設定するには、次の手順を行います。

    1. curl コマンドにアクセスできるかを確認します。

    2. プロジェクト、フォルダ、組織で、次のいずれかのロールがアカウントに付与されていることを確認します。

      • Cloud Asset 閲覧者のロール(roles/cloudasset.viewer

      • オーナーの基本ロール(roles/owner

  4. あるプロジェクトから別のプロジェクトにメタデータをエクスポートする場合は、エクスポート元のプロジェクトのデフォルトの Cloud Asset Inventory サービス アカウントが存在し、適切な権限があることを確認してください。

権限

次の一覧に、リクエストの各 ContentType に必要な権限を示します。

コンテンツ タイプ 権限
gcloud 名 REST 名
access-policy ACCESS_POLICY cloudasset.assets.queryAccessPolicy
iam-policy IAM_POLICY cloudasset.assets.queryIamPolicy
os-inventory OS_INVENTORY cloudasset.assets.queryOSInventories
relationship RELATIONSHIP cloudasset.assets.queryResource
resource RESOURCE cloudasset.assets.queryResource

権限を構成するときに付与するロール(cloudasset.viewer または cloudasset.owner)に、これらの権限が含まれています。

クエリを書式設定する

Query Asset API では、クエリで BigQuery 標準 SQL 互換言語を使用する必要があります。

アセットのクエリを実行するときは、特定の形式で名前を指定する必要があります。たとえば、VM を検索するクエリは compute_googleapis_com_Instance をクエリします。 詳しくは、サポートされているアセットタイプをご覧ください。

クエリで使用される名前が変換され、/._ に置き換えられます(たとえば、compute.googleapis.com/Instancecompute_googleapis_com_Instance になります)。

データセット内のテーブル名は、アセットタイプ名に対応しています。content_typeRESOURCE ではないコンテンツの場合、テーブル名は大文字のコンテンツ タイプ(IAM_POLICYOS_INVENTORYACCESS_POLICY など)になります。

リソースタイプ間でリソース標準メタデータをクエリする場合、テーブル名は STANDARD_METADATA となります。サポートされるリソース メタデータには、リソースタイプに固有の resource.DATA を除くすべてのフィールドが含まれます。

さまざまなアセットで使用されるスキーマは、Google Cloud コンソールのアセット インベントリ ページで参照できます。

フィールド値のレスポンス形式

レスポンスの schema フィールドと rows フィールドは BigQuery のフィールドと類似しています。フィールド メタデータは、schema という名前の別の構造体に委任されます。この形式では、フィールド名と型の重複が回避されるため、非常に大きなレスポンスを圧縮できる場合があります。同じ理由で、fieldsvalue の代わりに値 fv が使用されます。

このサンプルは、page-size が 2 の指定されたタイプのすべてのアセットに対するクエリへのレスポンスを示しています。

{
  "jobReference": "CiBqb2JfTHhIQ2xCeXlJejc1bHdQSTRNZ3NEVndXU2o5QxIBARjLq-_g5fO5t1I",
  "done": true,
  "queryResult": {
    "rows": [
      {
        "f": [
          {
            "v": "//compute.googleapis.com/projects/PROJECT1/zones/us-central1-a/instances/INSTANCE1"
          },
          {
            "v": "compute.googleapis.com/Instance"
          }
        ]
      },
      {
        "f": [
          {
            "v": "//compute.googleapis.com/projects/PROJECT2/zones/us-central1-a/instances/INSTANCE2"
          },
          {
            "v": "compute.googleapis.com/Instance"
          }
        ]
      }
    ],
    "schema": {
      "fields": [
        {
          "field": "name",
          "type": "STRING",
          "mode": "NULLABLE",
          "fields": []
        },
        {
          "field": "assetType",
          "type": "STRING",
          "mode": "NULLABLE",
          "fields": []
        }
      ]
    },
    "nextPageToken": "BHKVJIOAPUAQAAASA4EAAEEAQCAAKGQIBABBB7X7777QOIFQVYKQ====",
    "totalRows": "11"
  }
}

Google Cloud コンソールでのクエリ

コンソール

プロジェクト、フォルダ、組織のアセット メタデータをクエリするには、次の手順を実行します。

  1. Google Cloud コンソールの [アセット インベントリ] ページに移動します。

    アセット インベントリに移動

  2. 検索の範囲を設定するには、プロジェクト、フォルダ、組織を選択します。

  3. [アセットクエリ] タブをクリックします。

  4. アセットのメタデータをクエリするには、サンプルクエリを使用するか、独自のクエリを作成します。

    • サンプルを使用するには、[クエリ ライブラリ] タブでエントリをクリックしてクエリをプレビューします。[適用] をクリックしてそのサンプルを [クエリを編集] ボックスにコピーし、クエリを編集するか、[実行] をクリックして実行します。

    • 独自のクエリを作成するには、[クエリを編集] ボックスにクエリテキストを直接入力し、[実行] をクリックして実行します。独自のクエリを簡単に作成するには、[テーブルを選択] ペインでテーブルをクリックして、スキーマとコンテンツをプレビューします。詳しくは、クエリ構文をご覧ください。

    クエリに一致するアセット メタデータが [クエリ結果] タブに表示されます。

  5. 省略可: クエリ結果セットを CSV 形式でダウンロードするには、[エクスポート] をクリックします。

    CSV ファイルの最大サイズは 2 MB です。ファイルサイズがこの制限を超え、ダウンロード リクエストが失敗した場合は、結果全体をエクスポートする手順を示すメッセージが表示されます。

クエリ結果を保存する

クエリ結果は、Query Assets API レスポンスとして返されます。結果を独自の BigQuery テーブルにエクスポートするには、リクエストで BigQuery の宛先を指定します。まだ作成していない場合は、リクエストを行う前に BigQuery データセットを作成する必要があります。

gcloud

プロジェクト

gcloud asset query \
    --project=PROJECT_ID \
    --billing-project=BILLING_PROJECT_ID \
    --statement="
      SELECT
        name, assetType
      FROM
        compute_googleapis_com_Instance
      LIMIT 2" \
    --bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
    --write-disposition="write-truncate"

次の値を指定します。

  • PROJECT_ID: メタデータをクエリするプロジェクトの ID。

  • BILLING_PROJECT_ID: 省略可。BigQuery への書き込み権限がある、デフォルトの Cloud Asset Inventory サービス エージェントが存在するプロジェクト ID。gcloud config set project で課金プロジェクトに切り替えている場合は不要です。詳細は、課金プロジェクトをお読みください

  • DATASET_ID: BigQuery データセットの ID。

  • TABLE_NAME: メタデータのエクスポート先のテーブル。存在しない場合は作成されます。

その他のフラグ:

  • --write-disposition: 書き込み処理の設定により、BigQuery の宛先テーブルまたはパーティションがすでに存在する場合に実施するアクションを指定します。次の値を使用できます。

    • write-truncate: テーブルまたはパーティションがすでに存在する場合、BigQuery はテーブル全体またはすべてのパーティション データを上書きします。

    • write-append: テーブルまたはパーティションがすでに存在する場合、BigQuery はデータをテーブルまたは最新のパーティションに追加します。

    • write-empty: テーブルがすでに存在し、データが格納されている場合は、ジョブ結果で duplicate エラーが返されます。

    デフォルト値は write-empty です。

フォルダ

gcloud asset query \
    --folder=FOLDER_ID \
    --billing-project=BILLING_PROJECT_ID \
    --statement="
      SELECT
        name, assetType
      FROM
        compute_googleapis_com_Instance
      LIMIT 2" \
    --bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
    --write-disposition="write-truncate"

次の値を指定します。

  • FOLDER_ID: メタデータをクエリするフォルダの ID。

    Google Cloud フォルダ ID を確認する方法

    Console

    Google Cloud フォルダ ID を確認するには、次の手順を行います。

    1. Google Cloud コンソールに移動します。

      Google Cloud コンソールに移動

    2. メニューバーの切り替えボックスをクリックします。
    3. [選択元] ボックスをクリックして、組織を選択します。
    4. フォルダ名を検索します。フォルダ 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: 省略可。BigQuery への書き込み権限がある、デフォルトの Cloud Asset Inventory サービス エージェントが存在するプロジェクト ID。gcloud config set project で課金プロジェクトに切り替えている場合は不要です。詳細は、課金プロジェクトをお読みください

  • PROJECT_ID: BigQuery テーブルが存在するプロジェクトの ID。

  • DATASET_ID: BigQuery データセットの ID。

  • TABLE_NAME: メタデータのエクスポート先のテーブル。存在しない場合は作成されます。

その他のフラグ:

  • --write-disposition: 書き込み処理の設定により、BigQuery の宛先テーブルまたはパーティションがすでに存在する場合に実施するアクションを指定します。次の値を使用できます。

    • write-truncate: テーブルまたはパーティションがすでに存在する場合、BigQuery はテーブル全体またはすべてのパーティション データを上書きします。

    • write-append: テーブルまたはパーティションがすでに存在する場合、BigQuery はデータをテーブルまたは最新のパーティションに追加します。

    • write-empty: テーブルがすでに存在し、データが格納されている場合は、ジョブ結果で duplicate エラーが返されます。

    デフォルト値は write-empty です。

組織

gcloud asset query \
    --organization=ORGANIZATION_ID \
    --billing-project=BILLING_PROJECT_ID \
    --statement="
      SELECT
        name, assetType
      FROM
        compute_googleapis_com_Instance
      LIMIT 2" \
    --bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
    --write-disposition="write-truncate"

次の値を指定します。

  • ORGANIZATION_ID: メタデータをクエリする組織の ID。

    Google Cloud 組織 ID を確認する方法

    Console

    Google Cloud 組織 ID を確認するには、次の手順を行います。

    1. Google Cloud コンソールに移動します。

      Google Cloud コンソールに移動

    2. メニューバーの切り替えボックスをクリックします。
    3. [選択元] ボックスをクリックして、組織を選択します。
    4. [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。

    gcloud CLI

    Google Cloud 組織 ID を取得するには、次のコマンドを使用します。

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

  • BILLING_PROJECT_ID: 省略可。BigQuery への書き込み権限がある、デフォルトの Cloud Asset Inventory サービス エージェントが存在するプロジェクト ID。gcloud config set project で課金プロジェクトに切り替えている場合は不要です。詳細は、課金プロジェクトをお読みください

  • PROJECT_ID: BigQuery テーブルが存在するプロジェクトの ID。

  • DATASET_ID: BigQuery データセットの ID。

  • TABLE_NAME: メタデータのエクスポート先のテーブル。存在しない場合は作成されます。

その他のフラグ:

  • --write-disposition: 書き込み処理の設定により、BigQuery の宛先テーブルまたはパーティションがすでに存在する場合に実施するアクションを指定します。次の値を使用できます。

    • write-truncate: テーブルまたはパーティションがすでに存在する場合、BigQuery はテーブル全体またはすべてのパーティション データを上書きします。

    • write-append: テーブルまたはパーティションがすでに存在する場合、BigQuery はデータをテーブルまたは最新のパーティションに追加します。

    • write-empty: テーブルがすでに存在し、データが格納されている場合は、ジョブ結果で duplicate エラーが返されます。

    デフォルト値は write-empty です。

以下は、クエリ結果を指定された BigQuery 宛先テーブルに保存する正常なリクエストに対するレスポンスの例です。

done: true
jobReference: CiBqb2JfMkpzOERxN2l5RnRKeWJQRksxWUlmYkxWNTUzbhIBARixoYOcs9T_qcgB
outputConfig:
  bigqueryDestination:
    dataset: projects/test-project/datasets/my_dataset
    table: my-table
    writeDisposition: write-truncate

クエリ結果の保存に失敗したジョブのレスポンスの例を次に示します。

done: true
error:
  code: 9
  message: '1 errors encountered during query: notFound'
jobReference: CiBqb2JfZWlmOUNsVFQ3b05hVzhpYkdVZ291dkZXc1VFXxIBARj73sbsmLmE1BggAQ

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 '{
          "statement": "
            SELECT
              name, assetType
            FROM
              compute_googleapis_com_Instance
            LIMIT 2",
          "outputConfig": {
            "bigqueryDestination": {
              "dataset": "projects/PROJECT_ID/datasets/DATASET_ID",
              "table": "TABLE_NAME",
              "writeDisposition": "WRITE_TRUNCATE"
            }
          }
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:queryAssets

次の値を指定します。

  • BILLING_PROJECT_ID: デフォルトの Cloud Asset Inventory サービス エージェントが存在する、BigQuery のデータセットとテーブルを管理する権限を持つプロジェクト ID。詳細は、課金プロジェクトをお読みください

  • PROJECT_ID: BigQuery テーブルが存在するプロジェクトの ID。

  • DATASET_ID: BigQuery データセットの ID。

  • TABLE_NAME: メタデータのエクスポート先のテーブル。存在しない場合は作成されます。

  • SCOPE: プロジェクト、フォルダ、組織がスコープになります。

    使用できる値は次のとおりです。

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Google Cloud プロジェクト番号を確認する方法

      Console

      Google Cloud プロジェクト番号を確認するには、次の手順を行います。

      1. Google Cloud コンソールの [ダッシュボード] ページに移動します。

        ダッシュボードに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスで組織を選択し、プロジェクト名を検索します。
      4. プロジェクト名をクリックして、そのプロジェクトに切り替えます。プロジェクト番号が [プロジェクト情報] カードに表示されます。

      gcloud CLI

      Google Cloud プロジェクト番号を取得するには、次のコマンドを使用します。

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Google Cloud フォルダ ID を確認する方法

      Console

      Google Cloud フォルダ ID を確認するには、次の手順を行います。

      1. Google Cloud コンソールに移動します。

        Google Cloud コンソールに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスをクリックして、組織を選択します。
      4. フォルダ名を検索します。フォルダ 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 を確認するには、次の手順を行います。

      1. Google Cloud コンソールに移動します。

        Google Cloud コンソールに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスをクリックして、組織を選択します。
      4. [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。

      gcloud CLI

      Google Cloud 組織 ID を取得するには、次のコマンドを使用します。

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

他のパラメータ:

  • writeDisposition: 書き込み処理の設定により、BigQuery の宛先テーブルまたはパーティションがすでに存在する場合に実施するアクションを指定します。次の値を使用できます。

    • WRITE_TRUNCATE: テーブルまたはパーティションがすでに存在する場合、BigQuery はテーブル全体またはすべてのパーティション データを上書きします。

    • WRITE_APPEND: テーブルまたはパーティションがすでに存在する場合、BigQuery はデータをテーブルまたは最新のパーティションに追加します。

    • WRITE_EMPTY: テーブルがすでに存在し、データが格納されている場合は、ジョブ結果で duplicate エラーが返されます。

    デフォルト値は WRITE_EMPTY です。

以下は、クエリ結果を指定された BigQuery 宛先テーブルに保存する正常なリクエストに対するレスポンスの例です。

{
  "jobReference": "CiBqb2JfZmNlbTZ5SjVZcHFKajVIYjMycFNSd2xSRlZXdBIBARiAnb6R1I63wdkB",
  "done": true,
  "outputConfig": {
    "bigqueryDestination": {
      "dataset": "projects/test-project/datasets/my_dataset",
      "table": "my-table",
      "writeDisposition": "WRITE_TRUNCATE"
    }
  }
}

クエリ結果の保存に失敗したジョブのレスポンスの例を次に示します。

{
  "jobReference": "CiBqb2JfZWlmOUNsVFQ3b05hVzhpYkdVZ291dkZXc1VFXxIBARj73sbsmLmE1BggAQ",
  "done": true,
  "error": {
    "code": 9,
    "message": "1 errors encountered during query: notFound"
  }
}

スキーマと行は、クエリ レスポンスでは直接返されません。それらは指定した BigQuery 宛先テーブルで表示できます。

サンプルクエリ

アセットをクエリする

次の例では、プロジェクト、フォルダ、組織内のアセットをクエリします。

gcloud

プロジェクト

gcloud asset query \
    --project=PROJECT_ID \
    --statement="
      SELECT
        name, assetType
      FROM
        compute_googleapis_com_Instance
      LIMIT 2"

次の値を指定します。

  • PROJECT_ID: メタデータをクエリするプロジェクトの ID。

フォルダ

gcloud asset query \
    --folder=FOLDER_ID \
    --statement="
      SELECT
        name, assetType
      FROM
        compute_googleapis_com_Instance
      LIMIT 2"

次の値を指定します。

  • FOLDER_ID: メタデータをクエリするフォルダの ID。

    Google Cloud フォルダ ID を確認する方法

    Console

    Google Cloud フォルダ ID を確認するには、次の手順を行います。

    1. Google Cloud コンソールに移動します。

      Google Cloud コンソールに移動

    2. メニューバーの切り替えボックスをクリックします。
    3. [選択元] ボックスをクリックして、組織を選択します。
    4. フォルダ名を検索します。フォルダ 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

組織

gcloud asset query \
    --organization=ORGANIZATION_ID \
    --statement="
      SELECT
        name, assetType
      FROM
        compute_googleapis_com_Instance
      LIMIT 2"

次の値を指定します。

  • ORGANIZATION_ID: メタデータをクエリする組織の ID。

    Google Cloud 組織 ID を確認する方法

    Console

    Google Cloud 組織 ID を確認するには、次の手順を行います。

    1. Google Cloud コンソールに移動します。

      Google Cloud コンソールに移動

    2. メニューバーの切り替えボックスをクリックします。
    3. [選択元] ボックスをクリックして、組織を選択します。
    4. [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。

    gcloud CLI

    Google Cloud 組織 ID を取得するには、次のコマンドを使用します。

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

以下は、すべての行を返す正常なリクエストに対するレスポンスの例です。

done: true
jobReference: CiBqb2JfMkpzOERxN2l5RnRKeWJQRksxWUlmYkxWNTUzbhIBARixoYOcs9T_qcgB
queryResult:
  nextPageToken: ''
  totalRows: '2'

name: //compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/VM_INSTANCE_NAME
assetType: compute.googleapis.com/Instance

name: //compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/VM_INSTANCE_NAME
assetType; compute.googleapis.com/Instance

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 '{
      "statement": "
        SELECT
          name, assetType
        FROM
          compute_googleapis_com_Instance
        LIMIT 2" }' \
     https://cloudasset.googleapis.com/v1/SCOPE:queryAssets

次の値を指定します。

  • SCOPE: プロジェクト、フォルダ、組織がスコープになります。

    使用できる値は次のとおりです。

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Google Cloud プロジェクト番号を確認する方法

      Console

      Google Cloud プロジェクト番号を確認するには、次の手順を行います。

      1. Google Cloud コンソールの [ダッシュボード] ページに移動します。

        ダッシュボードに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスで組織を選択し、プロジェクト名を検索します。
      4. プロジェクト名をクリックして、そのプロジェクトに切り替えます。プロジェクト番号が [プロジェクト情報] カードに表示されます。

      gcloud CLI

      Google Cloud プロジェクト番号を取得するには、次のコマンドを使用します。

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Google Cloud フォルダ ID を確認する方法

      Console

      Google Cloud フォルダ ID を確認するには、次の手順を行います。

      1. Google Cloud コンソールに移動します。

        Google Cloud コンソールに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスをクリックして、組織を選択します。
      4. フォルダ名を検索します。フォルダ 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 を確認するには、次の手順を行います。

      1. Google Cloud コンソールに移動します。

        Google Cloud コンソールに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスをクリックして、組織を選択します。
      4. [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。

      gcloud CLI

      Google Cloud 組織 ID を取得するには、次のコマンドを使用します。

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

以下は、すべての行を返す正常なリクエストに対するレスポンスの例です。

{
  "jobReference": "CiBqb2JfZmNlbTZ5SjVZcHFKajVIYjMycFNSd2xSRlZXdBIBARiAnb6R1I63wdkB",
  "done": true,
  "queryResult": {
    "rows": [...],
    "schema": {...},
    "nextPageToken": "",
    "totalRows": "2"
  }
}

読みやすくするために、スキーマと行は削除してあります。それらはフィールド値レスポンス形式で表示できます。

リソースタイプ間でリソース標準メタデータをクエリする

次の例では、特定のリージョン内のすべてのリソースタイプでリソース標準メタデータ フィールド nameassetTypeクエリします。

gcloud

プロジェクト

gcloud asset query \
    --project=PROJECT_ID \
    --statement="
      SELECT
        name,
        assetType
      FROM
        STANDARD_METADATA
      WHERE
        resource.location LIKE '%asia%'"

次の値を指定します。

  • PROJECT_ID: メタデータをクエリするプロジェクトの ID。

フォルダ

gcloud asset query \
    --folder=FOLDER_ID \
    --statement="
      SELECT
        name,
        assetType
      FROM
        STANDARD_METADATA
      WHERE
        resource.location LIKE '%asia%'"

次の値を指定します。

  • FOLDER_ID: メタデータをクエリするフォルダの ID。

    Google Cloud フォルダ ID を確認する方法

    Console

    Google Cloud フォルダ ID を確認するには、次の手順を行います。

    1. Google Cloud コンソールに移動します。

      Google Cloud コンソールに移動

    2. メニューバーの切り替えボックスをクリックします。
    3. [選択元] ボックスをクリックして、組織を選択します。
    4. フォルダ名を検索します。フォルダ 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

組織

gcloud asset query \
    --organization=ORGANIZATION_ID \
    --statement="
      SELECT
        name,
        assetType
      FROM
        STANDARD_METADATA
      WHERE
        resource.location LIKE '%asia%'"

次の値を指定します。

  • ORGANIZATION_ID: メタデータをクエリする組織の ID。

    Google Cloud 組織 ID を確認する方法

    Console

    Google Cloud 組織 ID を確認するには、次の手順を行います。

    1. Google Cloud コンソールに移動します。

      Google Cloud コンソールに移動

    2. メニューバーの切り替えボックスをクリックします。
    3. [選択元] ボックスをクリックして、組織を選択します。
    4. [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。

    gcloud CLI

    Google Cloud 組織 ID を取得するには、次のコマンドを使用します。

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

REST

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "statement": "
            SELECT
              name,
              assetType
            FROM
              STANDARD_METADATA
            WHERE
              resource.location LIKE \"%asia%\""
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:queryAssets

次の値を指定します。

  • SCOPE: プロジェクト、フォルダ、組織がスコープになります。

    使用できる値は次のとおりです。

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Google Cloud プロジェクト番号を確認する方法

      Console

      Google Cloud プロジェクト番号を確認するには、次の手順を行います。

      1. Google Cloud コンソールの [ダッシュボード] ページに移動します。

        ダッシュボードに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスで組織を選択し、プロジェクト名を検索します。
      4. プロジェクト名をクリックして、そのプロジェクトに切り替えます。プロジェクト番号が [プロジェクト情報] カードに表示されます。

      gcloud CLI

      Google Cloud プロジェクト番号を取得するには、次のコマンドを使用します。

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Google Cloud フォルダ ID を確認する方法

      Console

      Google Cloud フォルダ ID を確認するには、次の手順を行います。

      1. Google Cloud コンソールに移動します。

        Google Cloud コンソールに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスをクリックして、組織を選択します。
      4. フォルダ名を検索します。フォルダ 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 を確認するには、次の手順を行います。

      1. Google Cloud コンソールに移動します。

        Google Cloud コンソールに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスをクリックして、組織を選択します。
      4. [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。

      gcloud CLI

      Google Cloud 組織 ID を取得するには、次のコマンドを使用します。

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

ジョブ参照による非同期でのレスポンスの取得

タイムアウトする次のコマンドを実行します。

gcloud

プロジェクト

gcloud asset query \
    --project=PROJECT_ID \
    --timeout="1s" \
    --statement="
    SELECT
      name, assetType
    FROM
      compute_googleapis_com_Instance";

次の値を指定します。

  • PROJECT_ID: メタデータをクエリするプロジェクトの ID。

リクエストが時間内に完了しない場合、その done フィールドは false に設定されます。これは、リクエストが時間内に完了せず、処理中であることを意味します。次のサンプルは、リクエストの処理が完了していないことを表すレスポンスを示しています。

done: false
job_reference: "JOB_REFERENCE_ID"

このジョブ参照 ID を使用して、後で別の API 呼び出しによって結果を非同期で取得できます。

gcloud asset query \
    --project=PROJECT_ID \
    --job-reference=JOB_REFERENCE_ID

フォルダ

gcloud asset query \
    --folder=FOLDER_ID \
    --timeout="1s" \
    --statement="
    SELECT
      name, assetType
    FROM
      compute_googleapis_com_Instance";

次の値を指定します。

  • FOLDER_ID: メタデータをクエリするフォルダの ID。

    Google Cloud フォルダ ID を確認する方法

    Console

    Google Cloud フォルダ ID を確認するには、次の手順を行います。

    1. Google Cloud コンソールに移動します。

      Google Cloud コンソールに移動

    2. メニューバーの切り替えボックスをクリックします。
    3. [選択元] ボックスをクリックして、組織を選択します。
    4. フォルダ名を検索します。フォルダ 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

リクエストが時間内に完了しない場合、その done フィールドは false に設定されます。これは、リクエストが時間内に完了せず、処理中であることを意味します。次のサンプルは、リクエストの処理が完了していないことを表すレスポンスを示しています。

done: false
job_reference: "JOB_REFERENCE_ID"

このジョブ参照 ID を使用して、後で別の API 呼び出しによって結果を非同期で取得できます。

gcloud asset query \
    --folder=FOLDER_ID \
    --job-reference=JOB_REFERENCE_ID

組織

gcloud asset query \
    --organization=ORGANIZATION_ID \
    --timeout="1s" \
    --statement="
    SELECT
      name, assetType
    FROM
      compute_googleapis_com_Instance";

次の値を指定します。

  • ORGANIZATION_ID: メタデータをクエリする組織の ID。

    Google Cloud 組織 ID を確認する方法

    Console

    Google Cloud 組織 ID を確認するには、次の手順を行います。

    1. Google Cloud コンソールに移動します。

      Google Cloud コンソールに移動

    2. メニューバーの切り替えボックスをクリックします。
    3. [選択元] ボックスをクリックして、組織を選択します。
    4. [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。

    gcloud CLI

    Google Cloud 組織 ID を取得するには、次のコマンドを使用します。

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

リクエストが時間内に完了しない場合、その done フィールドは false に設定されます。これは、リクエストが時間内に完了せず、処理中であることを意味します。次のサンプルは、リクエストの処理が完了していないことを表すレスポンスを示しています。

done: false
job_reference: "JOB_REFERENCE_ID"

このジョブ参照 ID を使用して、後で別の API 呼び出しによって結果を非同期で取得できます。

gcloud asset query \
    --organization=ORGANIZATION_ID \
    --job-reference=JOB_REFERENCE_ID

REST

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "timeout": "1s",
          "statement": "
            SELECT
              name, assetType
            FROM
              compute_googleapis_com_Instance"
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:queryAssets

次の値を指定します。

  • SCOPE: プロジェクト、フォルダ、組織がスコープになります。

    使用できる値は次のとおりです。

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Google Cloud プロジェクト番号を確認する方法

      Console

      Google Cloud プロジェクト番号を確認するには、次の手順を行います。

      1. Google Cloud コンソールの [ダッシュボード] ページに移動します。

        ダッシュボードに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスで組織を選択し、プロジェクト名を検索します。
      4. プロジェクト名をクリックして、そのプロジェクトに切り替えます。プロジェクト番号が [プロジェクト情報] カードに表示されます。

      gcloud CLI

      Google Cloud プロジェクト番号を取得するには、次のコマンドを使用します。

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Google Cloud フォルダ ID を確認する方法

      Console

      Google Cloud フォルダ ID を確認するには、次の手順を行います。

      1. Google Cloud コンソールに移動します。

        Google Cloud コンソールに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスをクリックして、組織を選択します。
      4. フォルダ名を検索します。フォルダ 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 を確認するには、次の手順を行います。

      1. Google Cloud コンソールに移動します。

        Google Cloud コンソールに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスをクリックして、組織を選択します。
      4. [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。

      gcloud CLI

      Google Cloud 組織 ID を取得するには、次のコマンドを使用します。

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

リクエストが時間内に完了しない場合、その done フィールドは false に設定されます。これは、リクエストが時間内に完了せず、処理中であることを意味します。次のサンプルは、リクエストの処理が完了していないことを表すレスポンスを示しています。

{
  "jobReference": "JOB_REFERENCE_ID",
  "done": false,
  "queryResult": {
    "rows": [],
    "schema": {
      "fields": []
    },
    "nextPageToken": "",
    "totalRows": "0"
  }
}

このジョブ参照 ID を使用して、後で別の API 呼び出しによって結果を非同期で取得できます。

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "jobReference": "JOB_REFERENCE_ID"
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:queryAssets

ページ分けされたリクエストの結果の次のページを REST API で取得する

次のクエリを実行し、pageSize1 に設定します。

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "pageSize": "1",
          "statement": "
            SELECT
              name, assetType
            FROM
              compute_googleapis_com_Instance"
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:queryAssets

次の値を指定します。

  • SCOPE: プロジェクト、フォルダ、組織がスコープになります。

    使用できる値は次のとおりです。

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Google Cloud プロジェクト番号を確認する方法

      Console

      Google Cloud プロジェクト番号を確認するには、次の手順を行います。

      1. Google Cloud コンソールの [ダッシュボード] ページに移動します。

        ダッシュボードに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスで組織を選択し、プロジェクト名を検索します。
      4. プロジェクト名をクリックして、そのプロジェクトに切り替えます。プロジェクト番号が [プロジェクト情報] カードに表示されます。

      gcloud CLI

      Google Cloud プロジェクト番号を取得するには、次のコマンドを使用します。

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Google Cloud フォルダ ID を確認する方法

      Console

      Google Cloud フォルダ ID を確認するには、次の手順を行います。

      1. Google Cloud コンソールに移動します。

        Google Cloud コンソールに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスをクリックして、組織を選択します。
      4. フォルダ名を検索します。フォルダ 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 を確認するには、次の手順を行います。

      1. Google Cloud コンソールに移動します。

        Google Cloud コンソールに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスをクリックして、組織を選択します。
      4. [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。

      gcloud CLI

      Google Cloud 組織 ID を取得するには、次のコマンドを使用します。

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

他のパラメータ:

  • pageSize: ページごとに一覧表示するリソースの最大数。

レスポンスには jobReference を使用してリクエストで設定できる nextPageToken があり、レスポンスの次のページを取得します。

{
  "jobReference": "JOB_REFERENCE_ID",
  "done": true,
  "queryResult": {
    "rows": [ ... ],
    "schema": { ... },
    "nextPageToken": "NEXT_PAGE_TOKEN",
    "totalRows": "11"
  }
}

読みやすくするために、スキーマと行は削除してあります。それらはフィールド値レスポンス形式で表示できます。

ページトークンを参照すると、結果の次のページを取得できます。

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "jobReference": "JOB_REFERENCE_ID",
          "pageToken": "NEXT_PAGE_TOKEN"
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:queryAssets

各リージョンにある VM の数をクエリする

gcloud

プロジェクト

gcloud asset query \
    --project=PROJECT_ID \
    --statement="
      SELECT
        resource.location,
        COUNT(*)
      FROM
        compute_googleapis_com_Instance
      GROUP BY
        resource.location"

次の値を指定します。

  • PROJECT_ID: メタデータをクエリするプロジェクトの ID。

フォルダ

gcloud asset query \
    --folder=FOLDER_ID \
    --statement="
      SELECT
        resource.location,
        COUNT(*)
      FROM
        compute_googleapis_com_Instance
      GROUP BY
        resource.location"

次の値を指定します。

  • FOLDER_ID: メタデータをクエリするフォルダの ID。

    Google Cloud フォルダ ID を確認する方法

    Console

    Google Cloud フォルダ ID を確認するには、次の手順を行います。

    1. Google Cloud コンソールに移動します。

      Google Cloud コンソールに移動

    2. メニューバーの切り替えボックスをクリックします。
    3. [選択元] ボックスをクリックして、組織を選択します。
    4. フォルダ名を検索します。フォルダ 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

組織

gcloud asset query \
    --organization=ORGANIZATION_ID \
    --statement="
      SELECT
        resource.location,
        COUNT(*)
      FROM
        compute_googleapis_com_Instance
      GROUP BY
        resource.location"

次の値を指定します。

  • ORGANIZATION_ID: メタデータをクエリする組織の ID。

    Google Cloud 組織 ID を確認する方法

    Console

    Google Cloud 組織 ID を確認するには、次の手順を行います。

    1. Google Cloud コンソールに移動します。

      Google Cloud コンソールに移動

    2. メニューバーの切り替えボックスをクリックします。
    3. [選択元] ボックスをクリックして、組織を選択します。
    4. [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。

    gcloud CLI

    Google Cloud 組織 ID を取得するには、次のコマンドを使用します。

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

REST

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "statement": "
            SELECT
              resource.location,
              COUNT(*)
            FROM
              compute_googleapis_com_Instance
            GROUP BY
              resource.location"
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:queryAssets

次の値を指定します。

  • SCOPE: プロジェクト、フォルダ、組織がスコープになります。

    使用できる値は次のとおりです。

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Google Cloud プロジェクト番号を確認する方法

      Console

      Google Cloud プロジェクト番号を確認するには、次の手順を行います。

      1. Google Cloud コンソールの [ダッシュボード] ページに移動します。

        ダッシュボードに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスで組織を選択し、プロジェクト名を検索します。
      4. プロジェクト名をクリックして、そのプロジェクトに切り替えます。プロジェクト番号が [プロジェクト情報] カードに表示されます。

      gcloud CLI

      Google Cloud プロジェクト番号を取得するには、次のコマンドを使用します。

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Google Cloud フォルダ ID を確認する方法

      Console

      Google Cloud フォルダ ID を確認するには、次の手順を行います。

      1. Google Cloud コンソールに移動します。

        Google Cloud コンソールに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスをクリックして、組織を選択します。
      4. フォルダ名を検索します。フォルダ 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 を確認するには、次の手順を行います。

      1. Google Cloud コンソールに移動します。

        Google Cloud コンソールに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスをクリックして、組織を選択します。
      4. [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。

      gcloud CLI

      Google Cloud 組織 ID を取得するには、次のコマンドを使用します。

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

クエリを実行して、特定のリージョンの VM を識別する

gcloud

プロジェクト

gcloud asset query \
    --project=PROJECT_ID \
    --statement="
      SELECT
        name,
        resource.DATA.creationTimestamp
      FROM
        compute_googleapis_com_Instance
      WHERE
        resource.location LIKE '%asia%'"

次の値を指定します。

  • PROJECT_ID: メタデータをクエリするプロジェクトの ID。

フォルダ

gcloud asset query \
    --folder=FOLDER_ID \
    --statement="
      SELECT
        name,
        resource.DATA.creationTimestamp
      FROM
        compute_googleapis_com_Instance
      WHERE
        resource.location LIKE '%asia%'"

次の値を指定します。

  • FOLDER_ID: メタデータをクエリするフォルダの ID。

    Google Cloud フォルダ ID を確認する方法

    Console

    Google Cloud フォルダ ID を確認するには、次の手順を行います。

    1. Google Cloud コンソールに移動します。

      Google Cloud コンソールに移動

    2. メニューバーの切り替えボックスをクリックします。
    3. [選択元] ボックスをクリックして、組織を選択します。
    4. フォルダ名を検索します。フォルダ 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

組織

gcloud asset query \
    --organization=ORGANIZATION_ID \
    --statement="
      SELECT
        name,
        resource.DATA.creationTimestamp
      FROM
        compute_googleapis_com_Instance
      WHERE
        resource.location LIKE '%asia%'"

次の値を指定します。

  • ORGANIZATION_ID: メタデータをクエリする組織の ID。

    Google Cloud 組織 ID を確認する方法

    Console

    Google Cloud 組織 ID を確認するには、次の手順を行います。

    1. Google Cloud コンソールに移動します。

      Google Cloud コンソールに移動

    2. メニューバーの切り替えボックスをクリックします。
    3. [選択元] ボックスをクリックして、組織を選択します。
    4. [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。

    gcloud CLI

    Google Cloud 組織 ID を取得するには、次のコマンドを使用します。

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

REST

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "statement": "
            SELECT
              name,
              resource.DATA.creationTimestamp
            FROM
              compute_googleapis_com_Instance
            WHERE
              resource.location LIKE \"%asia%\""
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:queryAssets

次の値を指定します。

  • SCOPE: プロジェクト、フォルダ、組織がスコープになります。

    使用できる値は次のとおりです。

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Google Cloud プロジェクト番号を確認する方法

      Console

      Google Cloud プロジェクト番号を確認するには、次の手順を行います。

      1. Google Cloud コンソールの [ダッシュボード] ページに移動します。

        ダッシュボードに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスで組織を選択し、プロジェクト名を検索します。
      4. プロジェクト名をクリックして、そのプロジェクトに切り替えます。プロジェクト番号が [プロジェクト情報] カードに表示されます。

      gcloud CLI

      Google Cloud プロジェクト番号を取得するには、次のコマンドを使用します。

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Google Cloud フォルダ ID を確認する方法

      Console

      Google Cloud フォルダ ID を確認するには、次の手順を行います。

      1. Google Cloud コンソールに移動します。

        Google Cloud コンソールに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスをクリックして、組織を選択します。
      4. フォルダ名を検索します。フォルダ 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 を確認するには、次の手順を行います。

      1. Google Cloud コンソールに移動します。

        Google Cloud コンソールに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスをクリックして、組織を選択します。
      4. [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。

      gcloud CLI

      Google Cloud 組織 ID を取得するには、次のコマンドを使用します。

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

クエリを実行して、一般公開されているすべてのアクセス可能な Google Cloud Storage バケットを特定する

gcloud

プロジェクト

gcloud asset query \
    --project=PROJECT_ID \
    --statement="
      SELECT
        name
      FROM
        IAM_POLICY
      CROSS JOIN
        UNNEST(iamPolicy.bindings) AS binding
      WHERE
        ('allUsers' IN UNNEST(binding.members)
        OR 'allAuthenticatedUsers' IN UNNEST(binding.members))
        AND assetType = 'storage.googleapis.com/Bucket'"

次の値を指定します。

  • PROJECT_ID: メタデータをクエリするプロジェクトの ID。

フォルダ

gcloud asset query \
    --folder=FOLDER_ID \
    --statement="
      SELECT
        name
      FROM
        IAM_POLICY
      CROSS JOIN
        UNNEST(iamPolicy.bindings) AS binding
      WHERE
        ('allUsers' IN UNNEST(binding.members)
        OR 'allAuthenticatedUsers' IN UNNEST(binding.members))
        AND assetType = 'storage.googleapis.com/Bucket'"

次の値を指定します。

  • FOLDER_ID: メタデータをクエリするフォルダの ID。

    Google Cloud フォルダ ID を確認する方法

    Console

    Google Cloud フォルダ ID を確認するには、次の手順を行います。

    1. Google Cloud コンソールに移動します。

      Google Cloud コンソールに移動

    2. メニューバーの切り替えボックスをクリックします。
    3. [選択元] ボックスをクリックして、組織を選択します。
    4. フォルダ名を検索します。フォルダ 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

組織

gcloud asset query \
    --organization=ORGANIZATION_ID \
    --statement="
      SELECT
        name
      FROM
        IAM_POLICY
      CROSS JOIN
        UNNEST(iamPolicy.bindings) AS binding
      WHERE
        ('allUsers' IN UNNEST(binding.members)
        OR 'allAuthenticatedUsers' IN UNNEST(binding.members))
        AND assetType = 'storage.googleapis.com/Bucket'"

次の値を指定します。

  • ORGANIZATION_ID: メタデータをクエリする組織の ID。

    Google Cloud 組織 ID を確認する方法

    Console

    Google Cloud 組織 ID を確認するには、次の手順を行います。

    1. Google Cloud コンソールに移動します。

      Google Cloud コンソールに移動

    2. メニューバーの切り替えボックスをクリックします。
    3. [選択元] ボックスをクリックして、組織を選択します。
    4. [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。

    gcloud CLI

    Google Cloud 組織 ID を取得するには、次のコマンドを使用します。

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

REST

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "statement": "
            SELECT
              name
            FROM
              IAM_POLICY
            CROSS JOIN
              UNNEST(iamPolicy.bindings) AS binding
            WHERE
              (\"allUsers\" IN UNNEST(binding.members)
              OR \"allAuthenticatedUsers\" IN UNNEST(binding.members))
              AND assetType = \"storage.googleapis.com/Bucket\""
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:queryAssets

次の値を指定します。

  • SCOPE: プロジェクト、フォルダ、組織がスコープになります。

    使用できる値は次のとおりです。

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Google Cloud プロジェクト番号を確認する方法

      Console

      Google Cloud プロジェクト番号を確認するには、次の手順を行います。

      1. Google Cloud コンソールの [ダッシュボード] ページに移動します。

        ダッシュボードに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスで組織を選択し、プロジェクト名を検索します。
      4. プロジェクト名をクリックして、そのプロジェクトに切り替えます。プロジェクト番号が [プロジェクト情報] カードに表示されます。

      gcloud CLI

      Google Cloud プロジェクト番号を取得するには、次のコマンドを使用します。

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Google Cloud フォルダ ID を確認する方法

      Console

      Google Cloud フォルダ ID を確認するには、次の手順を行います。

      1. Google Cloud コンソールに移動します。

        Google Cloud コンソールに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスをクリックして、組織を選択します。
      4. フォルダ名を検索します。フォルダ 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 を確認するには、次の手順を行います。

      1. Google Cloud コンソールに移動します。

        Google Cloud コンソールに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスをクリックして、組織を選択します。
      4. [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。

      gcloud CLI

      Google Cloud 組織 ID を取得するには、次のコマンドを使用します。

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

クエリを実行して、VM がアタッチされていないサブネットワークを見つける

gcloud

プロジェクト

gcloud asset query \
    --project=PROJECT_ID \
    --statement="
      SELECT
        subnetwork_table.name
      FROM
        compute_googleapis_com_Subnetwork AS subnetwork_table
      LEFT JOIN (
        SELECT
          interface.subnetwork AS subnetwork
        FROM
          compute_googleapis_com_Instance
        CROSS JOIN
          UNNEST(resource.DATA.networkInterfaces) AS interface) AS instance_table
      ON
        SUBSTR(subnetwork_table.name, 25) = SUBSTR(instance_table.subnetwork,38)
      WHERE
        instance_table.subnetwork IS NULL
        AND NOT subnetwork_table.name LIKE '%default%'"

次の値を指定します。

  • PROJECT_ID: メタデータをクエリするプロジェクトの ID。

フォルダ

gcloud asset query \
    --folder=FOLDER_ID \
    --statement="
      SELECT
        subnetwork_table.name
      FROM
        compute_googleapis_com_Subnetwork AS subnetwork_table
      LEFT JOIN (
        SELECT
          interface.subnetwork AS subnetwork
        FROM
          compute_googleapis_com_Instance
        CROSS JOIN
          UNNEST(resource.DATA.networkInterfaces) AS interface) AS instance_table
      ON
        SUBSTR(subnetwork_table.name, 25) = SUBSTR(instance_table.subnetwork,38)
      WHERE
        instance_table.subnetwork IS NULL
        AND NOT subnetwork_table.name LIKE '%default%'"

次の値を指定します。

  • FOLDER_ID: メタデータをクエリするフォルダの ID。

    Google Cloud フォルダ ID を確認する方法

    Console

    Google Cloud フォルダ ID を確認するには、次の手順を行います。

    1. Google Cloud コンソールに移動します。

      Google Cloud コンソールに移動

    2. メニューバーの切り替えボックスをクリックします。
    3. [選択元] ボックスをクリックして、組織を選択します。
    4. フォルダ名を検索します。フォルダ 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

組織

gcloud asset query \
    --organization=ORGANIZATION_ID \
    --statement="
      SELECT
        subnetwork_table.name
      FROM
        compute_googleapis_com_Subnetwork AS subnetwork_table
      LEFT JOIN (
        SELECT
          interface.subnetwork AS subnetwork
        FROM
          compute_googleapis_com_Instance
        CROSS JOIN
          UNNEST(resource.DATA.networkInterfaces) AS interface) AS instance_table
      ON
        SUBSTR(subnetwork_table.name, 25) = SUBSTR(instance_table.subnetwork,38)
      WHERE
        instance_table.subnetwork IS NULL
        AND NOT subnetwork_table.name LIKE '%default%'"

次の値を指定します。

  • ORGANIZATION_ID: メタデータをクエリする組織の ID。

    Google Cloud 組織 ID を確認する方法

    Console

    Google Cloud 組織 ID を確認するには、次の手順を行います。

    1. Google Cloud コンソールに移動します。

      Google Cloud コンソールに移動

    2. メニューバーの切り替えボックスをクリックします。
    3. [選択元] ボックスをクリックして、組織を選択します。
    4. [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。

    gcloud CLI

    Google Cloud 組織 ID を取得するには、次のコマンドを使用します。

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

REST

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "statement": "
            SELECT
              subnetwork_table.name
            FROM
              compute_googleapis_com_Subnetwork AS subnetwork_table
            LEFT JOIN (
              SELECT
                interface.subnetwork AS subnetwork
              FROM
                compute_googleapis_com_Instance
              CROSS JOIN
                UNNEST(resource.DATA.networkInterfaces) AS interface) AS instance_table
            ON
              SUBSTR(subnetwork_table.name, 25) = SUBSTR(instance_table.subnetwork,38)
            WHERE
              instance_table.subnetwork IS NULL
              AND NOT subnetwork_table.name LIKE \"%default%\""
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:queryAssets

次の値を指定します。

  • SCOPE: プロジェクト、フォルダ、組織がスコープになります。

    使用できる値は次のとおりです。

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Google Cloud プロジェクト番号を確認する方法

      Console

      Google Cloud プロジェクト番号を確認するには、次の手順を行います。

      1. Google Cloud コンソールの [ダッシュボード] ページに移動します。

        ダッシュボードに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスで組織を選択し、プロジェクト名を検索します。
      4. プロジェクト名をクリックして、そのプロジェクトに切り替えます。プロジェクト番号が [プロジェクト情報] カードに表示されます。

      gcloud CLI

      Google Cloud プロジェクト番号を取得するには、次のコマンドを使用します。

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Google Cloud フォルダ ID を確認する方法

      Console

      Google Cloud フォルダ ID を確認するには、次の手順を行います。

      1. Google Cloud コンソールに移動します。

        Google Cloud コンソールに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスをクリックして、組織を選択します。
      4. フォルダ名を検索します。フォルダ 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 を確認するには、次の手順を行います。

      1. Google Cloud コンソールに移動します。

        Google Cloud コンソールに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスをクリックして、組織を選択します。
      4. [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。

      gcloud CLI

      Google Cloud 組織 ID を取得するには、次のコマンドを使用します。

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

クエリを実行して、各プロジェクトの BigQuery データセットの数を確認する

gcloud

プロジェクト

gcloud asset query \
    --project=PROJECT_ID \
    --statement="
      SELECT
        ancestor AS project,
        COUNT(*)
      FROM
        bigquery_googleapis_com_Dataset
      CROSS JOIN
        UNNEST (ancestors) AS ancestor
      WHERE
        ancestor LIKE '%project%'
      GROUP BY
        ancestor
      ORDER BY
        2 DESC"

次の値を指定します。

  • PROJECT_ID: メタデータをクエリするプロジェクトの ID。

フォルダ

gcloud asset query \
    --folder=FOLDER_ID \
    --statement="
      SELECT
        ancestor AS project,
        COUNT(*)
      FROM
        bigquery_googleapis_com_Dataset
      CROSS JOIN
        UNNEST (ancestors) AS ancestor
      WHERE
        ancestor LIKE '%project%'
      GROUP BY
        ancestor
      ORDER BY
        2 DESC"

次の値を指定します。

  • FOLDER_ID: メタデータをクエリするフォルダの ID。

    Google Cloud フォルダ ID を確認する方法

    Console

    Google Cloud フォルダ ID を確認するには、次の手順を行います。

    1. Google Cloud コンソールに移動します。

      Google Cloud コンソールに移動

    2. メニューバーの切り替えボックスをクリックします。
    3. [選択元] ボックスをクリックして、組織を選択します。
    4. フォルダ名を検索します。フォルダ 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

組織

gcloud asset query \
    --organization=ORGANIZATION_ID \
    --statement="
      SELECT
        ancestor AS project,
        COUNT(*)
      FROM
        bigquery_googleapis_com_Dataset
      CROSS JOIN
        UNNEST (ancestors) AS ancestor
      WHERE
        ancestor LIKE '%project%'
      GROUP BY
        ancestor
      ORDER BY
        2 DESC"

次の値を指定します。

  • ORGANIZATION_ID: メタデータをクエリする組織の ID。

    Google Cloud 組織 ID を確認する方法

    Console

    Google Cloud 組織 ID を確認するには、次の手順を行います。

    1. Google Cloud コンソールに移動します。

      Google Cloud コンソールに移動

    2. メニューバーの切り替えボックスをクリックします。
    3. [選択元] ボックスをクリックして、組織を選択します。
    4. [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。

    gcloud CLI

    Google Cloud 組織 ID を取得するには、次のコマンドを使用します。

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

REST

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "statement": "
            SELECT
              ancestor AS project,
              COUNT(*)
            FROM
              bigquery_googleapis_com_Dataset
            CROSS JOIN
              UNNEST (ancestors) AS ancestor
            WHERE
              ancestor LIKE \"%project%\"
            GROUP BY
              ancestor
            ORDER BY
              2 DESC"
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:queryAssets

次の値を指定します。

  • SCOPE: プロジェクト、フォルダ、組織がスコープになります。

    使用できる値は次のとおりです。

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Google Cloud プロジェクト番号を確認する方法

      Console

      Google Cloud プロジェクト番号を確認するには、次の手順を行います。

      1. Google Cloud コンソールの [ダッシュボード] ページに移動します。

        ダッシュボードに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスで組織を選択し、プロジェクト名を検索します。
      4. プロジェクト名をクリックして、そのプロジェクトに切り替えます。プロジェクト番号が [プロジェクト情報] カードに表示されます。

      gcloud CLI

      Google Cloud プロジェクト番号を取得するには、次のコマンドを使用します。

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Google Cloud フォルダ ID を確認する方法

      Console

      Google Cloud フォルダ ID を確認するには、次の手順を行います。

      1. Google Cloud コンソールに移動します。

        Google Cloud コンソールに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスをクリックして、組織を選択します。
      4. フォルダ名を検索します。フォルダ 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 を確認するには、次の手順を行います。

      1. Google Cloud コンソールに移動します。

        Google Cloud コンソールに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスをクリックして、組織を選択します。
      4. [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。

      gcloud CLI

      Google Cloud 組織 ID を取得するには、次のコマンドを使用します。

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

クエリを実行して、特定のリージョンの特定のタイムスタンプの VM を識別する

gcloud

プロジェクト

gcloud asset query \
    --project=PROJECT_ID \
    --snapshot-time="SNAPSHOT_TIME" \
    --statement="
      SELECT
        name,
        resource.DATA.creationTimestamp
      FROM
        compute_googleapis_com_Instance
      WHERE
        resource.location LIKE '%asia%'"

次の値を指定します。

  • PROJECT_ID: メタデータをクエリするプロジェクトの ID。

  • SNAPSHOT_TIME: 省略可。アセットのスナップショットを作成したい時刻。この値は、現在の時刻または過去 35 日以内の時刻である必要があります。指定しない場合、現在の時刻にスナップショットが作成されます。時刻形式については、gcloud topic datetimes をご覧ください。

フォルダ

gcloud asset query \
    --folder=FOLDER_ID \
    --snapshot-time="SNAPSHOT_TIME" \
    --statement="
      SELECT
        name,
        resource.DATA.creationTimestamp
      FROM
        compute_googleapis_com_Instance
      WHERE
        resource.location LIKE '%asia%'"

次の値を指定します。

  • FOLDER_ID: メタデータをクエリするフォルダの ID。

    Google Cloud フォルダ ID を確認する方法

    Console

    Google Cloud フォルダ ID を確認するには、次の手順を行います。

    1. Google Cloud コンソールに移動します。

      Google Cloud コンソールに移動

    2. メニューバーの切り替えボックスをクリックします。
    3. [選択元] ボックスをクリックして、組織を選択します。
    4. フォルダ名を検索します。フォルダ 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

  • SNAPSHOT_TIME: 省略可。アセットのスナップショットを作成したい時刻。この値は、現在の時刻または過去 35 日以内の時刻である必要があります。指定しない場合、現在の時刻にスナップショットが作成されます。時刻形式については、gcloud topic datetimes をご覧ください。

組織

gcloud asset query \
    --organization=ORGANIZATION_ID \
    --snapshot-time="SNAPSHOT_TIME" \
    --statement="
      SELECT
        name,
        resource.DATA.creationTimestamp
      FROM
        compute_googleapis_com_Instance
      WHERE
        resource.location LIKE '%asia%'"

次の値を指定します。

  • ORGANIZATION_ID: メタデータをクエリする組織の ID。

    Google Cloud 組織 ID を確認する方法

    Console

    Google Cloud 組織 ID を確認するには、次の手順を行います。

    1. Google Cloud コンソールに移動します。

      Google Cloud コンソールに移動

    2. メニューバーの切り替えボックスをクリックします。
    3. [選択元] ボックスをクリックして、組織を選択します。
    4. [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。

    gcloud CLI

    Google Cloud 組織 ID を取得するには、次のコマンドを使用します。

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

  • SNAPSHOT_TIME: 省略可。アセットのスナップショットを作成したい時刻。この値は、現在の時刻または過去 35 日以内の時刻である必要があります。指定しない場合、現在の時刻にスナップショットが作成されます。時刻形式については、gcloud topic datetimes をご覧ください。

REST

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "statement": "
            SELECT
              name,
              resource.DATA.creationTimestamp
            FROM
              compute_googleapis_com_Instance
            WHERE
              resource.location LIKE \"%asia%\"",
          "readTime": "SNAPSHOT_TIME"
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:queryAssets

次の値を指定します。

  • SNAPSHOT_TIME: 省略可。アセットのスナップショットを作成する時刻を RFC 3339 形式で表したもの。この値は、現在の時刻または過去 35 日以内の時刻である必要があります。指定しない場合、現在の時刻にスナップショットが作成されます。

  • SCOPE: プロジェクト、フォルダ、組織がスコープになります。

    使用できる値は次のとおりです。

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Google Cloud プロジェクト番号を確認する方法

      Console

      Google Cloud プロジェクト番号を確認するには、次の手順を行います。

      1. Google Cloud コンソールの [ダッシュボード] ページに移動します。

        ダッシュボードに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスで組織を選択し、プロジェクト名を検索します。
      4. プロジェクト名をクリックして、そのプロジェクトに切り替えます。プロジェクト番号が [プロジェクト情報] カードに表示されます。

      gcloud CLI

      Google Cloud プロジェクト番号を取得するには、次のコマンドを使用します。

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Google Cloud フォルダ ID を確認する方法

      Console

      Google Cloud フォルダ ID を確認するには、次の手順を行います。

      1. Google Cloud コンソールに移動します。

        Google Cloud コンソールに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスをクリックして、組織を選択します。
      4. フォルダ名を検索します。フォルダ 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 を確認するには、次の手順を行います。

      1. Google Cloud コンソールに移動します。

        Google Cloud コンソールに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスをクリックして、組織を選択します。
      4. [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。

      gcloud CLI

      Google Cloud 組織 ID を取得するには、次のコマンドを使用します。

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

クエリを実行して、特定の期間の VM の変更履歴を確認する

gcloud

プロジェクト

gcloud asset query \
    --project=PROJECT_ID \
    --start-time="START_TIME" \
    --end-time="END_TIME" \
    --statement="
      SELECT
        name,
        resource.DATA.creationTimestamp
      FROM
        compute_googleapis_com_Instance"

次の値を指定します。

  • PROJECT_ID: アセットを一覧表示するプロジェクトの ID。

  • START_TIME: 省略可。期間の開始。最長の期間は 7 日です。この値は、現在の時刻または過去 35 日以内の時刻である必要があります。時刻形式の詳細については、gcloud topic datetimes をご覧ください。

  • END_TIME: 省略可。期間の終了時点。最長の期間は 7 日です。この値は、現在の時刻または過去 35 日以内の時刻である必要があります。指定しない場合、終了時刻は現在の時刻とみなされます。時刻形式の詳細については、gcloud topic datetimes をご覧ください。

フォルダ

gcloud asset query \
    --folder=FOLDER_ID \
    --start-time="START_TIME" \
    --end-time="END_TIME" \
    --statement="
      SELECT
        name,
        resource.DATA.creationTimestamp
      FROM
        compute_googleapis_com_Instance"

次の値を指定します。

  • FOLDER_ID: アセットを一覧表示するフォルダの ID。

    Google Cloud フォルダ ID を確認する方法

    Console

    Google Cloud フォルダ ID を確認するには、次の手順を行います。

    1. Google Cloud コンソールに移動します。

      Google Cloud コンソールに移動

    2. メニューバーの切り替えボックスをクリックします。
    3. [選択元] ボックスをクリックして、組織を選択します。
    4. フォルダ名を検索します。フォルダ 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

  • START_TIME: 省略可。期間の開始。最長の期間は 7 日です。この値は、現在の時刻または過去 35 日以内の時刻である必要があります。時刻形式の詳細については、gcloud topic datetimes をご覧ください。

  • END_TIME: 省略可。期間の終了時点。最長の期間は 7 日です。この値は、現在の時刻または過去 35 日以内の時刻である必要があります。指定しない場合、終了時刻は現在の時刻とみなされます。時刻形式の詳細については、gcloud topic datetimes をご覧ください。

組織

gcloud asset query \
    --organization=ORGANIZATION_ID \
    --start-time="START_TIME" \
    --end-time="END_TIME" \
    --statement="
      SELECT
        name,
        resource.DATA.creationTimestamp
      FROM
        compute_googleapis_com_Instance"

次の値を指定します。

  • ORGANIZATION_ID: アセットを一覧表示する組織の ID。

    Google Cloud 組織 ID を確認する方法

    Console

    Google Cloud 組織 ID を確認するには、次の手順を行います。

    1. Google Cloud コンソールに移動します。

      Google Cloud コンソールに移動

    2. メニューバーの切り替えボックスをクリックします。
    3. [選択元] ボックスをクリックして、組織を選択します。
    4. [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。

    gcloud CLI

    Google Cloud 組織 ID を取得するには、次のコマンドを使用します。

    gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"

  • START_TIME: 省略可。期間の開始。最長の期間は 7 日です。この値は、現在の時刻または過去 35 日以内の時刻である必要があります。時刻形式の詳細については、gcloud topic datetimes をご覧ください。

  • END_TIME: 省略可。期間の終了時点。最長の期間は 7 日です。この値は、現在の時刻または過去 35 日以内の時刻である必要があります。指定しない場合、終了時刻は現在の時刻とみなされます。時刻形式の詳細については、gcloud topic datetimes をご覧ください。

REST

curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "statement": "
            SELECT
              name,
              resource.DATA.creationTimestamp
            FROM
              compute_googleapis_com_Instance",
          "readTimeWindow": {
            "startTime": "START_TIME",
            "endTime": "END_TIME"
          }
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:queryAssets

次の値を指定します。

  • START_TIME: 省略可。期間の開始。最長の期間は 7 日です。この値は、現在の時刻または過去 35 日以内の時刻である必要があります。時刻形式については、gcloud topic datetimes をご覧ください。

  • END_TIME: 省略可。期間の終了時点。最長の期間は 7 日です。この値は、現在の時刻または過去 35 日以内の時刻である必要があります。指定しない場合、終了時刻は現在の時刻とみなされます。時刻形式については、gcloud topic datetimes をご覧ください。

  • SCOPE: プロジェクト、フォルダ、組織がスコープになります。

    使用できる値は次のとおりです。

    • projects/PROJECT_ID

    • projects/PROJECT_NUMBER

      Google Cloud プロジェクト番号を確認する方法

      Console

      Google Cloud プロジェクト番号を確認するには、次の手順を行います。

      1. Google Cloud コンソールの [ダッシュボード] ページに移動します。

        ダッシュボードに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスで組織を選択し、プロジェクト名を検索します。
      4. プロジェクト名をクリックして、そのプロジェクトに切り替えます。プロジェクト番号が [プロジェクト情報] カードに表示されます。

      gcloud CLI

      Google Cloud プロジェクト番号を取得するには、次のコマンドを使用します。

      gcloud projects describe PROJECT_ID --format="value(projectNumber)"

    • folders/FOLDER_ID

      Google Cloud フォルダ ID を確認する方法

      Console

      Google Cloud フォルダ ID を確認するには、次の手順を行います。

      1. Google Cloud コンソールに移動します。

        Google Cloud コンソールに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスをクリックして、組織を選択します。
      4. フォルダ名を検索します。フォルダ 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 を確認するには、次の手順を行います。

      1. Google Cloud コンソールに移動します。

        Google Cloud コンソールに移動

      2. メニューバーの切り替えボックスをクリックします。
      3. [選択元] ボックスをクリックして、組織を選択します。
      4. [すべて] タブをクリックします。組織 ID が組織名の横に表示されます。

      gcloud CLI

      Google Cloud 組織 ID を取得するには、次のコマンドを使用します。

      gcloud organizations describe ORGANIZATION_NAME --format="value(name.segment(1))"