kube-apiserver 审计配置 (v1)

资源类型

Event

出现在

事件捕获可以包含在 API 审计日志中的所有信息。

字段描述
apiVersion
字符串
audit.k8s.io/v1
种类
字符串
Event
级别 [必填]
级别

生成事件时的审计级别

auditID [必填]
k8s.io/apimachinery/pkg/types.UID

唯一的审计 ID,为每个请求生成。

阶段 [必填]
阶段

生成此事件实例时请求处理的阶段。

requestURI [必填]
字符串

RequestURI 是客户端发送到服务器的请求 URI。

动词 [必填]
字符串

动词是与请求关联的 Kubernetes 动词。对于非资源请求,这是小写的 HTTP 方法。

用户 [必填]
身份验证/v1.UserInfo

经过身份验证的用户信息。

模拟用户
身份验证/v1.UserInfo

模拟用户信息。

来源 IP
[]字符串

来源 IP,请求来自哪里以及中间代理。来源 IP 按以下顺序列出

  1. X-Forwarded-For 请求标头 IP
  2. X-Real-Ip 标头,如果 X-Forwarded-For 列表中不存在
  3. 连接的远程地址,如果它与列表中最后一个 IP(X-Forwarded-For 或 X-Real-Ip)不匹配。注意:除最后一个 IP 外,所有 IP 都可以由客户端任意设置。
用户代理
字符串

UserAgent 记录客户端报告的用户代理字符串。请注意,UserAgent 由客户端提供,并且不得信任。

对象引用
ObjectReference

此请求针对的对象引用。不适用于列表类型请求或非资源请求。

响应状态
元数据/v1.状态

响应状态,即使 ResponseObject 不是状态类型也会填充。对于成功的响应,这将仅包括代码和 StatusSuccess。对于非状态类型的错误响应,这将自动填充错误消息。

请求对象
k8s.io/apimachinery/pkg/runtime.Unknown

来自请求的 API 对象,采用 JSON 格式。RequestObject 在版本转换、默认设置、准入或合并之前按原样记录在请求中(可能重新编码为 JSON)。它是一个外部版本化的对象类型,并且本身可能不是有效的对象。非资源请求省略。仅在请求级别及更高级别记录。

响应对象
k8s.io/apimachinery/pkg/runtime.Unknown

响应中返回的 API 对象,采用 JSON 格式。ResponseObject 在转换为外部类型并序列化为 JSON 后记录。非资源请求省略。仅在响应级别记录。

requestReceivedTimestamp
元数据/v1.MicroTime

请求到达 apiserver 的时间。

stageTimestamp
元数据/v1.MicroTime

请求到达当前审计阶段的时间。

注释
map[string]string

注释是一个非结构化的键值映射,与审计事件一起存储,可以由请求服务链中调用的插件设置,包括身份验证、授权和准入插件。请注意,这些注释用于审计事件,并且与提交对象的 metadata.annotations 不对应。键应该唯一标识通知组件以避免名称冲突(例如 podsecuritypolicy.admission.k8s.io/policy)。值应该简短。注释包含在元数据级别。

事件列表

事件列表是审计事件的列表。

字段描述
apiVersion
字符串
audit.k8s.io/v1
种类
字符串
事件列表
元数据
元数据/v1.ListMeta
未提供描述。
项目 [必填]
[]事件
未提供描述。

策略

出现在

策略定义审计日志记录的配置,以及如何记录不同请求类别的规则。

字段描述
apiVersion
字符串
audit.k8s.io/v1
种类
字符串
策略
元数据
元数据/v1.ObjectMeta

包含 ObjectMeta 以实现与 API 基础结构的互操作性。

有关元数据字段的字段,请参阅 Kubernetes API 文档。
规则 [必填]
[]PolicyRule

规则指定应记录请求的审计级别。一个请求可以匹配多个规则,在这种情况下,将使用第一个匹配的规则。默认审计级别为“无”,但可以被列表末尾的包罗万象规则覆盖。PolicyRules 是严格排序的。

omitStages
[]阶段

OmitStages 是不为其创建事件的阶段列表。请注意,这也可以为每个规则指定,在这种情况下,将省略两者的并集。

