VM Manager データの表示

このトピックでは、VM のランタイム情報を表示できるように、Cloud Asset Inventory と VM Manager の OS インベントリを構成する方法について説明します。

始める前に

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

  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

OS インベントリの有効化

VM Manager スイートの一部である OS インベントリを有効にするには、VM Manager の設定の関連手順を行います。

権限を設定する

エクスポートするアセットを含むルートリソースに対する cloudasset.assets.exportOSInventories 権限がアカウントに付与されていることを確認します。この権限を個別に付与することも、ルートリソースで次のいずれかのロールを付与することもできます。

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

  • Cloud Asset オーナーのロール(roles/cloudasset.owner

詳しくは、権限の構成Cloud Asset Inventory IAM ロールをご覧ください。

BigQuery への VM Manager データのエクスポート

特定のタイムスタンプにおける OS インベントリ スナップショットをエクスポートするには、次のコマンドを入力します。

gcloud

プロジェクト

gcloud asset export \
    --project=PROJECT_ID \
    --billing-project=BILLING_PROJECT_ID \
    --content-type=os-inventory \
    --snapshot-time="SNAPSHOT_TIME" \
    --bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
    --output-bigquery-force

次の値を指定します。

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

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

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

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

  • TABLE_NAME: メタデータのエクスポート先のテーブル。

その他のフラグ:

  • --output-bigquery-force: 宛先テーブルが存在する場合に宛先テーブルを上書きします。

フォルダ

gcloud asset export \
    --folder=FOLDER_ID \
    --billing-project=BILLING_PROJECT_ID \
    --content-type=os-inventory \
    --snapshot-time="SNAPSHOT_TIME" \
    --bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
    --output-bigquery-force

次の値を指定します。

  • 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: 省略可。デフォルトの Cloud Asset Inventory サービス エージェントが存在する、BigQuery のデータセットとテーブルを管理する権限を持つプロジェクト ID。gcloud config set project で課金プロジェクトに切り替えている場合は不要です。詳細は、課金プロジェクトをお読みください

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

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

  • TABLE_NAME: メタデータのエクスポート先のテーブル。

その他のフラグ:

  • --output-bigquery-force: 宛先テーブルが存在する場合に宛先テーブルを上書きします。

組織

gcloud asset export \
    --organization=ORGANIZATION_ID \
    --billing-project=BILLING_PROJECT_ID \
    --content-type=os-inventory \
    --snapshot-time="SNAPSHOT_TIME" \
    --bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
    --output-bigquery-force

次の値を指定します。

  • 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: 省略可。デフォルトの Cloud Asset Inventory サービス エージェントが存在する、BigQuery のデータセットとテーブルを管理する権限を持つプロジェクト ID。gcloud config set project で課金プロジェクトに切り替えている場合は不要です。詳細は、課金プロジェクトをお読みください

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

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

  • TABLE_NAME: メタデータのエクスポート先のテーブル。

その他のフラグ:

  • --output-bigquery-force: 宛先テーブルが存在する場合に宛先テーブルを上書きします。

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 '{
          "contentType": "OS_INVENTORY",
          "readTime": "SNAPSHOT_TIME",
          "outputConfig": {
            "bigqueryDestination": {
              "dataset": "projects/PROJECT_ID/datasets/DATASET_ID",
              "table": "TABLE_NAME",
              "force": true
            }
          }
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:exportAssets

次の値を指定します。

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

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

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

プロジェクトから VM Manager の脆弱性レポートを BigQuery にエクスポートするには、次のコマンドを使用します。

gcloud

プロジェクト

gcloud asset export \
    --project=PROJECT_ID \
    --billing-project=BILLING_PROJECT_ID \
    --asset-types=osconfig.googleapis.com/VulnerabilityReport \
    --content-type=resource \
    --bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
    --output-bigquery-force

次の値を指定します。

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

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

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

  • TABLE_NAME: メタデータのエクスポート先のテーブル。

その他のフラグ:

  • --output-bigquery-force: 宛先テーブルが存在する場合に宛先テーブルを上書きします。

フォルダ

gcloud asset export \
    --folder=FOLDER_ID \
    --billing-project=BILLING_PROJECT_ID \
    --asset-types=osconfig.googleapis.com/VulnerabilityReport \
    --content-type=resource \
    --bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
    --output-bigquery-force

次の値を指定します。

  • 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: 省略可。デフォルトの Cloud Asset Inventory サービス エージェントが存在する、BigQuery のデータセットとテーブルを管理する権限を持つプロジェクト ID。gcloud config set project で課金プロジェクトに切り替えている場合は不要です。詳細は、課金プロジェクトをお読みください

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

  • TABLE_NAME: メタデータのエクスポート先のテーブル。

その他のフラグ:

  • --output-bigquery-force: 宛先テーブルが存在する場合に宛先テーブルを上書きします。

組織

gcloud asset export \
    --organization=ORGANIZATION_ID \
    --billing-project=BILLING_PROJECT_ID \
    --asset-types=osconfig.googleapis.com/VulnerabilityReport \
    --content-type=resource \
    --bigquery-table=projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME \
    --output-bigquery-force

次の値を指定します。

  • 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: 省略可。デフォルトの Cloud Asset Inventory サービス エージェントが存在する、BigQuery のデータセットとテーブルを管理する権限を持つプロジェクト ID。gcloud config set project で課金プロジェクトに切り替えている場合は不要です。詳細は、課金プロジェクトをお読みください

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

  • TABLE_NAME: メタデータのエクスポート先のテーブル。

その他のフラグ:

  • --output-bigquery-force: 宛先テーブルが存在する場合に宛先テーブルを上書きします。

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 '{
          "assetTypes": ["osconfig.googleapis.com/VulnerabilityReport"],
          "contentType": "RESOURCE",
          "outputConfig": {
            "bigqueryDestination": {
              "dataset": "projects/PROJECT_ID/datasets/DATASET_ID",
              "table": "TABLE_NAME",
              "force": true
            }
          }
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:exportAssets

次の値を指定します。

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

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

他のパラメータ:

  • "force": true: 宛先テーブルが存在する場合に宛先テーブルを上書きします。

既存のテーブル

既存のテーブルへのエクスポート出力の追加はサポートされていません。宛先テーブルは空にするか、上書きする必要があります。これを上書きするには、gcloud CLI で --output-bigquery-force フラグを使用するか、REST API で force を使用します。

出力テーブルに書き込もうとしたときに出力テーブルが使用中の場合、400 レスポンスがメッセージ Request contains an invalid argument とともに返されます。

Cloud Storage への VM Manager データのエクスポート

プロジェクト内のすべての VM インスタンスの VM Manager インベントリ データをエクスポートするには、次の gcloud CLI コマンドまたは Cloud Asset Inventory API を使用します。

gcloud

プロジェクト

gcloud asset export \
    --project=PROJECT_ID \
    --billing-project=BILLING_PROJECT_ID \
    --content-type=os-inventory \
    --output-path="gs://BUCKET_NAME/FILENAME"

次の値を指定します。

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

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

  • BUCKET_NAME: 書き込み先の Cloud Storage バケットの名前。

  • FILENAME: 書き込み先の Cloud Storage バケット内のファイル。

フォルダ

gcloud asset export \
    --folder=FOLDER_ID \
    --billing-project=BILLING_PROJECT_ID \
    --content-type=os-inventory \
    --output-path="gs://BUCKET_NAME/FILENAME"

次の値を指定します。

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

  • BUCKET_NAME: 書き込み先の Cloud Storage バケットの名前。

  • FILENAME: 書き込み先の Cloud Storage バケット内のファイル。

組織

gcloud asset export \
    --organization=ORGANIZATION_ID \
    --billing-project=BILLING_PROJECT_ID \
    --content-type=os-inventory \
    --output-path="gs://BUCKET_NAME/FILENAME"

次の値を指定します。

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

  • BUCKET_NAME: 書き込み先の Cloud Storage バケットの名前。

  • FILENAME: 書き込み先の Cloud Storage バケット内のファイル。

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 '{
          "contentType": "OS_INVENTORY",
          "outputConfig": {
            "gcsDestination": {
              "uri": "gs://BUCKET_NAME/FILENAME"
            }
          }
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:exportAssets

次の値を指定します。

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

  • BUCKET_NAME: 書き込み先の Cloud Storage バケットの名前。

  • FILENAME: 書き込み先の Cloud Storage バケット内のファイル。

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

プロジェクトから Cloud Storage に VM Manager の脆弱性レポートをエクスポートするには、次の gcloud CLI コマンドまたは Cloud Asset Inventory API を使用します。

gcloud

プロジェクト

gcloud asset export \
    --project=PROJECT_ID \
    --billing-project=BILLING_PROJECT_ID \
    --asset-types=osconfig.googleapis.com/VulnerabilityReport \
    --content-type=resource \
    --output-path="gs://BUCKET_NAME/FILENAME"

次の値を指定します。

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

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

  • BUCKET_NAME: 書き込み先の Cloud Storage バケットの名前。

  • FILENAME: 書き込み先の Cloud Storage バケット内のファイル。

フォルダ

gcloud asset export \
    --folder=FOLDER_ID \
    --billing-project=BILLING_PROJECT_ID \
    --asset-types=osconfig.googleapis.com/VulnerabilityReport \
    --content-type=resource \
    --output-path="gs://BUCKET_NAME/FILENAME"

次の値を指定します。

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

  • BUCKET_NAME: 書き込み先の Cloud Storage バケットの名前。

  • FILENAME: 書き込み先の Cloud Storage バケット内のファイル。

組織

gcloud asset export \
    --organization=ORGANIZATION_ID \
    --billing-project=BILLING_PROJECT_ID \
    --asset-types=osconfig.googleapis.com/VulnerabilityReport \
    --content-type=resource \
    --output-path="gs://BUCKET_NAME/FILENAME"

次の値を指定します。

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

  • BUCKET_NAME: 書き込み先の Cloud Storage バケットの名前。

  • FILENAME: 書き込み先の Cloud Storage バケット内のファイル。

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 '{
          "assetTypes": ["osconfig.googleapis.com/VulnerabilityReport"],
          "contentType": "RESOURCE",
          "outputConfig": {
            "gcsDestination": {
              "uri": "gs://BUCKET_NAME/FILENAME"
            }
          }
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:exportAssets

次の値を指定します。

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

  • BUCKET_NAME: 書き込み先の Cloud Storage バケットの名前。

  • FILENAME: 書き込み先の Cloud Storage バケット内のファイル。

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

既存のファイル

ストレージ バケットへの書き込みを試みたときに出力ファイルが使用中の場合、400 レスポンスがメッセージ Request contains an invalid argument とともに返されます。

VM Manager のデータ履歴の取得

プロジェクト、フォルダ、または組織内の指定済み VM インスタンスのすべての OS インベントリ アセットの履歴を取得するには、次のコマンドを実行します。

gcloud

プロジェクト

gcloud asset get-history \
    --project=PROJECT_ID \
    --asset-names=//compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/VM_INSTANCE_NAME \
    --content-type=os-inventory \
    --start-time="START_TIME" \
    --end-time="END_TIME"

次の値を指定します。

  • PROJECT_ID: VM インスタンスが配置されているプロジェクトの ID。

  • ZONE: VM インスタンスが存在するゾーン。例: us-central1-a

  • VM_INSTANCE_NAME: VM インスタンスの名前。

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

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

プロジェクト内の特定の VM の VM Manager 脆弱性データの履歴を取得するには、次のコマンドを実行します。

gcloud asset get-history \
    --project=PROJECT_ID \
    --asset-names=//osconfig.googleapis.com/projects/PROJECT_NUMBER/locations/ZONE/instances/VM_INSTANCE_ID/vulnerabilityReport \
    --content-type=resource \
    --start-time="START_TIME" \
    --end-time="END_TIME"

フォルダ

gcloud asset get-history \
    --folder=FOLDER_ID \
    --asset-names=//compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/VM_INSTANCE_NAME \
    --content-type=os-inventory \
    --start-time="START_TIME" \
    --end-time="END_TIME"

次の値を指定します。

  • FOLDER_ID: VM インスタンスが配置されているフォルダの 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

  • ZONE: VM インスタンスが存在するゾーン。例: us-central1-a

  • VM_INSTANCE_NAME: VM インスタンスの名前。

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

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

プロジェクト内の特定の VM の VM Manager 脆弱性データの履歴を取得するには、次のコマンドを実行します。

gcloud asset get-history \
    --folder=FOLDER_ID \
    --asset-names=//osconfig.googleapis.com/projects/PROJECT_NUMBER/locations/ZONE/instances/VM_INSTANCE_ID/vulnerabilityReport \
    --content-type=resource \
    --start-time="START_TIME" \
    --end-time="END_TIME"

組織

gcloud asset get-history \
    --organization=ORGANIZATION_ID \
    --asset-names=//compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/VM_INSTANCE_NAME \
    --content-type=os-inventory \
    --start-time="START_TIME" \
    --end-time="END_TIME"

次の値を指定します。

  • ORGANIZATION_ID: VM インスタンスが配置されている組織の 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))"

  • ZONE: VM インスタンスが存在するゾーン。例: us-central1-a

  • VM_INSTANCE_NAME: VM インスタンスの名前。

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

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

