在傳統(tǒng)的研發(fā)中,我們經(jīng)常關(guān)注的「安全」包括代碼安全、機器(運行環(huán)境)安全、網(wǎng)絡(luò)運維安全,而隨著云原生時代的到來,如果還按原有的幾個維度切分的話,顯然容易忽略很多云原生環(huán)境引入的新挑戰(zhàn),我們需要基于網(wǎng)絡(luò)安全最佳實踐——縱深防御原則,來逐步剖析「云原生的安全」,并且對不同層次的防御手段有所了解,從而建立自己的云原生安全理念,真正搭建一個內(nèi)核安全的云原生系統(tǒng)。
注:“縱深防御”,指在計算機系統(tǒng)中的多個層面使用多種網(wǎng)絡(luò)安全技術(shù),從而減少攻擊者利用關(guān)鍵業(yè)務(wù)資源或信息泄露到系統(tǒng)外部的總體可能性。在消息傳遞和協(xié)作環(huán)境中,縱深防御體系可以確保惡意攻擊活動被阻止在基礎(chǔ)結(jié)構(gòu)內(nèi)的多個檢查點,降低了威脅進入內(nèi)部網(wǎng)絡(luò)的可能性。
以某IDaaS系統(tǒng)為例,我們把一個云原生系統(tǒng)安全模型分為 4 個層面,由外至內(nèi)分別是:云/數(shù)據(jù)中心/網(wǎng)絡(luò)層、集群層、容器層、代碼層。
對于這里安全模型的每一層,都是單向依賴于外層的。也就是說,外層的云、集群、容器安全如果做得好,代碼層的安全就可以受益,而反過來,我們是無法通過提高代碼層的安全性來彌補外層中存在的安全漏洞或問題?;谏鲜鲞@一點原理,我們的縱深防御策略是「自外而內(nèi)」地進行“設(shè)防”。
一、云/數(shù)據(jù)中心/網(wǎng)絡(luò)層安全
這一層也可以稱之為基礎(chǔ)設(shè)施安全,不管從何角度,公有或私有云或企業(yè)數(shù)據(jù)中心以及對應(yīng)的網(wǎng)絡(luò)安全,是 K8s 集群最根本的安全基礎(chǔ),如果這一層存在安全漏洞或者過于脆弱,則整個系統(tǒng)都不能在此基礎(chǔ)上保證組件的安全。
我們除了需要防御傳統(tǒng)的攻擊,如 ARP 偽裝、DDOS、網(wǎng)絡(luò)層各類報文等攻擊,應(yīng)該針對 Kubernetes 集群采取以下保護措施:
不允許在 Internet 上公開對 Kubernetes 管理平臺(Control Plane)的所有訪問,同時僅開放部分可信 IP 可以訪問 Kubernetes 管理 API。 所有節(jié)點只暴露指定的端口,包括對管理平臺的內(nèi)部端口和來自 NodePort 和 LoadBalancer 類型的 Kubernetes 服務(wù)的連接,并且不應(yīng)該直接暴露到 Internet。 通過云提供商或機房的網(wǎng)絡(luò)層安全組(例如 AWS 的 Security Group)對管理平臺以及節(jié)點授予最小權(quán)限控制: 對etcd(Kubernetes 的基礎(chǔ)存儲)的訪問進行嚴格控制(僅允許來自集群管理平臺的訪問),應(yīng)強制所有連接都使用TLS,并確保所有信息都是在持久化層被加密的(Encryption at rest)。
二、集群層
保護 Kubernetes 集群有兩個主體需要關(guān)注:
集群與組件 運行的服務(wù)或應(yīng)用
保護 Kubernetes 集群組件與服務(wù)或應(yīng)用:
針對這兩個主體的保護,我們的保護可以分為 4 大塊:管理 API 的訪問控制、Kubelet 的訪問控制、Runtime(運行時)工作負載或用戶功能的訪問控制、集群組件的安全漏洞防護。
(1) 管理 API 的訪問控制
強制 TLS 保護傳輸層 強制 API 認證 強制 API 授權(quán)機制(RBAC)
(2) Kubelet 的訪問控制
生產(chǎn)環(huán)境啟用身份驗證 身份授權(quán)(RBAC) 強制 TLS 保護傳輸層
(3) Runtime(運行時)工作負載或用戶功能的訪問控制
限制使用特權(quán)容器 合理限制資源負載 防止加載非必要內(nèi)核模塊 限制 Pod 越權(quán)訪問其他節(jié)點 基礎(chǔ)數(shù)據(jù)憑證的訪問控制
(4) 集群組件的安全漏洞防護
禁止未授權(quán)訪問 etcd 啟用審核日志記錄 定期輪換基礎(chǔ)架構(gòu)憑證 定期升級修復(fù)漏洞
三、容器層
到了這一層,由于跟 Kubernetes 特性不是強相關(guān),我們能提供一些通用的安全措施和建議:
四、代碼層
程序代碼層是最容易受攻擊,但也是最可控的部分之一。雖然一般負責(zé)這塊安全的人員不一定是運維開發(fā)(DevOps),可能是專門的安全工程師(Sec Eng),但有一些基本共性理念和建議是可以互相借鑒的。
總體來說,云原生時代的這四層架構(gòu):云/數(shù)據(jù)中心/網(wǎng)絡(luò)層、集群層、容器層、代碼層,與傳統(tǒng)架構(gòu)比起來更加細化和更易受攻擊。自外而內(nèi)地踐行每一層的安全最佳實踐,我們的縱深防御才能算是成功的,每個在云原生技術(shù)上想長期獲益的團隊需要對此有共識。
責(zé)任編輯:tzh
-
網(wǎng)絡(luò)安全
+關(guān)注
關(guān)注
11文章
3337瀏覽量
61430 -
數(shù)據(jù)中心
+關(guān)注
關(guān)注
16文章
5218瀏覽量
73479 -
云原生
+關(guān)注
關(guān)注
0文章
261瀏覽量
8266
發(fā)布評論請先 登錄
云原生環(huán)境里Nginx的故障排查思路

云原生在汽車行業(yè)的優(yōu)勢
云原生AI服務(wù)怎么樣
云原生LLMOps平臺作用
如何選擇云原生機器學(xué)習(xí)平臺
構(gòu)建云原生機器學(xué)習(xí)平臺流程
什么是云原生MLOps平臺
云原生和數(shù)據(jù)庫哪個好一些?
k8s微服務(wù)架構(gòu)就是云原生嗎?兩者是什么關(guān)系
云原生和非云原生哪個好?六大區(qū)別詳細對比
基于Arm架構(gòu)的Azure虛擬機助力云原生應(yīng)用開發(fā)
KubeCon China 2024全球大會在香港舉行,京東云受邀參加探討云原生、開源及 AI
京東云原生安全產(chǎn)品重磅發(fā)布

從積木式到裝配式云原生安全

基于DPU與SmartNic的云原生SDN解決方案

評論