1.23. ポリシーコンプライアンス履歴 (テクノロジープレビュー)


1.23.1. 概要

ポリシーコンプライアンス履歴 API は、Red Hat Advanced Cluster Management for Kubernetes のポリシーコンプライアンスイベントをクエリー可能な形式で長期間保存する場合に使用できる、オプションのテクニカルプレビュー機能です。この API を使用すると、spec フィールドなどの追加の詳細を取得して、ポリシーを監査およびトラブルシューティングすることができます。また、ポリシーが無効化されたりクラスターから削除されたりしたときに、コンプライアンスイベントを取得できます。ポリシーコンプライアンス履歴 API は、監査とトラブルシューティングに役立つ、ポリシーコンプライアンスイベントのコンマ区切り値 (CSV) スプレッドシートを生成することもできます。

1.23.1.1. バージョン情報

バージョン: 2.10.0

1.23.2. API エンドポイント

1.23.2.1. ポリシーコンプライアンスイベントのリスト表示

/api/v1/compliance-events

これには、デフォルトでアクセスできるすべてのポリシーコンプライアンスイベントがリスト表示されます。レスポンスの形式は次のとおりです。デフォルトでは、event.timestamp によって降順に並べ替えられます。

{
  "data": [
    {
      "id": 2,
      "cluster": {
        "name": "cluster1",
        "cluster_id": "215ce184-8dee-4cab-b99b-1f8f29dff611"
      },
      "parent_policy": {
        "id": 3,
        "name": "configure-custom-app",
        "namespace": "policies",
        "catageories": ["CM Configuration Management"],
        "controls": ["CM-2 Baseline Configuration"],
        "standards": ["NIST SP 800-53"]
      },
      "policy": {
        "apiGroup": "policy.open-cluster-management.io",
        "id": 2,
        "kind": "ConfigurationPolicy",
        "name": "configure-custom-app",
        "namespace": "",
        // Only shown with `?include_spec`
        "spec": {}
      },
      "event": {
        "compliance": "NonCompliant",
        "message": "configmaps [app-data] not found in namespace default",
        "timestamp": "2023-07-19T18:25:43.511Z",
        "metadata": {}
      }
    },
    {
      "id": 1,
      "cluster": {
        "name": "cluster2",
        "cluster_id": "415ce234-8dee-4cab-b99b-1f8f29dff461"
      },
      "parent_policy": {
        "id": 3,
        "name": "configure-custom-app",
        "namespace": "policies",
        "catageories": ["CM Configuration Management"],
        "controls": ["CM-2 Baseline Configuration"],
        "standards": ["NIST SP 800-53"]
      },
      "policy": {
        "apiGroup": "policy.open-cluster-management.io",
        "id": 4,
        "kind": "ConfigurationPolicy",
        "name": "configure-custom-app",
        "namespace": "",
        // Only shown with `?include_spec`
        "spec": {}
      },
      "event": {
        "compliance": "Compliant",
        "message": "configmaps [app-data] found as specified in namespace default",
        "timestamp": "2023-07-19T18:25:41.523Z",
        "metadata": {}
      }
    }
  ],
  "metadata": {
    "page": 1,
    "pages": 7,
    "per_page": 20,
    "total": 123
  }
}
Copy to Clipboard Toggle word wrap

次のオプションのクエリーパラメーターを使用できます。説明のないものは、参照するフィールドをフィルターするだけであることに注意してください。パラメーター値 null は、値がないことを示します。さらに、コンマを使用して複数の値を指定できます。たとえば、"or" 条件でフィルタリングする場合は ??cluster.name=cluster1,cluster2 とします。必要に応じて、コンマを \ でエスケープできます。

Expand
表1.1 クエリーパラメーターの表
クエリー引数説明

cluster.cluster_id

 

cluster.name

 

direction

並べ替えの基準となる方向。デフォルトは、降順を表す desc です。サポートされている値は ascdesc です。

event.compliance

 

event.message_includes

入力文字列を含むコンプライアンスメッセージのフィルター。サポートされる値は 1 つだけです。

event.message_like

コンプライアンスメッセージの SQL LIKE フィルター。パーセント記号 (%) は、0 個以上の文字のワイルドカードを表します。アンダースコア記号 (_) は、1 文字のワイルドカードを表します。たとえば、%configmaps [%my-configmap%]% は、config map my-configmap を参照する設定ポリシーコンプライアンスメッセージに一致します。

event.reported_by

 

event.timestamp

 

event.timestamp_after

RFC 3339 タイムスタンプ。この時刻以降のコンプライアンスイベントのみを表示することを示します。たとえば、2024-02-28T16:32:57Z です。

event.timestamp_before

RFC 3339 タイムスタンプ。この時刻以前のコンプライアンスイベントのみを表示することを示します。たとえば、2024-02-28T16:32:57Z です。

id

 

include_spec

戻り値にポリシーの spec フィールドを含めるフラグ。これはデフォルトでは設定されません。

page

クエリー内のページ番号。デフォルトは 1 です。

