审计注解

本页面提供 kubernetes.io 命名空间的审计注解参考。这些注解应用于 API 组 audit.k8s.io 中的 Event 对象。

k8s.io/deprecated

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

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

k8s.io/removed-release

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

必须采用 "" 格式。.它用于在对已废弃但指定了目标移除版本的 API 版本发出请求时,标识目标移除版本。

pod-security.kubernetes.io/exempt

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

必须usernamespaceruntimeClass 之一,它们对应于 Pod 安全豁免的维度。此注解指明了 Pod 安全强制是基于哪个维度进行豁免的。

pod-security.kubernetes.io/enforce-policy

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

必须privileged:<version>baseline:<version>restricted:<version> 之一,它们对应于Pod 安全标准的等级,并附带一个版本,该版本必须latest 或有效的 Kubernetes 版本,格式为 v<MAJOR>.<MINOR>。此注解说明了在 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 安全标准

authorization.k8s.io/decision

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

值必须是 forbidallow。此注解指示请求在 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 的更多详细信息,请参见Validating Admission Policy

上次修改时间:2024 年 8 月 22 日 下午 3:43 PST:improving documented auth annotation decision (e12941d31b)