OS ポリシー レポートを表示する


VM Manager によって仮想マシン(VM)インスタンスに OS ポリシーの割り当てが適用されると、OS ポリシーの割り当てレポートが生成されます。このレポートには、特定の OS ポリシーの割り当てで特定の VM に適用されているすべての OS ポリシーのコンプライアンス ステータスが含まれます。

このドキュメントでは、次のタスクについて説明します。

始める前に

  • OS Config の割り当てを確認します。
  • まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。

    このページのサンプルをどのように使うかに応じて、タブを選択してください。

    コンソール

    Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。

    gcloud

    1. Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

      gcloud init
    2. デフォルトのリージョンとゾーンを設定します

    REST

    このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

      Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。

      gcloud init

必要なロールと権限

OS ポリシーのコンプライアンス データを表示するために必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼します。

  • 組織またはフォルダ内の VM の OS ポリシー コンプライアンス サマリーを表示する:
  • プロジェクト内の VM の OS ポリシー割り当てレポートを表示する: プロジェクトに対する OSPolicyAssignmentReport 閲覧者roles/osconfig.osPolicyAssignmentReportViewer

ロールの付与の詳細については、アクセス権の管理をご覧ください。

これらの事前定義ロールには、OS ポリシー コンプライアンス データを表示するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

OS ポリシー コンプライアンス データを表示するには、次の権限が必要です。

  • 組織またはフォルダ内の VM の OS ポリシー コンプライアンス サマリーを表示する:
    • osconfig.osPolicyAssignmentReports.searchSummaries
    • osconfig.osPolicyAssignments.searchPolicies
    • resourcemanager.projects.get
    • resourcemanager.projects.list

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

組織またはフォルダ内のすべての VM の OS ポリシー コンプライアンス サマリーを表示する

Google Cloud コンソールを使用して、組織またはフォルダ内のすべての VM の OS ポリシー コンプライアンス サマリーを表示できます。

VM Manager で OS ポリシー コンプライアンス サマリーが表示されるのは、次のいずれかの要件を満たすプロジェクトのみです。

  • VM Manager が有効で実行中である VM が 1 つ以上含まれている。
  • 過去 7 日間に VM Manager が実行されていた VM を 1 つ以上含み、OS ポリシー コンプライアンス データが有効になっている。

OS ポリシー コンプライアンス データを表示する方法は次のとおりです。

  1. Google Cloud コンソールで、[Compute Engine] > [VM Manager] > [OS ポリシー] ページに移動します。

    [OS ポリシー] に移動

  2. Google Cloud コンソールの上部にあるプロジェクトのプルダウン リストで、OS ポリシー コンプライアンス サマリーを表示する組織またはフォルダを選択します。

  3. OS ポリシー コンプライアンス データを表示するには、次のオプションを使用します。

    1. プロジェクトごとの OS ポリシー コンプライアンス サマリーを表示するには、[プロジェクト] タブをクリックします。
    2. ポリシーごとの OS ポリシー コンプライアンス サマリーを表示するには、[OS ポリシー] タブをクリックします。
  4. (省略可)クエリビルダーを使用して、OS ポリシー コンプライアンス サマリーの計算条件を指定します。

  5. VM の OS ポリシー コンプライアンス サマリーを確認します。次の図に示すように、[プロジェクト] タブのテーブルには、各プロジェクトの行が表示されます。

    すべてのプロジェクトの OS ポリシーのサマリー。

    テーブルには、クエリビルダーで指定した条件を満たす次の情報が一覧表示されます。

    • プロジェクト: 1 つ以上の VM を含み、VM Manager が有効になっている組織内のプロジェクトの名前。
    • VM の合計: 各プロジェクトの VM の合計数。
    • モニタリング対象 VM: プロジェクト内で、VM Manager エージェントが有効になっていて、ポリシー コンプライアンス スキャンが実行されている VM の数。
    • ポリシーが適用されている VM: 1 つ以上のポリシーが割り当てられている VM の数。
    • 準拠: 割り当てられたすべてのポリシーが COMPLIANT として報告された VM の数。
    • 非準拠: 少なくとも 1 つの割り当てられたポリシーが NON-COMPLIANT として報告された VM の数。
    • 不明: 少なくとも 1 つの割り当てられたポリシーが UNKNOWN として報告され、NON-COMPLIANT として報告されたポリシーがない VM の数。UNKNOWN 状態は、次のいずれかの理由によるものです。
      • VM が実行されていない。
      • VM で VM Manager エージェントが有効になっていない。
      • プロセス中にエラーが発生した。
    • レポートなし: ポリシーが割り当てられているが、次のいずれかの理由によりポリシー コンプライアンス レポートが見つからなかった VM の数。
      • VM で VM Manager エージェントが有効になっていない。
      • コンプライアンス スキャンが進行中である。このレポートの準備がまだできていない。
  6. 省略可: OS ポリシー コンプライアンス サマリー テーブルで特定の行を表示する場合は、テーブル フィルタを適用します。

    ポリシー サマリー テーブルのテーブル フィルタ

    たとえば、VM が 10 個を超えるプロジェクトの OS ポリシー コンプライアンス サマリーを確認するには、フィルタ オプションの合計 VM 数>= 10 に設定します。

  7. 省略可: VM の数をクリックすると、特定の状態の VM についての詳細情報が表示されます。たとえば、[不明] 列で特定のプロジェクトの VM の数をクリックすると、[VM インスタンス] タブが開き、そのプロジェクトの各 VM の不明な OS ポリシーのリストが表示されます。

    不明な OS ポリシーが表示された [VM インスタンス] タブ。

    詳細については、OS ポリシーの割り当てレポートを表示するをご覧ください。

