隨著雲原生應用的普及,Kubernetes 作為容器編排平臺,其安全性成為企業關注的核心議題。近期 Kubernetes 1.23 版本推出多項安全增強功能,聚焦於圖像拉取(Image Pulling)與動態資源分配(DRA)管理員存取(DRA Admin Access)的認證機制,並透過授權(Authorization)與信任憑證捆綁(Cluster Trust Bundle)等技術,提升集群的整體安全性。本文將深入解析這些功能的技術細節、應用場景與實作步驟,協助讀者理解如何在實際環境中部署與優化。
圖像拉取是 Kubernetes Pod 啟動時從容器註冊服務(如 Docker Hub、私有 registry)取得鏡像的過程。傳統做法依賴長期有效的憑證(如 Secret),易成為攻擊目標。1.23 版本引入 服務帳戶圖像拉取憑證(Service Account Image Pull Credential),允許 Pod 使用自身身分動態配置憑證,透過投影服務帳戶令牌(Projected Service Account Token)實現短暫令牌(Short-Lived Token)機制,降低長期憑證的風險。
動態資源分配(Dynamic Resource Allocation, DRA)是 Kubernetes 用於管理資源請求的機制,而 DRA Admin Access 則透過標籤(Label)控制管理員用戶對特定命名空間的存取權限。例如,標籤 resource-category-admin-access: true
的命名空間僅允許高權限用戶創建資源聲明(Resource Claim)與模板(Resource Claim Template),確保資源分配的可控性。
信任憑證捆綁用於管理集群內服務的 TLS 證書,透過 API 物件定義信任來源(Trusted Server),並將證書掛載至 Pod 的投影卷(Projected Volume)。此功能簡化了信任簽名者的安裝與維護,並支援 QPS 伺服器的自訂信任配置。
此功能記錄每次圖像拉取的憑證資訊,並在其他 Pod 訪問節點上已拉取的圖像時,驗證其憑證是否與原始拉取憑證匹配。若不匹配,強制重新進行圖像註冊驗證(Register Authentication),減少對容器註冊服務的依賴,避免 AlwaysPullPolicy 的頻繁查詢。
管理員可為特定 API 端點(如 config z、pause)授予精準權限,遵循最小權限原則(Least Privilege)。此功能支援監控與日誌代理程式僅訪問必要 API 端點,降低潛在攻擊面。
此功能延伸節點限制至服務帳戶,限制服務帳戶僅訪問特定節點物件,用於標籤節點的工負載(如 DaemonSet),提升資源使用的安全性。
限制探針(Probe)與生命週期處理器(Lifecycle Handler)配置中的 host
字段,防止伺服器端請求偽造(SSRF)漏洞,強化 Pod 的安全性。
admin-namespace
),並標籤 resource-category-admin-access: true
。metadata:
namespace: admin-namespace
spec:
containers:
- name: app
image: <image-name>
resources:
claims:
- name: resource-claim
image pull failed
)。apiVersion: cert-manager.io/v1
kind: ClusterTrustBundle
metadata:
name: test-trust-bundle
spec:
ca: <CA_PEM>
labels:
ca.name: test-ca
Kubernetes 1.23 版本透過圖像拉取憑證追蹤、DRA 管理員存取與信任憑證捆綁等技術,顯著強化了集群的認證與授權機制。企業在部署時應根據實際需求,合理配置資源聲明、標籤與 Secret,並定期審查權限策略。未來版本將進一步優化節點驗證與 PSA 限制,持續提升 Kubernetes 的預設安全姿態。