プロジェクト内の特定の VM の VM Manager 脆弱性データの履歴を取得するには、次のコマンドを実行します。

gcloud asset get-history \
    --organization=ORGANIZATION_ID \
    --asset-names=//osconfig.googleapis.com/projects/PROJECT_NUMBER/locations/ZONE/instances/VM_INSTANCE_ID/vulnerabilityReport \
    --content-type=resource \
    --start-time="START_TIME" \
    --end-time="END_TIME"

REST

プロジェクト内の指定した VM インスタンスのすべての OS インベントリ アセットの履歴を取得するには、次のコマンドを実行します。

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "assetNames": "//compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/VM_INSTANCE_NAME",
          "contentType": "OS_INVENTORY",
          "readTimeWindow": {
            "startTime": "START_TIME",
            "endTime": "END_TIME"
          }
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:batchGetAssetsHistory

次の値を指定します。

  • PROJECT_ID: VM インスタンスが配置されているプロジェクトの ID。

  • ZONE: VM インスタンスが存在するゾーン。例: us-central1-a

  • VM_INSTANCE_NAME: VM インスタンスの名前。

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

  • END_TIME: 省略可。期間の終了時点。この値は、現在の時刻または過去 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))"

プロジェクト内の特定の VM の VM Manager 脆弱性データの履歴を取得するには、次のコマンドを実行します。