クエリビルダーを使用して OS ポリシー コンプライアンス データをフィルタする

VM Manager はクエリビルダーで指定した条件に基づいて、組織またはフォルダのプロジェクト内の VM の OS ポリシー コンプライアンス データを表示します。次に、OS ポリシーのコンプライアンス テーブルでテーブル フィルタを使用して、表示するデータをフィルタリングできます。

たとえば、クエリビルダーで OS 属性を Debian に設定すると、VM Manager は Debian OS を使用している VM の OS ポリシー コンプライアンス データを表示します。特定のプロジェクトのコンプライアンス データを表示する場合は、テーブル フィルタを使用してプロジェクト ID を指定します。

1 つの属性を指定したクエリビルダー。

クエリビルダーの [プロジェクト] タブでクエリを設定するには、次の操作を行います。

  1. 属性を選択します。クエリビルダーは、次の属性をサポートしています。

    • OS: オペレーティング システムの略称を指定します(例: WindowsDebian)。
    • OS バージョン: オペレーティング システムのバージョンを指定します。例: 21.0410.0.22000 など。OS バージョンの文字列の末尾に単一のアスタリスク(*)を付けると、部分一致を示すことができます(例: 10*)。
    • 実行中の VM: RUNNING 状態の VM のパッチ サマリーを表示するかどうかを指定します。
    • ポリシー フィンガープリント: OS ポリシーに固有のポリシー フィンガープリントを指定します。この属性を設定すると、VM Manager は、指定されたフィンガープリントを持つ OS ポリシーに対してのみ、コンプライアンス サマリーを計算します。
    • コンプライアンス状態: ポリシーのコンプライアンス状態を次のいずれかで指定します。
      • COMPLIANT: 割り当てられたすべてのポリシーが COMPLIANT として報告された VM の数。
      • NON-COMPLIANT: 少なくとも 1 つの割り当てられたポリシーが NON-COMPLIANT として報告された VM の数。
      • UNKNOWN: 少なくとも 1 つの割り当てられたポリシーが UNKNOWN として報告された VM の数。
  2. いずれかの属性を選択して、属性の値を指定します。たとえば、特定のオペレーティング システムを使用する VM のパッチ サマリーを表示する場合は、[OS] を選択します。比較演算子のリストを取得して、そこから選択できます。

    1. 演算子(例: ==)を選択します。
    2. [] フィールドで、比較値を指定します。例: Debian
  3. 別の属性を追加するには、[条件を追加] をクリックします。

  4. [検索] をクリックします。

OS ポリシーの割り当てレポートを表示する

OS ポリシーの割り当てレポートを表示するには、Google Cloud コンソール、Google Cloud CLI、または REST を使用します。

次の手順で、指定したロケーションの OS ポリシーの割り当てレポートを一覧表示します。

コンソール

  1. VPC Service Controls を使用してサービスを保護する場合は、Cloud Asset Inventory サービスを許可サービスのリストに追加します。詳細については、VPC のアクセス可能なサービスをご覧ください。

  2. Google Cloud コンソールで、[OS ポリシー] > [VM インスタンス] ページに移動します。

    [VM インスタンス] に移動

    VM のコンプライアンスを確認します。

gcloud

OS ポリシーの割り当てレポートを一覧表示するには、os-config os-policy-assignment-reports list コマンドを使用します。

