kubernetes安全求生指南 - vmware vforum€¦ · vmware enterprise pks...
TRANSCRIPT
©2019 VMware, Inc. 1 ©2019 VMware, Inc.
唐資生 Jason Tang, VMware 資深架構師
Kubernetes安全求生指南
©2019 VMware, Inc. 2
您的Kubernetes環境夠安全嗎?
Kubernetes安全最佳實務
VMware Enterprise PKS平台如何實踐K8s與容器的安全強化
最困難的部分其實是....
總結
本日議程
3 ©2019 VMware, Inc.
您的Kubernetes環境夠安全嗎?
©2019 VMware, Inc. 4
整個Kubernetes運作環境是相當不安全的....
原生Kubernetes在安全設計上就有許多改善空間
公版Kubernetes許多預設值是不適當的
關於網路層級的安全實際上還有許多地方並未涵蓋
設計上並不特別考慮企業多團隊/多應用的分工與隔離
有非常多層次例如: 容器/映像/作業系統/基礎架構也須涵蓋
您知道嗎?
©2019 VMware, Inc. 5
但是....
您知道所謂 “安全”的“標準”是什麼?
這些“標準”涵蓋範圍夠嗎? 足夠讓我們安心推上生產嗎?
我們具體該怎麼做來強化安全?
我們怎麼知道我們做強化安全以後有滿足這個標準...還是這些標準?
我們該如何確保安全性在未來開發/維運一直維持達標?
我們如何用最低的負荷與最快的速度完成上述任務?
隨便Google就可找到好幾卡車的Kubernetes安全最佳實務/指南....
6 ©2019 VMware, Inc.
Kubernetes安全最佳實務 Kubernetes Security Best Practices
©2019 VMware, Inc. 7
關閉公開存取 (Disable public access)
實施角色型存取權控管 (Implement role-based access control)
將 Kubernetes密鑰加密 (Encrypt secrets at rest)
設置 Kubernetes 的許可控制器 (Configure admission controllers)
實施 Kubernetes 網路政策 (Implement networking policies)
對容器設置資安規則 (Configure secure context for containers)
分隔敏感的工作負載 (Segregate sensitive workloads)
掃描容器映像 (Scan container images)
開啟稽核日誌 (Enable audit logging)
跟上最新的 Kubernetes版本 (Keep your Kubernetes version up to date)
Kubernetes Security Best Practices
Kubernetes安全性的最佳實務指導
資料來源: https://blog.sqreen.com/kubernetes-security-best-practices/
©2019 VMware, Inc. 8
NIST在容器安全指南中揭露了五種容器應用最應關注的風險
映像風險
Image Risk
登錄風險
Registry Risk
容器調度平台風險
Orchestrator Risk
容器風險
Container Risk
實體作業系統風險
Host OS Risk
©2019 VMware, Inc. 9
針對Kubernetes的安全強化實作參考: CIS Benchmark
Source: https://www.cisecurity.org/benchmark/kubernetes/
控制措施
如何查核
如何查核
參考資訊
預設配置
原因理由
如何查核
1. 控制平面元件 (Control Plane Components)
2. etcd 狀態資料庫
3. 控制平面設置 (Control Plane Configuration)
4. 工作節點 (Worker Node)
5. 政策 (Policies)
©2019 VMware, Inc. 10
Use Cases: Security Architecture Guidance / Replacement for Checklist / Security Training
OWASP CSVS – 對Docker容器應用開發/調度平台的控制措施
組織面 基礎架構 容器 調度管理
V1 V2 V3 V4
映像散佈 密鑰&金鑰 網路 儲存
整合 日誌&監控 災難備援 測試
V5 V6 V7 V8
V9 V10 V11 V12
2/5/6 9/13/15 6/10/15 4/7/10
2/4/5 2/9/10 6/11/12 5/5/5
1/6/6 0/5/6 2/4/5 3/10/11
11 ©2019 VMware, Inc.
VMware Enterprise PKS平台如何實踐K8s與容器的安全強化 How PKS Enterprise PKS Implement Kubernetes & Container Security
©2019 VMware, Inc. 12
VMware Enterprise PKS對於NIST容器安全指南有完整的實作
White Paper: CLOUD-NATIVE STACK SECURITY: How VMware Enterprise PKS Secures Containers and Kubernetes, Feb, 2019
https://assets.contentstack.io/v3/assets/blt58b49a8a0e43b5ff/blt2218fac49ab28d5f/5c742622670387985f9fd09d/vmware-enterprise-pks-security-white-paper.pdf
©2019 VMware, Inc. 13
企業可依照自己的團隊分工選擇各種角色隔離或者指派到相同對象
PKS對於平台各租戶/層級都有明確角色存取控管 (RBAC)設計
Master Worker Worker
Pod Pod
kube-cluster
Master Worker Worker
Pod Pod
kube-cluster
PKS
API
BOSH
Ops
Manager
BOSH
Director
IaaS
K8s API K8s API
Platform Reliability Engineer
Ops Manager / BOSH Admin
Manages OpsMan Tiles
Developer
Consumes K8s API/kubectl
Ci/CD
Application DevOPS Owner
Consumes PKS API/CLI
Day 1 & Day 2 for k8s clusters
Manages access to k8s API for developers
IT Operator
IaaS Management
Internet User
Application User
Trust Boundary Trust Boundary
Trust Boundary
Trust Boundary
©2019 VMware, Inc.
PKS把原生K8s欠缺的帳號/存取權限/API呼叫/密碼保護補好補滿
解決方案
• 對VMware PKS CLI控制平面提供認證與角色權限控管(RBAC)
• 對原生Kubernetes API提供認證與角色權限控管(RBAC)
• 集中帳號權限管理-可整合外部Active Directory/LDAP
如何實踐
• 透過User Account & Authentication (UAA) 服務達成PKS API 呼叫認證
• 透過 CredHub服務安全地自動化產生與保存帳號權限
• 這幾項服務可以針對多個 Kubernetes
叢集個別指派授權
Centralized Authentication with RBAC
Operator admin
Developers Developers
Kubernetes
NameSpace NameSpace
NameSpace NameSpace Kubernetes
NameSpace NameSpace
NameSpace NameSpace
VMware PKS Broker
UAA VMware PKS API
BOSH CredHub
©2019 VMware, Inc. 15
PKS已經做好11大領域超過百項的安全強化措施
PKS對於容器底層核心(Stemcell)就做了非常多的安全強化並驗證
https://docs.pivotal.io/pivotalcf/2-7/security/pcf-infrastructure/stemcell-hardening.html
a. Maintenance, Updates, and Patching b. File System Hardening c. Boot Security d. Process Security e. Minimization of Attack Surface f. Network Security g. Auditing h. Authentication and Authorization i. Compliance j. File System Permissions k. User Account Management
所有強化在發佈前都經過測試驗證 您不再需要每回合升級都從頭來過 若發現CVE漏洞官方立刻提供修補
•The following servers are not used on stemcells and are disabled: •talk server •telnet server •tftp-server •Avahi •print •DHCP •DNS •FTP •IMAP •POP •HTTP •SNMP
©2019 VMware, Inc. 16
PKS內的NSX-T提供了可外部設定的分散式防火牆與視覺化工具 Kubernetes的網路政策只能規範容器,無法規範虛擬機與實體機,也無法看見資料流
PKS的 NSX-T可提供:
容器-容器之間, 或者
容器-虛擬機之間, 或
容器-實體機之間
虛擬機-虛擬機之間
虛擬機-實體機之間
資料流與封包都提供
標準防火牆管控與
完整的視覺化能見度!
©2019 VMware, Inc. 17
Harbor對於容器映像的安全防護措施
Development Team
RBAC
UAA AUTH REPL
Image Pull
K8s Cluster deployed by PKS
Build Image Push Image Scan Image For CVEs
Sign Trusted Image
kubectl run
Image Registry
Image Scanning
Image Signing
Harbor Projects
AUDIT LOGGING
如果沒有企業私有的映像倉庫而只用Internet上的映像,您真的知道裡面有什麼嗎?
只有經過簽章的受信任映像才能被部署
即時弱點掃描並標示弱點,可限制有弱點映像無法存取
Notary Clair
所有映像的存取與異動都應有稽核軌跡
多個Harbor映像倉庫可同步抄寫
©2019 VMware, Inc. 18
部門的藩籬
角色與分工
人員知識技能
安全政策
網路政策
開發政策
合規
負載/網路隔離
打包流程
過版流程
稽核流程
監控 & 除錯
最困難的部分其實是..... 3P: People, Policy, Process
人 (People) 政策 (Policy) 流程 (Process)
©2019 VMware, Inc. 19
導入新數位技術典範須組織架構與流程分工的配套才能順利前進 傳統的AP/SP/Security分工的架構需要跟著新技術典範轉型才能順暢運作
監控設計
安全設計
帳號權限
安全維運
監控維運
所需技能: Shell Script, Python, VMware API, CI/CD Tooling
所需技能: Java, .NET, SQL, Web
所需技能: vSphere/vSAN, NSX, OS, PowerCLI, Shell Script
建立平台自動化 能力與服務
將業務需求轉化成應用程式快速上線
降低基礎架構複雜度 快速調度基礎架構
應用開發 測試品管
基礎架構 監控維運
平台工程
©2019 VMware, Inc. 20
Kubernetes.平台只是最後一站,前面各站也都要安全管控才不會前功盡棄
在整個CI/CD管線的各個環節都需要各種控制措施涵蓋
靜態應用安全測試 (白箱測試): Static Application Security Test (SAST)
靜態應用安全測試 : Interactive Application Security Test (IAST)
動態應用安全測試 (黑箱測試): Dynamic Application Security Test (DAST)
軟體元件分析: Software Component Analysis (SCA)
測試 提交 部署 生產
持續整合 持續交付與部署
預提交 提交
監控
滲透測試
紅隊測試
互動應用安全測試
動態應用安全測試
安全強化檢查
軟體元件分析
深度白箱測試
異動白箱測試
靜態應用安全測試
(程式碼提交前檢測
©2019 VMware, Inc. 21
安全團隊的角色十分重要! 更應該從一開始設計時就加入
企業所有團隊的思維都需要從DevOps進化為DevSecOps
方法論: DevOps DevSecOps
DevSecOps的指導原則:
• 團隊/社群而非個人 (Team/Community, not a person)
• (自動化與自主性安全 (Automated and Autonomous Security)
• 規模化安全管控 (Security at Scale)
Dev: 敏捷開發 敏捷 & 安全開發
Ops: 基礎架構維運 基礎架構 & 安全維運
Sec: 安全審批者 安全設計者
唯有所有團隊密切協同合作才能比競爭對手快抵達目標!
©2019 VMware, Inc. 22
Kubernetes本身設計與週邊運作體系安全性有非常多的改善空間 – 千萬不要掉以輕心!
Kubernetes體系內網路層級的隔離與防護依然是最困難的一塊
有非常多的Kubernetes安全指南與標準,但我們真正需要的是端到端的整體安全
VMware Enterprise PKS 的安全強化即使不敢稱完美,但確實也是相當值得參考的範本
您的開源 Kubernetes 環境當然可以按照優秀範本做 – 當然我們建議是讓 VMware 幫您做
最困難的部分是 3個P,最理想的境界是DevSecOps,這個實在沒有辦法單靠產品了...
Key Take-Aways
總結
©2019 VMware, Inc. 23 ©2019 VMware, Inc.
Thank You!