curl -X POST \
     -H "X-HTTP-Method-Override: GET" \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json" \
     -d '{
          "assetNames": "//osconfig.googleapis.com/projects/PROJECT_ID/locations/ZONE/instances/VM_INSTANCE_NAME/vulnerabilityReport",
          "contentType": "RESOURCE",
          "readTimeWindow": {
            "startTime": "START_TIME",
            "endTime": "END_TIME"
          }
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE:batchGetAssetsHistory

Pub/Sub による VM Manager データの変更のモニタリング

Pub/Sub トピックを作成したら、次のコマンドを実行して VM Manager の変更をモニタリングします。

gcloud

プロジェクト

Windows OS がインストールされている VM をモニタリングするためのフィードを作成するには、次のコマンドを実行します。

gcloud asset feeds create FEED_ID \
    --project=PROJECT_ID \
    --billing-project=BILLING_PROJECT_ID \
    --asset-types=compute.googleapis.com/Instance \
    --content-type=os-inventory \
    --pubsub-topic="projects/PROJECT_ID/topics/TOPIC_ID" \
    --condition-title="CONDITION_TITLE" \
    --condition-description="CONDITION_DESCRIPTION" \
    --condition-expression="temporal_asset.asset.os_inventory.os_info.short_name == \"windows\""

