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 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
- 每个事件都可以记录四个可能级别:
-
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 文档