kube-apiserver 审计配置 (v1)

资源类型

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

模拟的用户信息。

sourceIPs
[]string

源 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 记录客户端报告的用户代理字符串。请注意,UserAgent 由客户端提供,不能信任。

objectRef
ObjectReference

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

responseStatus
meta/v1.Status

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

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

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

事件列表

EventList 是审计事件的列表。

字段描述
apiVersion
字符串
audit.k8s.io/v1
kind
字符串
事件列表
metadata
meta/v1.ListMeta
没有提供描述。
items [必需]
[]Event
没有提供描述。

策略

出现在

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

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

ObjectMeta 包含是为了与 API 基础结构互操作。

有关 metadata 字段的字段,请参阅 Kubernetes API 文档。
rules [必需]
[]PolicyRule

规则指定应记录请求的审计级别。一个请求可能匹配多个规则,在这种情况下,将使用第一个匹配的规则。默认的审计级别为 None,但可以通过列表末尾的捕获所有规则覆盖。PolicyRules 是严格排序的。

omitStages
[]Stage

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

omitManagedFields
bool

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

策略列表

PolicyList 是审计策略的列表。

字段描述
apiVersion
字符串
audit.k8s.io/v1
kind
字符串
策略列表
metadata
meta/v1.ListMeta
没有提供描述。
items [必需]
[]Policy
没有提供描述。

GroupResources

出现在

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

字段描述
group
字符串

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

resources
[]string

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

例如

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

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

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

resourceNames
[]string

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

级别

string 的别名)

出现在

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

ObjectReference

出现在

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

字段描述
resource
字符串
没有提供描述。
namespace
字符串
没有提供描述。
name
字符串
没有提供描述。
uid
k8s.io/apimachinery/pkg/types.UID
没有提供描述。
apiGroup
字符串

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

apiVersion
字符串

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

resourceVersion
字符串
没有提供描述。
subresource
字符串
没有提供描述。

PolicyRule

出现在

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

字段描述
level [必需]
级别

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

users
[]string

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

userGroups
[]string

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

verbs
[]string

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

resources
[]GroupResources

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

namespaces
[]string

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

nonResourceURLs
[]string

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

  • /metrics - 记录 apiserver 指标的请求
  • /healthz* - 记录所有运行状况检查
omitStages
[]Stage

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

omitManagedFields
bool

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

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

阶段

string 的别名)

出现在

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

此页面是自动生成的。

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

上次修改时间为 2024 年 12 月 12 日下午 5:37 PST: 更新 v1.32 的配置 API (2914668152)