kube-apiserver 审计配置 (v1)

资源类型

Event

出现于

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

字段描述
apiVersion
字符串
audit.k8s.io/v1
kind
字符串
Event
level [必需]
级别

生成事件的审计级别

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

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

stage [必需]
阶段

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

requestURI [必需]
字符串

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

verb [必需]
字符串

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

user [必需]
authentication/v1.UserInfo

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

impersonatedUser
authentication/v1.UserInfo

模拟用户的信息。

authenticationMetadata
AuthenticationMetadata

AuthenticationMetadata 包含有关如何对请求进行身份验证的详细信息。

sourceIPs
[]string

源 IP,请求的来源以及中间代理。源 IP 按顺序列出

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

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

objectRef
ObjectReference

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

responseStatus
meta/v1.Status

响应状态,即使 ResponseObject 不是 Status 类型,也会填充。对于成功的响应,这将仅包含 Code 和 StatusSuccess。对于非状态类型错误响应,这将自动填充错误 Message。

requestObject
k8s.io/apimachinery/pkg/runtime.Unknown

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

responseObject
k8s.io/apimachinery/pkg/runtime.Unknown

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

requestReceivedTimestamp
meta/v1.MicroTime

请求到达 apiserver 的时间。

stageTimestamp
meta/v1.MicroTime

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

annotations
map[string]string

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

EventList

EventList 是审计 Event 的列表。

字段描述
apiVersion
字符串
audit.k8s.io/v1
kind
字符串
EventList
metadata
meta/v1.ListMeta
未提供描述。
items [必需]
[]Event
未提供描述。

策略

出现于

Policy 定义审计日志的配置以及不同请求类别记录方式的规则。

字段描述
apiVersion
字符串
audit.k8s.io/v1
kind
字符串
策略
metadata
meta/v1.ObjectMeta

ObjectMeta 包含用于与 API 基础设施互操作的信息。

请参阅 Kubernetes API 文档以获取 metadata 字段的字段。
rules [必需]
[]PolicyRule

规则指定应以审计级别记录请求。如果请求匹配多个规则,则使用第一个匹配规则。默认审计级别为 None,但可以被列表末尾的 catch-all 规则覆盖。PolicyRules 严格排序。

omitStages
[]Stage

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

omitManagedFields
bool

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

PolicyList

PolicyList 是审计 Policy 的列表。

字段描述
apiVersion
字符串
audit.k8s.io/v1
kind
字符串
PolicyList
metadata
meta/v1.ListMeta
未提供描述。
items [必需]
[]Policy
未提供描述。

AuthenticationMetadata

出现于

字段描述
impersonationConstraint
字符串

ImpersonationConstraint 是与用于授权与此审计事件关联的 ImpersonatedUser 的约束模拟模式关联的动词。仅在使用了约束模拟时才设置。

GroupResources

出现于

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

字段描述
group
字符串

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

resources
[]string

Resources 是此规则应用的资源列表。

例如

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

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

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

resourceNames
[]string

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

级别

(string 的别名)

出现于

Level 定义审计期间记录的信息量

ObjectReference

出现于

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

字段描述
资源
字符串
未提供描述。
命名空间
字符串
未提供描述。
name
字符串
未提供描述。
uid
k8s.io/apimachinery/pkg/types.UID
未提供描述。
apiGroup
字符串

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

apiVersion
字符串

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

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

PolicyRule

出现于

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

字段描述
level [必需]
级别

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

users
[]string

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

userGroups
[]string

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

verbs
[]string

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

resources
[]GroupResources

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

namespaces
[]string

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

nonResourceURLs
[]string

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

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

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

omitManagedFields
bool

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

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

阶段

(string 的别名)

出现于

Stage 定义审计事件可能生成的请求处理阶段。

本页面是自动生成的。

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

上次修改时间为 2025 年 12 月 21 日下午 8:51 PST:更新 v1.35 版本的配置 API 参考 (efb02468c4)