次の値を指定します。

  • FEED_ID: 一意のアセット フィード識別子。

  • PROJECT_ID: メタデータがフィードに送信されるプロジェクトの ID。

  • BILLING_PROJECT_ID: 省略可。Pub/Sub トピックを管理する権限を持つ、デフォルトの Cloud Asset Inventory サービス エージェントが存在するプロジェクト ID。詳細は、課金プロジェクトをお読みください

  • TOPIC_ID: 通知公開先の Pub/Sub トピックの ID。

  • CONDITION_TITLE: 省略可。フィードに適用する条件のタイトル。

  • CONDITION_DESCRIPTION: 省略可。フィードに適用する条件の説明。

プロジェクト内の VM の脆弱性データをモニタリングするためのフィードを作成するには、次のコマンドを実行します。

gcloud asset feeds create FEED_ID \
    --project=PROJECT_ID \
    --billing-project=BILLING_PROJECT_ID \
    --asset-types=osconfig.googleapis.com/VulnerabilityReport \
    --content-type=resource \
    --pubsub-topic="projects/PROJECT_ID/topics/TOPIC_ID"

フォルダ

Windows OS がインストールされている VM をモニタリングするためのフィードを作成するには、次のコマンドを実行します。

gcloud asset feeds create FEED_ID \
    --folder=FOLDER_ID \
    --billing-project=BILLING_PROJECT_ID \
    --asset-types=compute.googleapis.com/Instance \
    --content-type=os-inventory \
    --pubsub-topic="projects/PROJECT_ID/topics/TOPIC_ID" \
    --condition-title="CONDITION_TITLE" \
    --condition-description="CONDITION_DESCRIPTION" \
    --condition-expression="temporal_asset.asset.os_inventory.os_info.short_name == \"windows\""

