Kubernetes RBAC 風險剖析與雲原生安全防禦實踐
引言
在雲原生環境中,Role‑Based Access Control (RBAC) 是 Kubernetes 內建的授權機制,決定了使用者、服務帳號與 Pod 在叢集內能執行哪些操作。然而,RBAC 的設計雖然靈活,但若配置不當,將成為攻擊者提升權限與橫向移動的主要跳板。本文將針對 RBAC 的主要風險進行剖析,並提供基於 Google Kubernetes Engine (GKE) 的最佳實踐與雲原生安全防禦策略,協助資安與雲端工程師落實零信任安全框架。
RBAC 的核心概念與常見誤用
- Role / ClusterRole:定義允許的資源與動作。
- RoleBinding / ClusterRoleBinding:將角色綁定至使用者、群組或服務帳號。
- ServiceAccount:Pod 內部使用的身份,常被攻擊者利用於服務帳號滲透。
常見的 RBAC 誤用包含:
- 將
cluster-admin給予開發人員或 CI/CD 服務帳號,導致任意命名空間甚至整個叢集可被完全控制。 - 使用
system:masters群組的權限,繞過細粒度權限控制。 - 缺少
resourceQuota與limitRange的監控,導致資源濫用。 - 忽略
admission controllers如 OPA Gatekeeper,無法在資源創建前強制執行策略。
上述失誤不僅違反了最小權限原則,也為攻擊者提供了橫向移動與持續存活的機會。
攻擊者利用 RBAC 的典型手法
攻擊者在入侵 Kubernetes 叢集後,常透過以下手段利用 RBAC 進行權限提升:
- 發現並利用擁有
system:node-problem-detector角色的服務帳號,執行kubectl exec進入節點。 - 利用
ClusterRoleBinding中的system:authenticated群組,將自己新增至高權限角色。 - 利用
ClusterRoleBinding中的cluster-admin角色,直接修改叢集設定或建立新的ServiceAccount。
此類行為對應 MITRE ATT&CK 的 T1068(Privilege Escalation)與 T1136(Create Account)技術。
Google Cloud Kubernetes Engine (GKE) RBAC 最佳實踐
Google Cloud 為 GKE 提供了一系列 RBAC 的最佳實踐與工具,並在官方文件中明確說明了「最小權限」的實施方式 (Google Cloud, 2025)。以下列出關鍵步驟:
- 使用 IAM 與 Kubernetes RBAC 的結合:將 GCP IAM 角色映射至 Kubernetes Role,避免直接使用內建的 cluster-admin 角色 (Google Cloud, 2025)。
- 實施 Namespace Isolation:為每個應用建立獨立命名空間,並使用
Role及RoleBinding控制該命名空間內的權限。 - 啟用 OPA Gatekeeper 或 Kyverno:在資源創建前執行策略,確保 RBAC 角色不被過度授權 (Google Cloud, 2025)。
- 使用 Audit Logging:監控
kubectl get、create及delete等操作,並將日誌發送至 Cloud Logging 與 Security Command Center (Google Cloud, 2025)。 - 定期執行 RBAC Review:利用
rbac-lookup或自訂腳本掃描不必要的ClusterRoleBinding,並採用自動化工具修正 (Google Cloud, 2025)。
實作範例:將 GCP IAM 角色映射至 Kubernetes ClusterRole
# 定義 GCP IAM 角色
gcloud iam service-accounts create k8s-admin
--display-name="K8s Admin Service Account"
# 授予角色
gcloud projects add-iam-policy-binding YOUR_PROJECT_ID
--member="serviceAccount:k8s-admin@YOUR_PROJECT_ID.iam.gserviceaccount.com"
--role="roles/container.admin"
# 在 Kubernetes 中建立 ServiceAccount 與 ClusterRoleBinding
kubectl create serviceaccount k8s-admin-sa -n kube-system
kubectl create clusterrolebinding k8s-admin-binding
--clusterrole=cluster-admin
--serviceaccount=kube-system:k8s-admin-sa
上述範例說明如何將 GCP IAM 角色與 Kubernetes ClusterRole 進行映射,確保權限的可追蹤性與可審計性 (Google Cloud, 2025)。
監控與審計:確保 RBAC 的可視化
- Audit API:啟用 Kubernetes
audit.k8s.ioAPI,捕捉所有授權決策並輸出至 Cloud Logging。 - Alerting Rules:設定 Cloud Monitoring 以偵測
cluster-admin或system:masters權限的異常使用。 - Threat Hunting:結合 SIEM 與 SOAR,將 RBAC 相關事件與外部威脅情報連結,快速定位潛在攻擊者。
零信任安全框架下的 RBAC 強化策略
- 採用 “Never Trust, Always Verify” 原則:即使使用者已在叢集內,也需透過 OIDC、JWT 進行多層驗證。
- 使用 短生命週期的 ServiceAccount Token:讓 Token 只在短時間內有效,降低被竊取後的持續存活風險。
- 實施 Pod Security Policies / OPA Gatekeeper:限制容器只能以非 root 身份執行,並限制許可的 API 版本。
- 透過 Network Policies 限制 Pod 之間的通訊,避免因 RBAC 權限被濫用而造成跨命名空間攻擊。
未來趨勢:RBAC 與安全治理的演進
隨著雲原生技術的普及,RBAC 仍是核心授權機制,但其治理已不再僅依賴手動配置。未來的主要趨勢包括:
- 自動化的 Role Discovery & Cleanup:利用機器學習分析權限使用模式,自動建議或移除不必要的角色。
- 整合 Policy-as-Code 與 Infrastructure-as-Code:在 Terraform 或 Pulumi 中直接描述 RBAC,確保配置一致性。
- 加強 Identity Federation:將多雲身份系統統一映射至 Kubernetes,降低單點失效。
- 更細粒度的 Attribute-Based Access Control (ABAC):在 RBAC 基礎上加入屬性判斷,提升授權靈活度。
結論
RBAC 是 Kubernetes 叢集安全的基石,但其設計的靈活性也帶來配置複雜與風險。透過 Google Cloud 的最佳實踐、監控審計、零信任策略以及自動化治理工具,組織能夠在保留彈性的同時,實現最小權限與可追蹤性的安全目標。未來隨著安全治理自動化的成熟,RBAC 將與 ABAC 等更細粒度的授權模式結合,為雲原生環境提供更堅固的安全防護。
MITRE ATT&CK 對應
- T1068 – Privilege Escalation (利用 RBAC 授予高權限角色)
- T1136 – Create Account (建立高權限 ServiceAccount)
- T1087 – Account Discovery (列舉叢集內角色與綁定)
- T1110 – Brute Force (嘗試多個 ServiceAccount)
參考資料與原文來源
- Google Cloud. (2025). GKE RBAC 最佳实践. https://docs.cloud.google.com/kubernetes-engine/docs/best-practices/rbac?hl=zh-cn
- Google Cloud. (2025). GKE 角色型存取權控管(RBAC) 的最佳做法 – Google Cloud. https://cloud.google.com/kubernetes-engine/docs/best-practices/rbac?hl=zh-tw
- 小佑科技. (2025). 掌控你的角色!探索Kubernetes RBAC. https://www.dosec.cn/product/106.html
- Kubernetes. (2025). 基于角色的访问控制良好实践. https://v1-32.docs.kubernetes.io/zh-cn/docs/concepts/security/rbac-good-practices/
- teamssix. (2025). awesome cloud security. https://github.com/teamssix/awesome-cloud-security
🧠 本文由 DreamJ AI 技術新聞生成系統 自動撰寫與優化,
內容僅供技術研究與學習參考,實際環境請搭配官方公告與資安建議。












發佈留言