審計註解
本頁面作為 kubernetes.io 名稱空間下的審計註解的參考。
注意
這些註解不用於 Kubernetes API 中。當你啟用叢集審計時,審計事件資料會使用 API 組audit.k8s.io
中的 Event
進行寫入。這些註解適用於審計事件。審計事件不同於 Event API(API 組 events.k8s.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
值**必須**是 user
、namespace
或 runtimeClass
之一,它們對應於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 中的 policy
、binding
和 expressionIndex
分別標識 ValidatingAdmissionPolicy
的名稱、ValidatingAdmissionPolicyBinding
的名稱以及策略 validations
中失敗的 CEL 表示式的索引。
validationActions
顯示了對此次驗證失敗採取了哪些操作。有關 validationActions
的更多詳細資訊,請參閱驗證准入策略。