次の値を指定します。

  • FEED_ID: 一意のアセット フィード識別子。

  • 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: 省略可。Pub/Sub トピックを管理する権限を持つ、デフォルトの Cloud Asset Inventory サービス エージェントが存在するプロジェクト ID。詳細は、課金プロジェクトをお読みください

  • TOPIC_ID: 通知公開先の Pub/Sub トピックの ID。

  • CONDITION_TITLE: 省略可。フィードに適用する条件のタイトル。

  • CONDITION_DESCRIPTION: 省略可。フィードに適用する条件の説明。

プロジェクト内の VM の脆弱性データをモニタリングするためのフィードを作成するには、次のコマンドを実行します。

gcloud asset feeds create FEED_ID \
    --folder=FOLDER_ID \
    --billing-project=BILLING_PROJECT_ID \
    --asset-types=osconfig.googleapis.com/VulnerabilityReport \
    --content-type=resource \
    --pubsub-topic="projects/PROJECT_ID/topics/TOPIC_ID"

組織

Windows OS がインストールされている VM をモニタリングするためのフィードを作成するには、次のコマンドを実行します。

gcloud asset feeds create FEED_ID \
    --organization=ORGANIZATION_ID \
    --billing-project=BILLING_PROJECT_ID \
    --asset-types=compute.googleapis.com/Instance \
    --content-type=os-inventory \
    --pubsub-topic="projects/PROJECT_ID/topics/TOPIC_ID" \
    --condition-title="CONDITION_TITLE" \
    --condition-description="CONDITION_DESCRIPTION" \
    --condition-expression="temporal_asset.asset.os_inventory.os_info.short_name == \"windows\""

次の値を指定します。

  • FEED_ID: 一意のアセット フィード識別子。

  • 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: 省略可。Pub/Sub トピックを管理する権限を持つ、デフォルトの Cloud Asset Inventory サービス エージェントが存在するプロジェクト ID。詳細は、課金プロジェクトをお読みください

  • TOPIC_ID: 通知公開先の Pub/Sub トピックの ID。

  • CONDITION_TITLE: 省略可。フィードに適用する条件のタイトル。

  • CONDITION_DESCRIPTION: 省略可。フィードに適用する条件の説明。

プロジェクト内の VM の脆弱性データをモニタリングするためのフィードを作成するには、次のコマンドを実行します。

gcloud asset feeds create FEED_ID \
    --organization=ORGANIZATION_ID \
    --billing-project=BILLING_PROJECT_ID \
    --asset-types=osconfig.googleapis.com/VulnerabilityReport \
    --content-type=resource \
    --pubsub-topic="projects/PROJECT_ID/topics/TOPIC_ID"

REST

Windows OS がインストールされている VM をモニタリングするためのフィードを作成するには、次のコマンドを実行します。

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 '{
          "feedId": "FEED_ID",
          "feed": {
            "assetTypes": ["compute.googleapis.com/Instance"],
            "contentType": "OS_INVENTORY",
            "feedOutputConfig": {
              "pubsubDestination": {
                "topic": "projects/PROJECT_ID/topics/TOPIC_ID"
              }
            },
            "condition": {
              "title": "CONDITION_TITLE",
              "description": "CONDITION_DESCRIPTION",
              "expression": "temporal_asset.asset.os_inventory.os_info.short_name == \"windows\""
            }
          }
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE/feeds

次の値を指定します。

  • BILLING_PROJECT_ID: 省略可。Pub/Sub トピックを管理する権限を持つ、デフォルトの Cloud Asset Inventory サービス エージェントが存在するプロジェクト ID。詳細は、課金プロジェクトをお読みください

  • FEED_ID: 一意のアセット フィード識別子。

  • PROJECT_ID: Pub/Sub トピックが配置されているプロジェクトの ID。

  • TOPIC_ID: 通知公開先の Pub/Sub トピックの ID。

  • CONDITION_TITLE: 省略可。フィードに適用する条件のタイトル。

  • CONDITION_DESCRIPTION: 省略可。フィードに適用する条件の説明。

  • 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 の脆弱性データをモニタリングするためのフィードを作成するには、次のコマンドを実行します。

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 '{
          "feedId": "FEED_ID",
          "feed": {
            "assetTypes": ["osconfig.googleapis.com/VulnerabilityReport"],
            "contentType": "RESOURCE",
            "feedOutputConfig": {
              "pubsubDestination": {
                "topic": "projects/PROJECT_ID/topics/TOPIC_ID"
              }
            }
          }
         }' \
     https://cloudasset.googleapis.com/v1/SCOPE/feeds

詳細については、アセットの変更のモニタリングをご覧ください。