特定のロケーションのすべての OS ポリシー割り当てレポートを表示するには、次のコマンドを実行します。ZONE は、VM が配置されているゾーンに置き換えます。

gcloud compute os-config os-policy-assignment-reports list --location=ZONE

コマンドの例と出力(すべての VM)

gcloud compute os-config os-policy-assignment-reports list --location=us-central1-a

INSTANCE                   ASSIGNMENT_ID                   LOCATION       UPDATE_TIME                  SUMMARY
centos7                    my-test-assignment1             us-central1-a  2021-11-02T18:14:03.908341Z  0/1 policies compliant
centos7                    my-test-assignment2             us-central1-a  2021-11-02T18:14:03.908341Z  0/1 policies compliant
rhel-8                     my-test-assignment1             us-central1-a  2021-11-02T19:13:28.468290Z  0/1 policies compliant
rhel-8                     my-test-assignment2             us-central1-a  2021-11-02T19:13:28.468290Z  0/1 policies compliant
my-centos                  my-test-assignment1             us-central1-a  2021-11-02T18:14:37.418883Z  1/1 policies compliant
my-centos                  my-test-assignment2             us-central1-a  2021-11-02T18:14:37.418883Z  0/1 policies compliant
deb-10                     my-test-assignment2             us-central1-a  2021-11-02T19:00:11.777748Z  0/1 policies compliant
windows                    my-test-assignment2             us-central1-a  2021-11-02T18:24:07.935711Z  0/1 policies compliant
windows                    my-test-assignment3             us-central1-a  2021-11-02T18:24:07.935711Z  0/1 policies compliant
sles15                     my-test-assignment2             us-central1-a  2021-11-02T18:38:07.335276Z  0/1 policies compliant

--instance--assignment-id などのオプション フラグを使用して、結果をフィルタリングすることもできます。

gcloud compute os-config os-policy-assignment-reports list --location=ZONE \
    [--instance=VM_NAME | --assignment-id=ASSIGNMENT_ID]

次のように置き換えます。

  • ZONE: VM が配置されているゾーン
  • 省略可: 次のいずれかを指定します。
    • VM_NAME: OS ポリシーの割り当てレポートを表示する VM の名前または ID
    • ASSIGNMENT_ID: OS ポリシーの割り当てレポートを表示する OS ポリシーの割り当ての ID

コマンドの例と出力(特定の VM)

gcloud compute os-config os-policy-assignment-reports list --location=us-central1-a \
    --instance=my-centos

INSTANCE                ASSIGNMENT_ID               LOCATION       UPDATE_TIME                  SUMMARY
my-centos               my-test-assignment1         us-central1-a  2021-11-02T18:14:37.418883Z  1/1 policies compliant
my-centos               my-test-assignment2         us-central1-a  2021-11-02T18:14:37.418883Z  0/1 policies compliant

コマンドの例と出力(特定の割り当て)

gcloud compute os-config os-policy-assignment-reports list --location=us-central1-a \
    --assignment-id=my-test-assignment1

INSTANCE                ASSIGNMENT_ID               LOCATION       UPDATE_TIME                  SUMMARY
centos7                 my-test-assignment1         us-central1-a  2021-11-02T18:14:03.908341Z  0/1 policies compliant
rhel-8                  my-test-assignment1         us-central1-a  2021-11-02T19:13:28.468290Z  0/1 policies compliant
my-centos               my-test-assignment1         us-central1-a  2021-11-02T18:14:37.418883Z  1/1 policies compliant

REST

API で、projects.locations.osPolicyAssignments.reports.list メソッドに対する GET リクエストを作成します。

GET https://osconfig.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/instances/VM_NAME/osPolicyAssignments/OS_POLICY_ASSIGNMENT_ID/report

次のように置き換えます。

  • PROJECT_ID: プロジェクト ID
  • ZONE: VM が配置されているゾーン
  • 省略可。次のいずれかを指定します。
    • VM_NAME: OS ポリシーの割り当てレポートを表示する VM の名前または ID。不要な場合は、値に - を使用します。
    • ASSIGNMENT_ID: OS ポリシーの割り当てレポートを表示する OS ポリシーの割り当ての ID。不要な場合は、値に - を使用します。

