|
この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。 |
|
これは未公開の文書です Admission Controller 1.34-dev. |
監査スキャナー - ポリシーレポート
SUSE Security Admission Controller監査スキャナーを使用する際、https://openreports.io/[OpenReports]カスタムリソースを使用してポリシースキャンの結果を保存します。
|
SUSE Security Admission Controller 1.33では、監査スキャナー機能がデフォルトで[openreports.io](https://openreports.io)のOpenReports CRDにレポートを保存します。 K8sポリシー作業グループのPolicyReportCRDは、デフォルトではインストールされず、廃止としてマークされ、将来のリリースで削除される予定です。 廃止されたPolicyReports、つまり1.33以前の動作を引き続き使用したいユーザーは、次のことを行う必要があります: |
これらのOpenReport CRDは、監査結果を保存および管理するための構造化された方法を提供します。
`Report`と`ClusterReport`を使用して監査スキャナーのポリシースキャン結果を保存します。 監査スキャナーは、リソースのスコープに応じて、各スキャンされたリソースのために`Report`または`ClusterReport`を作成します。`Report`オブジェクトはリソースのネームスペースで利用可能であり、`ClusterReport`オブジェクトはクラスターのスコープで利用可能です。
スキャナーによって生成された監査結果には以下が含まれます:
-
評価されたポリシー
-
スキャンされたリソース
-
評価の結果(合格、不合格、またはスキップ)
-
評価が行われた日時を示すタイムスタンプ。
ポリシーのために重大度とカテゴリの注釈を定義することもできます。
オペレーターは`kubectl`を使用してレポートを照会できます。彼らはまた、https://kyverno.github.io/policy-reporter[policy-reporter]オープンソースプロジェクトが提供するオプションのUIを使用して、OpenReports CRDのモニタリングと監視を行うことができます。
レポートの照会
kubectl CLIを使用すると、スキャンの結果を照会することができます:
デフォルトのネームスペース内のレポートをリストします:
$ kubectl get report -o wide
NAME KIND NAME PASS FAIL WARN ERROR SKIP AGE
44da974b-6057-4745-a92c-9dd8a1b01cc4 Pod nginx-secrets 6 1 0 0 0 33m
クラスター全体のレポートをリストします:
$ kubectl get clusterreport -o wide
NAME KIND NAME PASS FAIL WARN ERROR SKIP AGE
6c66175f-e15f-47e8-8c33-2c63d5ecde3e Namespace namespace1 3 1 0 0 0 1h
d0ffbf4f-7348-4350-af7b-fdbfc079cc49 Namespace namespace2 0 4 0 0 0 1h
e48d9bbc-a9c4-4c36-8519-bc7390d9ec64 Namespace namespace3 4 0 0 0 0 15h
特定のレポートの詳細を取得します:
kubectl get report 44da974b-6057-4745-a92c-9dd8a1b01cc4 -o yaml
特定のClusterReportの詳細を取得します:
kubectl get clusterreport e48d9bbc-a9c4-4c36-8519-bc7390d9ec64 -o yaml
レポートの例
以下の例は、`Report`リソースの`Deployment`に対する`deployment1`を`default`ネームスペースで示しています。レポートは、`Pod`が`safe-labels`AdmissionPolicyに失敗したことを示しています。
apiVersion: wgpolicyk8s.io/v1beta1
kind: PolicyReport
metadata:
creationTimestamp: “2024-02-29T06:55:37Z”
generation: 6
labels:
app.kubernetes.io/managed-by: kubewarden
kubewarden.io/policyreport-version: v2
name: 009805e4-6e16-4b70-80c9-cb33b6734c82
namespace: default
ownerReferences:
- apiVersion: apps/v1
kind: Deployment
name: deployment1
uid: 009805e4-6e16-4b70-80c9-cb33b6734c82
resourceVersion: “2685996”
uid: c5a88847-d678-4733-8120-1b83fd6330cb
results:
- category: Resource validation
message: “The following mandatory labels are missing: cost-center”
policy: namespaced-default-safe-labels
properties:
policy-resource-version: “2684810”
policy-uid: 826dd4ef-9db5-408e-9482-455f278bf9bf
policy-name: “safe-labels”
policy-namespace: “default”
validating: “true”
resourceSelector: {}
result: fail
scored: true
severity: low
source: kubewarden
timestamp:
nanos: 0
seconds: 1709294251
scope:
apiVersion: apps/v1
kind: Deployment
name: deployment1
namespace: default
resourceVersion: “3”
uid: 009805e4-6e16-4b70-80c9-cb33b6734c82
summary:
error: 0
fail: 1
pass: 0
skip: 0
warn: 0
ClusterReportの例
以下の例は、`ClusterReport`リソースの`Namespace`に対する`default`を示しています。レポートは、そのリソースが`safe-annotations`ClusterAdmissionPolicyの検証に失敗したことを示しています。
apiVersion: wgpolicyk8s.io/v1beta1
kind: ClusterPolicyReport
metadata:
creationTimestamp: “2024-02-28T14:44:37Z”
generation: 3
labels:
app.kubernetes.io/managed-by: kubewarden
kubewarden.io/policyreport-version: v2
name: 261c9492-deec-4a09-8aa9-cd464bb4b8d1
ownerReferences:
- apiVersion: v1
kind: Namespace
name: default
uid: 261c9492-deec-4a09-8aa9-cd464bb4b8d1
resourceVersion: “2403034”
uid: 20a3d00e-e955-4f21-a887-317d40f3f052
results:
- category: Resource validation
message: “The following mandatory annotations are not allowed: owner”
policy: clusterwide-safe-annotations
properties:
policy-resource-version: “2396437”
policy-uid: 46780d6e-e51a-4d65-8572-a6af01380aa7
policy-name: “safe-annotations”
validating: “true”
resourceSelector: {}
result: fail
scored: true
severity: low
source: kubewarden
timestamp:
nanos: 0
seconds: 1709294251
scope:
apiVersion: v1
kind: Namespace
name: default
resourceVersion: “37”
uid: 261c9492-deec-4a09-8aa9-cd464bb4b8d1
summary:
error: 0
fail: 1
pass: 0
skip: 0
warn: 0
ポリシーレポータUI
ポリシーレポータは`kubewarden-controller`のサブチャートとして提供されます。詳細については、Audit Scanner Installationページを参照してください。
ポリシーレポータUIは、すべての違反を示すダッシュボードを提供します。以下のスクリーンショットを参照してください:
Admission Controllerは、Admission Controllerポリシーのみを表示する事前設定済みのフィルターを備えたポリシーレポータUIを搭載し、拡張情報を提供します。
ポリシーレポータのその他の機能には、結果を異なるクライアント(Grafana Loki、Elasticsearch、チャットアプリケーションなど)に転送すること、メトリックエンドポイント、その他が含まれます。詳細については、https://kyverno.github.io/policy-reporter[ポリシーレポータのコミュニティドキュメント]をご覧ください。