审计注解

本页面作为 kubernetes.io 命名空间下的审计注解的参考。

k8s.io/deprecated

示例:k8s.io/deprecated: "true"

值**必须**为 "true" 或 "false"。值为 "true" 表示请求使用了已弃用的 API 版本。

k8s.io/removed-release

示例:k8s.io/removed-release: "1.22"

值**必须**采用 "<MAJOR>.<MINOR>" 格式。它被设置为目标移除版本,用于针对具有目标移除版本的已弃用 API 版本的请求。

pod-security.kubernetes.io/exempt

示例:pod-security.kubernetes.io/exempt: namespace

值**必须**是 usernamespaceruntimeClass 之一,它们对应于Pod 安全豁免的维度。此注解指示豁免 PodSecurity 强制执行所依据的维度。

pod-security.kubernetes.io/enforce-policy

示例:pod-security.kubernetes.io/enforce-policy: restricted:latest

值**必须**是 privileged:<version>baseline:<version>restricted:<version>,它们对应于Pod 安全标准级别,并附带一个版本,该版本**必须**是 latest 或格式为 v<MAJOR>.<MINOR> 的有效 Kubernetes 版本。此注解告知在 PodSecurity 准入期间允许或拒绝 Pod 的强制执行级别。

有关更多信息,请参阅Pod 安全标准

pod-security.kubernetes.io/audit-violations

示例:pod-security.kubernetes.io/audit-violations: would violate PodSecurity "restricted:latest": allowPrivilegeEscalation != false (container "example" must set securityContext.allowPrivilegeEscalation=false), ...

值详细说明了审计策略违规,它包含被违反的Pod 安全标准级别,以及从 PodSecurity 强制执行中违反的字段上的特定策略。

有关更多信息,请参阅Pod 安全标准

apiserver.latency.k8s.io/etcd

示例:apiserver.latency.k8s.io/etcd: "4.730661757s"

此注解指示存储层内部发生的延迟度量,它计算向 etcd 发送数据并获得完整响应所需的时间。

此审计注解的值不包括准入或验证中发生的时长。

apiserver.latency.k8s.io/decode-response-object

示例:apiserver.latency.k8s.io/decode-response-object: "450.6649ns"

此注解记录了解码从存储层 (etcd) 接收到的响应所花费的时间。

apiserver.latency.k8s.io/apf-queue-wait

示例:apiserver.latency.k8s.io/apf-queue-wait: "100ns"

此注解记录了请求因 API 服务器优先级而排队等待的时间。

有关此机制的更多信息,请参阅API 优先级和公平性 (APF)。

authorization.k8s.io/decision

示例:authorization.k8s.io/decision: "forbid"

值必须是 **forbid** 或 **allow**。此注解指示请求在 Kubernetes 审计日志中是否被授权。

有关更多信息,请参阅审计

authorization.k8s.io/reason

示例:authorization.k8s.io/reason: "Human-readable reason for the decision"

此注解提供了 Kubernetes 审计日志中决策的原因。

有关更多信息,请参阅审计

missing-san.invalid-cert.kubernetes.io/$hostname

示例:missing-san.invalid-cert.kubernetes.io/example-svc.example-namespace.svc: "relies on a legacy Common Name field instead of the SAN extension for subject validation"

由 Kubernetes v1.24 及更高版本使用。

此注解表示 webhook 或聚合 API 服务器正在使用缺少 subjectAltNames 的无效证书。对这些证书的支持在 Kubernetes 1.19 中默认禁用,并在 Kubernetes 1.23 中移除。

使用这些证书的端点的请求将失败。使用这些证书的服务应尽快替换它们,以避免在 Kubernetes 1.23+ 环境中运行时中断。

Go 文档中有更多关于此的信息:X.509 CommonName 弃用

insecure-sha1.invalid-cert.kubernetes.io/$hostname

示例:insecure-sha1.invalid-cert.kubernetes.io/example-svc.example-namespace.svc: "uses an insecure SHA-1 signature"

由 Kubernetes v1.24 及更高版本使用。

此注解表示 webhook 或聚合 API 服务器正在使用使用 SHA-1 哈希签名的不安全证书。对这些不安全证书的支持在 Kubernetes 1.24 中默认禁用,并将在未来版本中移除。

使用这些证书的服务应尽快替换它们,以确保连接得到正确保护并避免在未来版本中中断。

Go 文档中有更多关于此的信息:拒绝 SHA-1 证书

validation.policy.admission.k8s.io/validation_failure

示例:validation.policy.admission.k8s.io/validation_failure: '[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]'

由 Kubernetes v1.27 及更高版本使用。

此注解表示准入策略验证对 API 请求评估为 false,或者当策略配置为 failurePolicy: Fail 时,验证导致错误。

注解的值是一个 JSON 对象。JSON 中的 message 提供了有关验证失败的消息。

JSON 中的 policybindingexpressionIndex 分别标识 ValidatingAdmissionPolicy 的名称、ValidatingAdmissionPolicyBinding 的名称以及策略 validations 中失败的 CEL 表达式的索引。

validationActions 显示了对此次验证失败采取了哪些操作。有关 validationActions 的更多详细信息,请参阅验证准入策略

最后修改于 2025 年 1 月 30 日晚上 11:13 PST:根据审查进行编辑 (36e798b229)