7.6.19. 高度な監査
高度な監査機能は、詳細なイベントのフィルターリングや複数の出力バックエンドなど、基本的な監査機能 に対するいくつかの改良機能を提供します。
高度な監査機能を有効にするには、監査ポリシーファイルを作成し、以下の値を openshift_master_audit_config
および openshift_master_audit_policyfile
パラメーターに指定します。
openshift_master_audit_config={"enabled": true, "auditFilePath": "/var/log/origin/audit-ocp.log", "maximumFileRetentionDays": 14, "maximumFileSizeMegabytes": 500, "maximumRetainedFiles": 5, "policyFile": "/etc/origin/master/adv-audit.yaml", "logFormat":"json"} openshift_master_audit_policyfile="/<path>/adv-audit.yaml"
adv-audit.yaml ファイルを作成してからクラスターをインストールし、その場所をクラスターのインベントリーファイルに指定する必要があります。
以下の表には、使用できる追加のオプションが含まれています。
パラメーター名 | 説明 |
---|---|
| 監査ポリシー設定を定義するファイルへのパスです。 |
| 組み込まれる監査ポリシー設定です。 |
|
保存される監査ログのフォーマットを指定します。許可されている値は |
|
監査の Webhook 設定を定義する |
|
監査イベントを送信するためのストラテジーを指定します。許可される値は |
高度な監査機能を有効にするには、監査ポリシールールを記述する policyFile
または policyConfiguration
を指定する必要があります。
監査ポリシーの設定例
apiVersion: audit.k8s.io/v1beta1 kind: Policy rules: # Do not log watch requests by the "system:kube-proxy" on endpoints or services - level: None 1 users: ["system:kube-proxy"] 2 verbs: ["watch"] 3 resources: 4 - group: "" resources: ["endpoints", "services"] # Do not log authenticated requests to certain non-resource URL paths. - level: None userGroups: ["system:authenticated"] 5 nonResourceURLs: 6 - "/api*" # Wildcard matching. - "/version" # Log the request body of configmap changes in kube-system. - level: Request resources: - group: "" # core API group resources: ["configmaps"] # This rule only applies to resources in the "kube-system" namespace. # The empty string "" can be used to select non-namespaced resources. namespaces: ["kube-system"] 7 # Log configmap and secret changes in all other namespaces at the metadata level. - level: Metadata resources: - group: "" # core API group resources: ["secrets", "configmaps"] # Log all other resources in core and extensions at the request level. - level: Request resources: - group: "" # core API group - group: "extensions" # Version of group should NOT be included. # A catch-all rule to log all other requests at the Metadata level. - level: Metadata 8 # Log login failures from the web console or CLI. Review the logs and refine your policies. - level: Metadata nonResourceURLs: - /login* 9 - /oauth* 10
- 1 8
- すべてのイベントは以下の 4 つのレベルでログに記録できます。
-
None
- このルールに一致するイベントは記録されません。 -
Metadata
- 要求のメタデータ (要求しているユーザー、タイムスタンプ、リソース、verb など) をログに記録します。要求または応答本体はログに記録しません。 基本的な監査で使用されるレベルと同じレベルになります。 -
Request
- イベントのメタデータと要求本体をログに記録します。 応答本体はログに記録しません。 -
RequestResponse
- イベントのメタデータ、要求、および応答本体をログに記録します。
-
- 2
- このルールが適用されるユーザーの一覧です。一覧が空の場合はすべてのユーザーに適用されます。
- 3
- このルールが適用される verb の一覧です。一覧が空の場合はすべての verb に適用されます。これは API 要求に関連付けられる Kubernetes の verb です (
get
、list
、watch
、create
、update
、patch
、delete
、deletecollection
、proxy
など)。 - 4
- このルールが適用されるリソースの一覧です。一覧が空の場合はすべてのリソースに適用されます。各リソースは、それが割り当てられるグループ (例: 空の場合は Kubernetes core API、バッチ、build.openshift.io などを指します) 、およびそのグループのリソース一覧として指定されます。
- 5
- このルールが適用されるグループの一覧です。一覧が空の場合はすべてのグループに適用されます。
- 6
- このルールが適用されるリソース以外の URL の一覧です。
- 7
- このルールが適用される namespace の一覧です。一覧が空の場合はすべての namespace に適用されます。
- 9
- Web コンソールが使用するエンドポイントです。
- 10
- CLI が使用するエンドポイントです。
高度な監査についての詳細は、Kubernetes のドキュメント を参照してください。