omitManagedFields
布尔值

OmitManagedFields 指示是否省略将请求和响应主体的托管字段写入 API 审计日志。这用作全局默认值 - 值“true”将省略托管字段,否则托管字段将包含在 API 审计日志中。请注意,这也可以为每个规则指定,在这种情况下,规则中指定的值将覆盖全局默认值。

策略列表

策略列表是审计策略的列表。

字段描述
apiVersion
字符串
audit.k8s.io/v1
种类
字符串
策略列表
元数据
元数据/v1.ListMeta
未提供描述。
项目 [必填]
[]策略
未提供描述。

GroupResources

出现在

GroupResources 表示 API 组中的资源种类。

字段描述

字符串

组是包含资源的 API 组的名称。空字符串表示核心 API 组。

资源
[]字符串

资源是此规则适用的资源列表。

例如

  • pods 匹配 pods。
  • pods/log 匹配 pods 的日志子资源。
  • * 匹配所有资源及其子资源。
  • pods/* 匹配 pods 的所有子资源。
  • */scale 匹配所有规模子资源。

如果存在通配符,则验证规则将确保资源不会相互重叠。

空列表表示此 API 组中的所有资源和子资源都适用。

资源名称
[]字符串

ResourceNames 是策略匹配的资源实例名称列表。使用此字段需要指定资源。空列表表示匹配资源的每个实例。

级别

字符串的别名)

出现在

级别定义在审计期间记录的信息量

ObjectReference

出现在

ObjectReference 包含足够的信息,可以让您检查或修改引用的对象。

字段描述
资源
字符串
未提供描述。
命名空间
字符串
未提供描述。
名称
字符串
未提供描述。
用户标识
k8s.io/apimachinery/pkg/types.UID
未提供描述。
apiGroup
字符串

APIGroup 是包含引用对象的 API 组的名称。空字符串表示核心 API 组。

apiVersion
字符串

APIVersion 是包含引用对象的 API 组的版本。

资源版本
字符串
未提供描述。
子资源
字符串
未提供描述。

PolicyRule

出现在

PolicyRule 根据元数据将请求映射到审计级别。请求必须匹配每个字段的规则(规则的交集)。

字段描述
级别 [必填]
级别

记录与此规则匹配的请求的级别。

用户
[]字符串

此规则适用的用户(按经过身份验证的用户名)。空列表表示每个用户。

用户组
[]字符串

此规则适用的用户组。如果用户是任何 UserGroups 的成员,则认为该用户匹配。空列表表示每个用户组。

动词
[]字符串

与此规则匹配的动词。空列表表示每个动词。

资源
[]GroupResources

此规则匹配的资源。空列表表示所有 API 组中的所有种类。

命名空间
[]字符串

此规则匹配的命名空间。空字符串 "" 匹配非命名空间资源。空列表表示每个命名空间。

nonResourceURLs
[]字符串

NonResourceURLs 是一组应审计的 URL 路径。允许使用*,但只能作为路径中的完整最终步骤。例子

  • /metrics - 记录 apiserver 指标的请求
  • /healthz* - 记录所有健康检查
omitStages
[]阶段

OmitStages 是不为其创建事件的阶段列表。请注意,这也可以在策略范围内指定,在这种情况下,将省略两者的并集。空列表表示不适用任何限制。

omitManagedFields
布尔值

OmitManagedFields 指示是否省略将请求和响应主体的托管字段写入 API 审计日志。

  • 值“true”将从 API 审计日志中删除托管字段
  • 值“false”表示托管字段应包含在 API 审计日志中。请注意,如果指定,此规则中的值将覆盖全局默认值。如果未指定值,则将使用 Policy.OmitManagedFields 中指定的全局默认值。

阶段

字符串的别名)

出现在

阶段定义了在请求处理中可以生成审计事件的阶段。

此页面是自动生成的。

如果您打算报告此页面的问题,请在问题描述中提及此页面是自动生成的。修复可能需要在 Kubernetes 项目的其他地方进行。

上次修改时间:2024 年 4 月 18 日太平洋标准时间下午 7:57:v1.30 的配置 API 参考 (6fa7b80ae3)