仅记录读取和写入请求的元数据;不记录请求正文,除非是 OAuth 访问令牌请求。这是默认策略。
您可以通过选择要使用的审计日志策略配置文件来控制记录到 API 服务器审计日志中的信息量。
审计日志配置文件定义如何记录到达 OpenShift API 服务器、Kubernetes API 服务器、OpenShift OAuth API 服务器和 OpenShift OAuth 服务器的请求。
OpenShift Container Platform 提供以下预定义的审计策略配置文件
配置文件 | 描述 | ||
---|---|---|---|
|
仅记录读取和写入请求的元数据;不记录请求正文,除非是 OAuth 访问令牌请求。这是默认策略。 |
||
|
除了记录所有请求的元数据外,还记录对 API 服务器的每个写入请求的请求正文(`create`、`update`、`patch`、`delete`、`deletecollection`)。此配置文件比`Default`配置文件具有更高的资源开销。[1] |
||
|
除了记录所有请求的元数据外,还记录对 API 服务器的每个读取和写入请求的请求正文(`get`、`list`、`create`、`update`、`patch`)。此配置文件的资源开销最大。[1] |
||
|
不记录任何请求,包括 OAuth 访问令牌请求和 OAuth 授权令牌请求。设置此配置文件时,将忽略自定义规则。
|
敏感资源(例如`Secret`、`Route`和`OAuthClient`对象)仅在元数据级别记录。OpenShift OAuth 服务器事件仅在元数据级别记录。
默认情况下,OpenShift Container Platform 使用 `Default` 审计日志配置文件。您可以使用其他审计策略配置文件,该配置文件也会记录请求正文,但请注意,这会增加资源使用量,例如 CPU、内存和 I/O。
您可以配置在记录到达 API 服务器的请求时使用的审计日志策略。
您可以作为具有 `cluster-admin` 角色的用户访问集群。
编辑 `APIServer` 资源
$ oc edit apiserver cluster
更新 `spec.audit.profile` 字段
apiVersion: config.openshift.io/v1
kind: APIServer
metadata:
...
spec:
audit:
profile: WriteRequestBodies (1)
1 | 设置为 `Default`、`WriteRequestBodies`、`AllRequestBodies` 或 `None`。默认配置文件为 `Default`。 |
除非您完全了解不记录在故障排除时可能会有益的数据的风险,否则不建议使用 `None` 配置文件禁用审计日志记录。如果您禁用了审计日志记录并且出现支持问题,则可能需要启用审计日志记录并重现问题才能正确进行故障排除。 |
保存文件以应用更改。
验证 Kubernetes API 服务器 pod 的新版本是否已推出。所有节点更新到新版本可能需要几分钟时间。
$ oc get kubeapiserver -o=jsonpath='{range .items[0].status.conditions[?(@.type=="NodeInstallerProgressing")]}{.reason}{"\n"}{.message}{"\n"}'
查看 Kubernetes API 服务器的 `NodeInstallerProgressing` 状态条件,以验证所有节点是否都处于最新版本。成功更新后,输出显示 `AllNodesAtLatestRevision`
AllNodesAtLatestRevision
3 nodes are at revision 12 (1)
1 | 在此示例中,最新版本号为 `12`。 |
如果输出显示类似于以下消息之一的消息,则更新仍在进行中。等待几分钟,然后重试。
3 个节点处于版本 11;0 个节点已达到新版本 12
2 个节点处于版本 11;1 个节点处于版本 12
您可以配置定义自定义规则的审计日志策略。您可以指定多个组并定义要为该组使用的配置文件。
这些自定义规则优先于顶级配置文件字段。自定义规则从上到下进行评估,并且应用第一个匹配的规则。
如果顶级配置文件字段设置为 `None`,则忽略自定义规则。 |
您可以作为具有 `cluster-admin` 角色的用户访问集群。
编辑 `APIServer` 资源
$ oc edit apiserver cluster
添加 `spec.audit.customRules` 字段
apiVersion: config.openshift.io/v1
kind: APIServer
metadata:
...
spec:
audit:
customRules: (1)
- group: system:authenticated:oauth
profile: WriteRequestBodies
- group: system:authenticated
profile: AllRequestBodies
profile: Default (2)
1 | 添加一个或多个组,并为该组指定要使用的配置文件。这些自定义规则优先于顶级配置文件字段。自定义规则从上到下进行评估,并且应用第一个匹配的规则。 |
2 | 设置为 `Default`、`WriteRequestBodies` 或 `AllRequestBodies`。如果您不设置此顶级配置文件字段,则默认为 `Default` 配置文件。 |
如果您要使用自定义规则,请不要将顶级配置文件字段设置为 `None`。如果顶级配置文件字段设置为 `None`,则忽略自定义规则。 |
保存文件以应用更改。
验证 Kubernetes API 服务器 pod 的新版本是否已推出。所有节点更新到新版本可能需要几分钟时间。
$ oc get kubeapiserver -o=jsonpath='{range .items[0].status.conditions[?(@.type=="NodeInstallerProgressing")]}{.reason}{"\n"}{.message}{"\n"}'
查看 Kubernetes API 服务器的 `NodeInstallerProgressing` 状态条件,以验证所有节点是否都处于最新版本。成功更新后,输出显示 `AllNodesAtLatestRevision`
AllNodesAtLatestRevision
3 nodes are at revision 12 (1)
1 | 在此示例中,最新版本号为 `12`。 |
如果输出显示类似于以下消息之一的消息,则更新仍在进行中。等待几分钟,然后重试。
3 个节点处于版本 11;0 个节点已达到新版本 12
2 个节点处于版本 11;1 个节点处于版本 12
您可以为 OpenShift Container Platform 禁用审计日志记录。禁用审计日志记录后,甚至不会记录 OAuth 访问令牌请求和 OAuth 授权令牌请求。
除非您完全了解不记录在故障排除时可能会有益的数据的风险,否则不建议使用 `None` 配置文件禁用审计日志记录。如果您禁用了审计日志记录并且出现支持问题,则可能需要启用审计日志记录并重现问题才能正确进行故障排除。 |
您可以作为具有 `cluster-admin` 角色的用户访问集群。
编辑 `APIServer` 资源
$ oc edit apiserver cluster
将 `spec.audit.profile` 字段设置为 `None`
apiVersion: config.openshift.io/v1
kind: APIServer
metadata:
...
spec:
audit:
profile: None
您还可以通过在 `spec.audit.customRules` 字段中指定自定义规则来仅为特定组禁用审计日志记录。 |
保存文件以应用更改。
验证 Kubernetes API 服务器 pod 的新版本是否已推出。所有节点更新到新版本可能需要几分钟时间。
$ oc get kubeapiserver -o=jsonpath='{range .items[0].status.conditions[?(@.type=="NodeInstallerProgressing")]}{.reason}{"\n"}{.message}{"\n"}'
查看 Kubernetes API 服务器的 `NodeInstallerProgressing` 状态条件,以验证所有节点是否都处于最新版本。成功更新后,输出显示 `AllNodesAtLatestRevision`
AllNodesAtLatestRevision
3 nodes are at revision 12 (1)
1 | 在此示例中,最新版本号为 `12`。 |
如果输出显示类似于以下消息之一的消息,则更新仍在进行中。等待几分钟,然后重试。
3 个节点处于版本 11;0 个节点已达到新版本 12
2 个节点处于版本 11;1 个节点处于版本 12