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 によって降順に並べ替えられます。
次のオプションのクエリーパラメーターを使用できます。説明のないものは、参照するフィールドをフィルターするだけであることに注意してください。パラメーター値 null は、値がないことを示します。さらに、コンマを使用して複数の値を指定できます。たとえば、"or" 条件でフィルタリングする場合は ??cluster.name=cluster1,cluster2 とします。必要に応じて、コンマを \ でエスケープできます。
| クエリー引数 | 説明 |
|---|---|
| cluster.cluster_id | |
| cluster.name | |
| direction |
並べ替えの基準となる方向。デフォルトは、降順を表す |
| event.compliance | |
| event.message_includes | 入力文字列を含むコンプライアンスメッセージのフィルター。サポートされる値は 1 つだけです。 |
| event.message_like |
コンプライアンスメッセージの SQL |
| event.reported_by | |
| event.timestamp | |
| event.timestamp_after |
RFC 3339 タイムスタンプ。この時刻以降のコンプライアンスイベントのみを表示することを示します。たとえば、 |
| event.timestamp_before |
RFC 3339 タイムスタンプ。この時刻以前のコンプライアンスイベントのみを表示することを示します。たとえば、 |
| id | |
| include_spec |
戻り値にポリシーの |
| page |
クエリー内のページ番号。デフォルトは |
| parent_policy.categories | |
| parent_policy.controls | |
| parent_policy.id | |
| parent_policy.name | |
| parent_policy.namespace | |
| parent_policy.standards | |
| per_page |
ページごとに返されるコンプライアンスイベントの数。デフォルトは |
| policy.apiGroup | |
| policy.id | |
| policy.kind | |
| policy.name | |
| policy.namespace | |
| policy.severity | |
| sort |
並べ替えに使用するフィールド。デフォルトは |
1.23.2.2. 単一のポリシーコンプライアンスイベントの選択 リンクのコピーリンクがクリップボードにコピーされました!
/api/v1/compliance-events/<id>
データベース ID を指定して、単一のポリシーコンプライアンスイベントを選択できます。たとえば、/api/v1/compliance-events/1 は、ID が 1 のコンプライアンスイベントを選択します。戻り値は次の JSON 形式です。
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
oc whoami --show-token
1.23.3.1. コンプライアンスイベントの表示 リンクのコピーリンクがクリップボードにコピーされました!
マネージドクラスターのコンプライアンスイベントを表示するには、Red Hat Advanced Cluster Management ハブクラスターの ManagedCluster オブジェクトに対する get verb を完了するためのアクセスが必要です。たとえば、local-cluster クラスターのコンプライアンスイベントを表示するには、open-cluster-management:view:local-cluster ClusterRole を使用するか、次の例のように独自のリソースを作成します。
特定のマネージドクラスターへのアクセスを確認するには、oc auth can-i コマンドを使用します。たとえば、local-cluster マネージドクラスターにアクセスできるかどうかを確認するには、次のコマンドを実行します。
oc auth can-i get managedclusters.cluster.open-cluster-management.io/local-cluster
oc auth can-i get managedclusters.cluster.open-cluster-management.io/local-cluster
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 に保存されているデータの信頼性を確保します。