Kubernetes v1.36:精細粒度 Kubelet API 授權正式 GA,nodes/proxy 拆分為獨立子資源
Kubernetes Blog · 2026-04-24
Kubernetes v1.36 中,KubeletFineGrainedAuthz 特性閘門(feature gate)在 SIG Auth 與 SIG Node 協作下正式達到 GA(General Availability),並鎖定為啟用狀態,無法再被關閉。
舊有問題
在此之前,kubelet 的所有 HTTPS API 路徑都被映射至單一的 nodes/proxy 子資源。這代表授予 nodes/proxy GET 權限的 RBAC 角色,不只能讀取指標,理論上也能透過 WebSocket 連線執行容器內的任意命令。2026 年一項安全研究揭示:即使是只讀的 nodes/proxy GET,也可以被利用透過 WebSocket 在節點上任意執行指令。
新的子資源映射
| Kubelet API 路徑 | 子資源 |
|---|---|
/stats/* | nodes/stats |
/metrics/* | nodes/metrics |
/logs/* | nodes/log |
/pods, /runningPods/ | nodes/pods |
/healthz, /configz | nodes/healthz |
/spec/* | nodes/spec |
/checkpoint/* | nodes/checkpoint |
| 其他 | nodes/proxy(後備) |
向後相容機制
kubelet 採用雙重授權回退策略:先檢查細粒度子資源,若失敗則退回 nodes/proxy。現有工作負載不需修改設定即可正常運行,新部署則應採用最小權限模型,僅授予 nodes/metrics、nodes/stats 等必要子資源。
原始來源:Kubernetes Blog — v1.36 Fine-Grained Kubelet Authorization GA
Kubernetes v1.36:User Namespaces 正式 GA,ID-mapped mounts 消除效能瓶頸
Kubernetes Blog · 2026-04-23
經過 10 年開發歷程(Kubernetes 實作從 v1.25 alpha 開始,共 6 年),User Namespaces 於 v1.36 正式達到 GA,成為 Linux-only 的穩定功能。
安全語意
User Namespaces 將容器內的 UID/GID 映射到宿主機上的高編號 UID/GID。容器內以 UID 0 執行的程序,在宿主機上對應的是一個無特權的高 UID(例如 100000+),因此:
- 容器逃逸漏洞被利用後,攻擊者獲得的是宿主機上的無特權身份
CAP_NET_ADMIN等 capability 成為命名空間範圍(只影響容器內網路),不影響宿主機- 可在不使用
securityContext.runAsNonRoot的情況下,讓需要 root 的工作負載安全運行
ID-mapped mounts 解決效能問題
GA 的關鍵障礙是掛載卷(volume)的擁有權問題。在 Linux 5.12 引入 ID-mapped mounts 之前,使用 User Namespaces 時需要遞迴 chown 整個卷的所有檔案,對大型卷代價極高。ID-mapped mounts 讓核心在掛載點層級透明地重新映射 UID/GID:
- 對容器:檔案看起來由 UID 0 擁有
- 磁碟上:實際擁有權不變
- 時間複雜度:O(1) 操作,無需遍歷目錄樹
使用方式
spec:
hostUsers: false # 啟用 User Namespaces
containers:
- name: app
securityContext:
runAsUser: 0 # 容器內 root,宿主機上高 UID此設定自 alpha 以來 API 介面未更改,現有使用 hostUsers: false 的工作負載無需任何調整。
Ubuntu 26.04 LTS「Resolute Raccoon」:TPM 全磁碟加密、rust-coreutils 部分整合
LWN.net · 2026-04-23
Ubuntu 26.04 LTS 於 2026 年 4 月 23 日發布,代號「Resolute Raccoon」,為桌面、伺服器、雲端與 WSL 版本提供 5 年主流支援,Ubuntu Pro 用戶可延長至 10 年。
TPM 全磁碟加密
26.04 引入 TPM 2.0 綁定的全磁碟加密,讓加密金鑰儲存於 TPM 晶片中,並與開機度量(boot measurements)綁定。系統在開機時自動解鎖磁碟,同時保持對未授權開機環境(例如 LiveCD 啟動)的抵禦能力,無需使用者每次輸入密碼。
rust-coreutils 整合狀況
26.04 嘗試以 Rust 重寫的 coreutils(uutils) 取代傳統 GNU coreutils,這是 Canonical 推動記憶體安全元件策略的一部分。然而整合過程中發現若干工具的行為差異無法輕易修正,因此 cp、mv、rm 等核心工具回退至 GNU 版本。此舉引發社群討論,爭議點在於在 LTS 版本中部署仍處於不完整稽核狀態的工具是否妥當。
Arm Livepatch 支援
Canonical 將 Livepatch(核心熱修補)擴展至 ARM 架構,讓 ARM-based 伺服器基礎設施可在不重啟的情況下套用安全修補,對持續服務的雲端基礎設施尤為重要。
其他改進
26.04 還包括改進的應用程式權限控制,以及跨桌面、伺服器、雲端環境的效能與可用性調整。
原始來源:LWN.net — Ubuntu 26.04 LTS released、Ubuntu 26.04 Release Notes
Azure MCP Server 支援 .mcpb Bundle 格式:MCP 伺服器的零依賴一鍵安裝
Microsoft Dev Blogs · 2026-04-24
Azure MCP Server 現在以 MCP Bundle(.mcpb) 格式發布,讓使用者不需安裝 Node.js、Python 或 .NET runtime,即可將 Azure 服務整合至 Claude Desktop 等 MCP 相容客戶端。
MCP Bundle 格式
.mcpb 是一個 ZIP 壓縮檔,內含:
manifest.json:描述伺服器工具清單、執行需求與平台支援資訊- 伺服器二進位及所有執行期依賴(平台特定,自包含)
格式設計類比瀏覽器擴充(.crx)或 VS Code 擴充(.vsix),但針對 MCP 伺服器的部署場景。安裝方式:從 GitHub Releases 下載對應作業系統的 .mcpb 檔案,拖拉至 Claude Desktop 的 Extensions 頁面,或透過進階設定手動選取。
Azure 服務覆蓋範圍
Azure MCP Server 透過此介面提供超過 100 個 Azure 服務的存取,包括 Cosmos DB、Storage、Key Vault、App Service、Microsoft Foundry,以及 Bicep/Terraform 模板生成、架構建議、資源健康監控等能力。