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 描述审计规则:
Audit 策略配置示例
apiVersion: audit.k8s.io/v1beta1
kind: Policy
rules:
# Do not log watch requests by the "system:kube-proxy" on endpoints or services
- level: None
users: ["system:kube-proxy"]
verbs: ["watch"]
resources:
- group: ""
resources: ["endpoints", "services"]
# Do not log authenticated requests to certain non-resource URL paths.
- level: None
userGroups: ["system:authenticated"]
nonResourceURLs:
- "/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"]
# 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
# Log login failures from the web console or CLI. Review the logs and refine your policies.
- level: Metadata
nonResourceURLs:
- /login*
- /oauth*
- 1 8
- 每个事件都可以记录四个可能级别:
-
None- 不记录与此规则匹配的日志事件。 -
Metadata- 日志请求元数据(请求用户、时间戳、资源、操作等),但不请求或响应正文。这与基本审计中使用的级别相同。 -
Request- 日志记录事件元数据和请求正文,但不包括响应的正文。 -
RequestResponse- 日志记录事件元数据、请求和响应正文。
-
- 2
- 适用于规则的用户列表。一个空列表表示每个用户。
- 3
- 此规则应用到的操作动词列表。一个空列表表示每个动词。这是与 API 请求关联的 Kubernetes 动词(包括
get,list,watch,create,update,patch,delete,deletecollection, 和proxy)。 - 4
- 适用于该规则的资源列表。一个空列表表示每个资源。每个资源都被指定为分配给的组(例如,Kubernetes 核心 API、批处理、build.openshift.io 等)的空项,以及该组中的资源列表。
- 5
- 适用于该规则的组列表。一个空列表表示每个组。
- 6
- 规则应用到的非资源 URL 列表。
- 7
- 适用于规则的命名空间列表。一个空列表表示每个命名空间。
- 9
- Web 控制台使用的端点。
- 10
- CLI 使用的端点。
如需有关高级审计的更多信息,请参阅 Kubernetes 文档