parent_policy.categories

 

parent_policy.controls

 

parent_policy.id

 

parent_policy.name

 

parent_policy.namespace

 

parent_policy.standards

 

per_page

ページごとに返されるコンプライアンスイベントの数。デフォルトは 20 で、100 より大きくすることはできません。

policy.apiGroup

 

policy.id

 

policy.kind

 

policy.name

 

policy.namespace

 

policy.severity

 

sort

並べ替えに使用するフィールド。デフォルトは event.timestamp です。policy.specevent.metadata を除くすべてのフィールドは、ドット表記を使用して並べ替えることができます。複数の並べ替えオプションを指定するには、?sort=policy.name,policy.namespace のようにコンマを使用します。

1.23.2.2. 単一のポリシーコンプライアンスイベントの選択

/api/v1/compliance-events/<id>

データベース ID を指定して、単一のポリシーコンプライアンスイベントを選択できます。たとえば、/api/v1/compliance-events/1 は、ID が 1 のコンプライアンスイベントを選択します。戻り値は次の JSON 形式です。

{
  "id": 1,
  "cluster": {
    "name": "cluster2",
    "cluster_id": "415ce234-8dee-4cab-b99b-1f8f29dff461"
  },
  "parent_policy": {
    "id": 2,
    "name": "etcd-encryption",
    "namespace": "policies",
    "catageories": ["CM Configuration Management"],
    "controls": ["CM-2 Baseline Configuration"],
    "standards": ["NIST SP 800-53"]
  },
  "policy": {
    "apiGroup": "policy.open-cluster-management.io",
    "id": 4,
    "kind": "ConfigurationPolicy",
    "name": "etcd-encryption",
    "namespace": "",
    "spec": {}
  },
  "event": {
    "compliance": "Compliant",
    "message": "configmaps [app-data] found as specified in namespace default",
    "timestamp": "2023-07-19T18:25:41.523Z",
    "metadata": {}
  }
}
Copy to Clipboard Toggle word wrap

1.23.2.3. スプレッドシートの生成

/api/v1/reports/compliance-events

監査とトラブルシューティングのために、コンプライアンスイベントのコンマ区切り値 (CSV) スプレッドシートを生成できます。この API エンドポイントは、/api/v1/compliance-events API エンドポイントと同じ結果を出力し、同じクエリー引数を受け入れます。デフォルトでは、per_page 制限は設定されておらず、per_page クエリー引数の最大値もありません。すべての CSV ヘッダーは /api/v1/compliance-events API エンドポイントと同じですが、JSON オブジェクトはアンダースコアで区切られています。たとえば、イベントのタイムスタンプのヘッダーは event_timestamp となります。

1.23.3. 認証および承認

ポリシーコンプライアンス履歴 API は、認証と認可のために Red Hat Advanced Cluster Management ハブクラスターが使用する OpenShift インスタンスを利用します。HTTPS リクエストの Authorization ヘッダーに、OpenShift トークンを指定する必要があります。

トークンを見つけるには、次のコマンドを実行します。

oc whoami --show-token
Copy to Clipboard Toggle word wrap

1.23.3.1. コンプライアンスイベントの表示

マネージドクラスターのコンプライアンスイベントを表示するには、Red Hat Advanced Cluster Management ハブクラスターの ManagedCluster オブジェクトに対する get verb を完了するためのアクセスが必要です。たとえば、local-cluster クラスターのコンプライアンスイベントを表示するには、open-cluster-management:view:local-cluster ClusterRole を使用するか、次の例のように独自のリソースを作成します。

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
 name: local-cluster-view
rules:
- apiGroups:
 - cluster.open-cluster-management.io
 resources:
 - managedclusters
 resourceNames:
 - local-cluster
 verbs:
 - get
Copy to Clipboard Toggle word wrap

特定のマネージドクラスターへのアクセスを確認するには、oc auth can-i コマンドを使用します。たとえば、local-cluster マネージドクラスターにアクセスできるかどうかを確認するには、次のコマンドを実行します。

oc auth can-i get managedclusters.cluster.open-cluster-management.io/local-cluster
Copy to Clipboard Toggle word wrap

1.23.3.2. コンプライアンスイベントの記録

対応するマネージドクラスター namespace の policies.policy.open-cluster-management.io/status リソースで patch verb アクセスを持つユーザーまたはサービスアカウントには、ポリシーコンプライアンスイベントを記録するためのアクセスがあります。マネージドクラスターの governance-policy-framework Pod は、Red Hat Advanced Cluster Management ハブクラスターの対応するマネージドクラスター namespace の open-cluster-management-compliance-history-api-recorder サービスアカウントを使用して、コンプライアンスイベントを記録します。各サービスアカウントには、マネージドクラスター namespace にバインドされた open-cluster-management:compliance-history-api-recorder ClusterRole があります。ユーザーおよびサービスアカウントの patch 動詞によるポリシー status へのアクセスを制限し、ポリシーコンプライアンス履歴 API に保存されているデータの信頼性を確保します。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat