Information in this document may be out of date
This document has an older update date than the original, so the information it contains may be out of date. If you're able to read English, see the English version for the most up-to-date information: kube-apiserver Audit Configuration (v1)
kube-apiserver Audit 配置 (v1)
资源类型
Event
出现在:
Event 结构包含可出现在 API 审计日志中的所有信息。
字段 | 描述 |
---|---|
apiVersion string | audit.k8s.io/v1 |
kind string | Event |
level [必需]Level | 生成事件所对应的审计级别。 |
auditID [必需]k8s.io/apimachinery/pkg/types.UID | 为每个请求所生成的唯一审计 ID。 |
stage [必需]Stage | 生成此事件时请求的处理阶段。 |
requestURI [必需]string | requestURI 是客户端发送到服务器端的请求 URI。 |
verb [必需]string | verb 是与请求对应的 Kubernetes 动词。对于非资源请求,此字段为 HTTP 方法的小写形式。 |
user [必需]authentication/v1.UserInfo | 关于认证用户的信息。 |
impersonatedUser authentication/v1.UserInfo | 关于所伪装(impersonated)的用户的信息。 |
sourceIPs []string | 发起请求和中间代理的源 IP 地址。 源 IP 从以下(按顺序)列出:
|
userAgent string | userAgent 中记录客户端所报告的用户代理(User Agent)字符串。 注意 userAgent 信息是由客户端提供的,一定不要信任。 |
objectRef ObjectReference | 此请求所指向的对象引用。对于 List 类型的请求或者非资源请求,此字段可忽略。 |
responseStatus meta/v1.Status | 响应的状态,当 responseObject 不是 Status 类型时被赋值。 对于成功的请求,此字段仅包含 code 和 statusSuccess。 对于非 Status 类型的错误响应,此字段会被自动赋值为出错信息。 |
requestObject k8s.io/apimachinery/pkg/runtime.Unknown | 来自请求的 API 对象,以 JSON 格式呈现。requestObject 在请求中按原样记录 (可能会采用 JSON 重新编码),之后会进入版本转换、默认值填充、准入控制以及 配置信息合并等阶段。此对象为外部版本化的对象类型,甚至其自身可能并不是一个 合法的对象。对于非资源请求,此字段被忽略。 只有当审计级别为 Request 或更高的时候才会记录。 |
responseObject k8s.io/apimachinery/pkg/runtime.Unknown | 响应中包含的 API 对象,以 JSON 格式呈现。requestObject 是在被转换为外部类型 并序列化为 JSON 格式之后才被记录的。 对于非资源请求,此字段会被忽略。 只有审计级别为 Response 时才会记录。 |
requestReceivedTimestamp meta/v1.MicroTime | 请求到达 API 服务器时的时间。 |
stageTimestamp meta/v1.MicroTime | 请求到达当前审计阶段时的时间。 |
annotations map[string]string | annotations 是一个无结构的键-值映射,其中保存的是一个审计事件。 该事件可以由请求处理链路上的插件来设置,包括身份认证插件、鉴权插件以及 准入控制插件等。 注意这些注解是针对审计事件本身的,与所提交的对象中的 metadata.annotations 之间不存在对应关系。 映射中的键名应该唯一性地标识生成该事件的组件,从而避免名字上的冲突 (例如 podsecuritypolicy.admission.k8s.io/policy)。 映射中的键值应该比较简洁。 当审计级别为 Metadata 时会包含 annotations 字段。 |
EventList
EventList 是审计事件(Event)的列表。
字段 | 描述 |
---|---|
apiVersion string | audit.k8s.io/v1 |
kind string | EventList |
metadata meta/v1.ListMeta | 列表结构元数据 |
items [必需][]Event | 事件对象列表 |
Policy
出现在:
Policy 定义的是审计日志的配置以及不同类型请求的日志记录规则。
字段 | 描述 |
---|---|
apiVersion string | audit.k8s.io/v1 |
kind string | Policy |
metadata meta/v1.ObjectMeta | 包含 metadata 字段的详细信息。 |
rules [必需][]PolicyRule | 字段 rules 设置请求要被记录的审计级别(level)。 每个请求可能会与多条规则相匹配;发生这种状况时遵从第一条匹配规则。 默认的审计级别是 None,不过可以在列表的末尾使用一条全抓(catch-all)规则 重载其设置。 列表中的规则(PolicyRule)是严格有序的。 |
omitStages []Stage | 字段 omitStages 是一个阶段(Stage)列表,其中包含无须生成事件的阶段。 注意这一选项也可以通过每条规则来设置。 审计组件最终会忽略出现在 omitStages 中阶段,也会忽略规则中的阶段。 |
omitManagedFields bool | omitManagedFields 标明将请求和响应主体写入 API 审计日志时,是否省略其托管字段。 此字段值用作全局默认值 - 'true' 值将省略托管字段,否则托管字段将包含在 API 审计日志中。 请注意,也可以按规则指定此值,在这种情况下,规则中指定的值将覆盖全局默认值。 |
PolicyList
PolicyList 是由审计策略(Policy)组成的列表。
字段 | 描述 |
---|---|
apiVersion string | audit.k8s.io/v1 |
kind string | PolicyList |
metadata meta/v1.ListMeta | 列表结构元数据。 |
items [必需][]Policy | 策略(Policy)对象列表。 |
GroupResources
出现在:
GroupResources 代表的是某 API 组中的资源类别。
字段 | 描述 |
---|---|
group string | 字段 group 给出包含资源的 API 组的名称。
空字符串代表 core API 组。 |
resources []string | 例如:
如果存在通配符,则合法性检查逻辑会确保 resources 中的条目不会彼此重叠。 空的列表意味着规则适用于该 API 组中的所有资源及其子资源。 |
resourceNames []string | 字段 resourceNames 是策略将匹配的资源实例名称列表。
使用此字段时, |
Level
string
数据类型的别名。
出现在:
Level 定义的是审计过程中在日志内记录的信息量。
ObjectReference
出现在:
ObjectReference 包含的是用来检查或修改所引用对象时将需要的全部信息。
字段 | 描述 |
---|---|
resource string | 资源类别。 |
namespace string | 资源对象所在名字空间。 |
name string | 资源对象名称。 |
uid k8s.io/apimachinery/pkg/types.UID | 资源对象的唯一标识(UID)。 |
apiGroup string | 字段 apiGroup 给出包含所引用对象的 API 组的名称。
空字符串代表 |
apiVersion string | 字段 apiVersion 是包含所引用对象的 API 组的版本。 |
resourceVersion string | 资源对象自身的版本值。 |
subresource string | 子资源的类别。 |
PolicyRule
出现在:
PolicyRule 包含一个映射,基于元数据将请求映射到某审计级别。 请求必须与每个字段所定义的规则都匹配(即 rules 的交集)才被视为匹配。
字段 | 描述 |
---|---|
level [必需]Level | 与此规则匹配的请求所对应的日志记录级别(Level)。 |
users []string | 根据身份认证所确定的用户名的列表,给出此规则所适用的用户。 空列表意味着适用于所有用户。 |
userGroups []string | 此规则所适用的用户组的列表。如果用户是所列用户组中任一用户组的成员,则视为匹配。 空列表意味着适用于所有用户组。 |
verbs []string | 此规则所适用的动词(verb)列表。 空列表意味着适用于所有动词。 |
resources []GroupResources | 此规则所适用的资源类别列表。 空列表意味着适用于 API 组中的所有资源类别。 |
namespaces []string | 此规则所适用的名字空间列表。 空字符串("")意味着适用于非名字空间作用域的资源。 空列表意味着适用于所有名字空间。 |
nonResourceURLs []string | 字段 nonResourceURLs 给出一组需要被审计的 URL 路径。
允许使用 |
omitStages []Stage | 字段 omitStages 是一个阶段(Stage)列表,针对所列的阶段服务器不会生成审计事件。 注意这一选项也可以在策略(Policy)级别指定。服务器审计组件会忽略 omitStages 中给出的阶段,也会忽略策略中给出的阶段。 空列表意味着不对阶段作任何限制。 |
omitManagedFields bool | omitManagedFields 决定将请求和响应主体写入 API 审计日志时,是否省略其托管字段。
|
Stage
string
数据类型的别名。
出现在:
Stage 定义在请求处理过程中可以生成审计事件的阶段。