アセットの一覧表示

このページでは、Cloud Asset Inventory アセットリスト サービスの使用方法を説明します。Cloud Asset Inventory API を使用すると、特定のタイムスタンプにおけるアセットのリストをページ分けして表示できます。

始める前に

  1. Google Cloud CLI を使用して Cloud Asset Inventory にアクセスする前に、Cloud Asset API を有効にします。API は Cloud Asset API コマンドを実行するプロジェクトでのみ有効にする必要があるのでご注意ください。

    Cloud Asset Inventory API を有効にする

  2. ローカル クライアントに Google Cloud CLI をインストールします。

  3. アセットを一覧表示するプロジェクトまたは組織で、次のいずれかのロールがアカウント割り当てられていることを確認します。

    • roles/cloudasset.viewer

    • roles/cloudasset.owner

アカウントを構成する

Cloud Asset API を呼び出すには、ルート(親)リソース(一覧表示するアセットを含むプロジェクトまたは組織)に対応する権限がアカウントに付与される必要があります。以下に、リクエスト内の各 ContentType に対する必要な権限を示します。

コンテンツ タイプ 権限
gcloud 名 REST 名
access-policy ACCESS_POLICY cloudasset.assets.listAccessPolicy
content-type-unspecified CONTENT_TYPE_UNSPECIFIED cloudasset.assets.listResource
iam-policy IAM_POLICY cloudasset.assets.listIamPolicy
org-policy ORG_POLICY cloudasset.assets.listOrgPolicy
os-inventory OS_INVENTORY cloudasset.assets.listOSInventories
relationship RELATIONSHIP cloudasset.assets.listResource
resource RESOURCE cloudasset.assets.listResource

アカウントに Cloud Asset 閲覧者(roles/cloudasset.viewer)のロール、Cloud Asset オーナー(roles/cloudasset.owner)のロール、またはリソースルートに対するオーナー(roles/owner)の基本ロールが付与されている場合、アカウントには、Cloud Asset API を呼び出すための十分な権限が付与されていることになります。それ以外の場合は、権限の構成ページの手順に従ってください。

アセットの一覧表示

Cloud Asset API を使用して、プロジェクト、フォルダ、組織内のアセットと各アセットの関係を一覧表示するには、次のリクエストのいずれかを行います。

プロジェクト、フォルダ、組織内のアセット(すべてのリソース メタデータを含む)を一覧表示する

gcloud

プロジェクト

gcloud asset list \
    --project=PROJECT_ID \
    --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \
    --content-type=resource \
    --snapshot-time="SNAPSHOT_TIME"

次の値を指定します。

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

  • ASSET_TYPE: 省略可。検索可能なアセットタイプのカンマ区切りのリスト。RE2 互換の正規表現がサポートされています。正規表現が、サポートされているアセットタイプと一致しない場合は、INVALID_ARGUMENT エラーが返されます。

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

リソース メタデータを除外するには、--content-type フラグを削除します。

フォルダ

すべてのリソース メタデータを含め、フォルダ内のアセットを一覧表示します。

gcloud asset list \
    --folder=FOLDER_ID \
    --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \
    --content-type=resource \
    --snapshot-time="SNAPSHOT_TIME"

次の値を指定します。

  • 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

  • ASSET_TYPE: 省略可。検索可能なアセットタイプのカンマ区切りのリスト。正規表現がサポートされています。正規表現が、サポートされているアセットタイプと一致しない場合は、INVALID_ARGUMENT エラーが返されます。

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

リソース メタデータを除外するには、--content-type フラグを削除します。

組織

すべてのリソース メタデータを含め、組織内のアセットを一覧表示する

gcloud asset list \
    --organization=ORGANIZATION_ID \
    --asset-types=ASSET_TYPE_1,ASSET_TYPE_2,... \
    --content-type=resource \
    --snapshot-time="SNAPSHOT_TIME"

次の値を指定します。

  • 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))"

  • ASSET_TYPE: 省略可。検索可能なアセットタイプのカンマ区切りのリスト。正規表現がサポートされています。正規表現が、サポートされているアセットタイプと一致しない場合は、INVALID_ARGUMENT エラーが返されます。

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

リソース メタデータを除外するには、--content-type フラグを削除します。

REST

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "contentType": "RESOURCE",
          "assetTypes": [
            "ASSET_TYPE_1",
            "ASSET_TYPE_2",
            "..."
          ],
          "readTime": "SNAPSHOT_TIME",
          "pageToken": "PAGE_TOKEN"
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE/assets

次の値を指定します。

  • ASSET_TYPE: 省略可。検索可能なアセットタイプの配列。正規表現がサポートされています。正規表現が、サポートされているアセットタイプと一致しない場合は、INVALID_ARGUMENT エラーが返されます。

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

  • PAGE_TOKEN: 省略可。長いリクエスト レスポンスは複数のページに分割されます。最初のページにこの Key-Value ペアは必要ありませんが、ここで前のレスポンスの nextPageToken を使用すると、後続のページを呼び出すことができます。

  • 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))"

contentType の Key-Value ペアを削除して、リソース メタデータを除外します。

プロジェクト、フォルダ、組織内の特定の関係を一覧表示する

gcloud

プロジェクト

gcloud asset list \
    --project=PROJECT_ID \
    --content-type=relationship \
    --relationship-types=INSTANCE_TO_INSTANCEGROUP \
    --snapshot-time="SNAPSHOT_TIME"

次の値を指定します。

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

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

プロジェクト内のすべての関係を一覧表示するには、--relationship-types フラグを削除します。

フォルダ

gcloud asset list \
    --folder=FOLDER_ID \
    --content-type=relationship \
    --relationship-types=INSTANCE_TO_INSTANCEGROUP \
    --snapshot-time="SNAPSHOT_TIME"

次の値を指定します。

  • 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 をご覧ください。

フォルダ内のすべての関係を一覧表示するには、--relationship-types フラグを削除します。

組織

gcloud asset list \
    --organization=ORGANIZATION_ID \
    --content-type=relationship \
    --relationship-types=INSTANCE_TO_INSTANCEGROUP \
    --snapshot-time="SNAPSHOT_TIME"

次の値を指定します。

  • 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 をご覧ください。

組織内のすべての関係を一覧表示するには、--relationship-types フラグを削除します。

REST

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "contentType": "RELATIONSHIP",
          "relationshipTypes": "INSTANCE_TO_INSTANCEGROUP",
          "readTime": "SNAPSHOT_TIME",
          "pageToken": "PAGE_TOKEN"
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE/assets

次の値を指定します。

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

  • PAGE_TOKEN: 省略可。長いリクエスト レスポンスは複数のページに分割されます。最初のページにこの Key-Value ペアは必要ありませんが、ここで前のレスポンスの nextPageToken を使用すると、後続のページを呼び出すことができます。

  • 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))"

relationshipTypes の Key-Value ペアを削除して、プロジェクト内のすべての関係を一覧表示します。