例:

  • プロジェクト my-project-12345 とゾーン us-central1-a 内のすべての VM のレポートを表示するには、次の URI を使用します。
    projects/my-project-12345/locations/us-central1-a/instances/-/osPolicyAssignments/-/report
  • プロジェクト my-project-12345 にあり、ゾーン us-central1-a にある VM my-test-vm のレポートを表示するには、次の URI を使用します。
    projects/my-project-12345/locations/us-central1-a/instances/my-test-vm/osPolicyAssignments/-/report
  • プロジェクト my-project-12345 とゾーン us-central1-a にあり、my-test-assignment OS ポリシーが割り当てられているすべての VM のレポートを表示するには、次の URI を使用します。
    projects/my-project-12345/locations/us-central1-a/instances/-/osPolicyAssignments/my-test-assignment/report

OS ポリシーの割り当てレポートを確認する

次の手順で、特定の VM に関連付けられた OS ポリシーの割り当てレポートの詳細を表示します。

コンソール

  1. VPC Service Controls を使用してサービスを保護する場合は、Cloud Asset Inventory サービスを許可サービスのリストに追加します。詳細については、VPC のアクセス可能なサービスをご覧ください。

  2. Google Cloud コンソールで、[OS ポリシー] > [VM インスタンス] ページに移動します。

    Google Cloud コンソールに移動

  3. 特定の VM の OS ポリシー割り当てレポートを表示するには、VM の名前をクリックします。

    VM のコンプライアンスを確認します。

  4. [状態]、[状態の理由]、[ログ] フィールドを確認します。[ログ] フィールドに、VM で実行されている OS Config エージェントのデバッグログにアクセスできる Cloud Logging ダッシュボードのリンクが表示されます。

    これらの問題を修正するには、OS ポリシーのログを確認して、必要な更新を行います。ログの確認方法については、VM Manager のトラブルシューティングをご覧ください。

gcloud

  1. 特定の VM の OS ポリシー割り当てレポートを表示するには、os-config os-policy-assignment-reports describe コマンドを使用します。

    gcloud compute os-config os-policy-assignment-reports describe OS_POLICY_ASSIGNMENT_ID \
        --instance=VM_NAME \
        --location=ZONE
    

    次のように置き換えます。

    • OS_POLICY_ASSIGNMENT_ID: 指定した VM で確認する OS ポリシー割り当ての ID
    • VM_NAME: OS ポリシー割り当てレポートを表示する VM の名前または ID
    • ZONE: VM が配置されているゾーン

    gcloud compute os-config os-policy-assignment-reports describe my-test-assignment1 \
        --instance=centos7 \
        --location=us-central1-a
    

    出力

    instance: centos7
    lastRunId: 96a61b92-3e14-4155-a3e8-dd66520f49ae
    name: projects/1234578882888/locations/us-central1-a/instances/29255009728795105/osPolicyAssignments/my-test-assignment1/report
    osPolicyAssignment: projects/1234578882888/locations/us-central1-a/osPolicyAssignments/my-test-assignment1t@3428384d-fa61-478e-b7e2-3d5fae74bea3
    osPolicyCompliances:
    – complianceState: UNKNOWN
      complianceStateReason: os-policies-not-supported-by-agent
      osPolicyId: setup-repo-and-install-package-policy
      osPolicyResourceCompliances:
      – complianceState: UNKNOWN
        complianceStateReason: os-policy-execution-attempt-failed
        osPolicyResourceId: setup-repo
      – complianceState: UNKNOWN
        complianceStateReason: os-policy-execution-attempt-failed
        osPolicyResourceId: install-pkg
    updateTime: '2021-11-02T19:14:34.314831Z'
    
  2. complianceStatecomplianceStateReason を確認します。

    これらの問題を修正するには、OS ポリシーのログを確認して、必要な更新を行います。ログの確認方法については、VM Manager のトラブルシューティングをご覧ください。

REST

  1. API で、projects.locations.osPolicyAssignments.reports.get メソッドに対する GET リクエストを作成します。

    GET https://osconfig.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/instances/VM_NAME/osPolicyAssignments/OS_POLICY_ASSIGNMENT_ID/report
    

    次のように置き換えます。

    • PROJECT_ID: プロジェクト ID
    • ZONE: VM が配置されているゾーン
    • VM_NAME: OS ポリシー割り当てレポートを表示する VM の名前または ID
    • OS_POLICY_ASSIGNMENT_ID: OS ポリシー割り当てレポートを表示する OS ポリシーの割り当ての ID
  2. complianceStatecomplianceStateReason を確認します。

    これらの問題を修正するには、OS ポリシーのログを確認して、必要な更新を行います。ログの確認方法については、VM Manager のトラブルシューティングをご覧ください。

次のステップ