如何保障云上數(shù)據(jù)安全?一文詳解云原生全鏈路加密
什么是云原生全鏈路加密
數(shù)據(jù)安全在云上的要求,可以用信息安全基本三要素 "CIA"來概括,即機(jī)密性(Confidentiality)、完整性(Integrity)和可用性(Availability)。
- 機(jī)密性專指受保護(hù)數(shù)據(jù)只可以被合法的(或預(yù)期的)用戶可訪問,其主要實(shí)現(xiàn)手段包括數(shù)據(jù)的訪問控制、數(shù)據(jù)防泄露、數(shù)據(jù)加密和密鑰管理等手段;
- 完整性是保證只有合法的(或預(yù)期的)用戶才能修改數(shù)據(jù),主要通過訪問控制來實(shí)現(xiàn),同時(shí)在數(shù)據(jù)的傳輸和存儲中可以通過校驗(yàn)算法來保證用戶數(shù)據(jù)的完整性;
- 數(shù)據(jù)的可用性主要體現(xiàn)在云上環(huán)境整體的安全能力、容災(zāi)能力、可靠度,以及云上各個(gè)相關(guān)系統(tǒng)(存儲系統(tǒng)、網(wǎng)絡(luò)通路、身份驗(yàn)證機(jī)制和權(quán)限校驗(yàn)機(jī)制等等)的正常工作保障。
在三要素中,第一要素機(jī)密性(Confidentiality)最常見也是最常被要求的技術(shù)實(shí)現(xiàn)手段就是數(shù)據(jù)加密。具體到云原生維度,需要實(shí)現(xiàn)的就是云原生的全鏈路加密能力。
“全鏈路”指的是數(shù)據(jù)在傳輸 (in Transit,也叫 in-motion)、計(jì)算 (Runtime,也叫 in-process),存儲 (in storage,也叫 at-rest) 的過程,而“全鏈路加密”指的是端到端的數(shù)據(jù)加密保護(hù)能力,即從云下到云上和云上單元之間的傳輸過程、到數(shù)據(jù)在應(yīng)用運(yùn)行時(shí)的計(jì)算過程(使用/交換),和到數(shù)據(jù)最終被持久化落盤的存儲過程中的加密能力。
• 數(shù)據(jù)傳輸 (數(shù)據(jù)通信加密,微服務(wù)通信加密,應(yīng)用證書和密鑰的管理);
• 數(shù)據(jù)處理(運(yùn)行時(shí)安全沙箱 runV, 可信計(jì)算安全沙箱 runE);
• 數(shù)據(jù)存儲 (云原生存儲的 CMK/BYOK 加密支持、密文/密鑰的存儲管理、容器鏡像的存儲加密、容器操作/審計(jì)日志安全)。

本文中的技術(shù)描述針對的是在云原生全鏈路加密中已有的和未來需要實(shí)現(xiàn)的技術(shù)目標(biāo)。
云安全 > 云數(shù)據(jù)安全 > 云原生全鏈路加密

云安全
針對用戶群體的不同,對安全鏈路有不同的層次定義,云安全涵蓋了云客戶安全和云廠商安全在 IaaS 的軟件、硬件以及物理數(shù)據(jù)中心等的安全。

- 云原生客戶(Cloud Native Customer)安全:應(yīng)用安全/操作安全/商業(yè)安全/容器網(wǎng)絡(luò)安全/容器數(shù)據(jù)安全/容器運(yùn)行時(shí)安全
- 云客戶(Cloud Customer)安全
- 云廠商(Cloud IaaS DevOps)安全
云原生安全

云原生安全首先需要遵循云數(shù)據(jù)安全標(biāo)準(zhǔn),在復(fù)用了云基礎(chǔ)架構(gòu)安全能力的前提下,同時(shí)在安全運(yùn)行時(shí),軟件供應(yīng)鏈上有進(jìn)一步的安全支持。
云原生存儲是通過聲明式 API 來描述了云數(shù)據(jù)的生命周期,并不對用戶透出底層 IaaS 的數(shù)據(jù)加密細(xì)節(jié)。不同的云原生存儲一般作為云數(shù)據(jù)的載體,復(fù)用了云 IaaS 基礎(chǔ)安全能力,還需要包括軟件供應(yīng)鏈中的鏡像安全,和容器運(yùn)行時(shí) root 文件系統(tǒng)安全和容器網(wǎng)絡(luò)安全。
- 云原生安全的運(yùn)行時(shí) = 數(shù)據(jù)處理過程中的計(jì)算安全/內(nèi)存安全/文件系統(tǒng)安全/網(wǎng)絡(luò)安全
- 云原生軟件供應(yīng)鏈安全 = 可執(zhí)行文件/用戶代碼安全
- 云原生基礎(chǔ)架構(gòu)的安全 = 云數(shù)據(jù)存儲安全
云數(shù)據(jù)安全
云用戶數(shù)據(jù)安全包括以下的三個(gè)方面的工作:
- 數(shù)據(jù)保護(hù):RAM ACL 控制細(xì)粒度的數(shù)據(jù)的訪問權(quán)限;敏感數(shù)據(jù)保護(hù)(Sensitive Data Discovery and Protection,簡稱 SDDP)、數(shù)據(jù)脫敏、數(shù)據(jù)分級分類;
- 數(shù)據(jù)加密:CMK 加密數(shù)據(jù)能力、BYOK 加密數(shù)據(jù)能力;
- 密鑰/密文管理:KMS/HSM 等云服務(wù)、三方 Vault 服務(wù)。
1. 數(shù)據(jù)安全的生命周期
為了更好的理解數(shù)據(jù)保護(hù),需要對數(shù)據(jù)安全的生命周期有一個(gè)了解,因?yàn)閿?shù)據(jù)保護(hù)貫穿于整個(gè)的數(shù)據(jù)生命周期:
- 數(shù)據(jù)收集
- 數(shù)據(jù)傳輸
- 數(shù)據(jù)處理
- 數(shù)據(jù)交換
- 數(shù)據(jù)存儲
- 數(shù)據(jù)銷毀

云原生數(shù)據(jù)生命周期,以 ACK(容器服務(wù) Kubernetes)掛載阿里云云盤為例:
- 云盤 PV 的申明和創(chuàng)建定義了數(shù)據(jù),云盤數(shù)據(jù)的加密需要在申明定義中就體現(xiàn),對密鑰匙選擇、加密算法選擇都可以申明式支持,RAM 權(quán)限細(xì)粒度遵循最小權(quán)限;
- 云盤掛載到虛擬機(jī)通過 PVC 在容器組 Pod 引用得以觸發(fā)和實(shí)現(xiàn);
- 云盤數(shù)據(jù)的解密通過用戶 CMK/BYOK 在塊設(shè)備上實(shí)現(xiàn)透明加密解密;
- Pod 生命周期的變化導(dǎo)致 PVC 關(guān)聯(lián)云盤在不同宿主 ECS 上的 Detach/Attach;
- 對 PV 的 Snapshot 生命觸發(fā)了云盤 Snapshot 的創(chuàng)建;
- PV 的刪除可以通過 OnDelete 關(guān)聯(lián)到云盤的中止和數(shù)據(jù)的刪除。
2. 全鏈路的數(shù)據(jù)安全
在狹義上來說是對數(shù)據(jù)端到端的加密,主要集中在了數(shù)據(jù)生命周期中的三個(gè)階段:
- 數(shù)據(jù)傳輸
- 數(shù)據(jù)處理
- 數(shù)據(jù)存儲
數(shù)據(jù)傳輸階段
安全通信設(shè)計(jì),密文/密鑰的安全管理和傳輸,既要滿足云環(huán)境下的安全傳輸、云原生引入的容器網(wǎng)絡(luò)、微服務(wù)、區(qū)塊鏈場景,又對云原生數(shù)據(jù)安全傳輸提出了進(jìn)一步的要求。
- 云安全傳輸
在云環(huán)境下 VPC/安全組的使用,密文/密鑰的安全管理 KMS 南北向流量通過 SSL 證書服務(wù)獲取可信有效的 CA,對南北流量實(shí)現(xiàn) HTTPS 加密和卸載,以及對 RPC/gRPC 通信使用 SSL 加密, 減小 VPC 的攻擊面,通過 VPN/SAG Gateway 來實(shí)現(xiàn)安全訪問鏈路。
- 云原生安全傳輸
云原生場景,單一集群允許多租戶的同時(shí)共享網(wǎng)絡(luò)、系統(tǒng)組件權(quán)限控制、數(shù)據(jù)通信加密、證書輪轉(zhuǎn)管理,多租場景下東西流量的網(wǎng)絡(luò)隔離、網(wǎng)絡(luò)清洗;云原生微服務(wù)場景,應(yīng)用/微服務(wù)間通信加密,和證書管理;云原生場景下密鑰、密文的獨(dú)立管理和三方集成、KMS 與 Vault CA,fabric-ca, istio-certmanager 等的集成。
數(shù)據(jù)處理階段
數(shù)據(jù)處理階段,對內(nèi)存級的可信計(jì)算,既有云安全虛擬化安全運(yùn)行的要求,又有容器安全沙箱和可信安全沙箱的需求。

- 云安全虛擬化可信計(jì)算:TEE SGX、ARM Trust Zone;
- 云原生容器安全沙箱:runV Kata 安全容器沙箱 、runE Graphane/Occlum 可信安全沙箱。

數(shù)據(jù)存儲階段
既有云安全對云存儲加密、云數(shù)據(jù)服務(wù)加密需求,又有對容器鏡像存儲加密,審計(jì)日志、應(yīng)用日志加密和三方集成的需求,以及對密文密碼的不落盤存儲支持。
云存儲加密方式:
- 數(shù)據(jù) + 加密算法 + 用戶密鑰或主密鑰;
- 客戶端加密/服務(wù)端加密。

云存儲數(shù)據(jù),以服務(wù)端加密為主;安全的密鑰管理 KMS/HSM;安全的加密算法,全面支持國產(chǎn)算法以及部分國際通用密碼算法,滿足用戶各種加密算法需求:
- 對稱密碼算法:支持 SM1、SM4、DES、3DES、AES;
- 非對稱密碼算法:支持 SM2、RSA(1024-2048);
- 摘要算法:支持 SM3、SHA1、SHA256、SHA384。
阿里云只能管理設(shè)備硬件,主要包括監(jiān)控設(shè)備可用性指標(biāo)、開通、停止服務(wù)等。密鑰完全由客戶管理,阿里云沒有任何方法可以獲取客戶密鑰。
云存儲加密支持:
- 塊存儲 EBS 云盤:支持虛擬機(jī)內(nèi)部使用的塊存儲設(shè)備(即云盤)的數(shù)據(jù)落盤加密,確保塊存儲的數(shù)據(jù)在分布式系統(tǒng)中加密存放,并支持使用服務(wù)密鑰和用戶自選密鑰作為主密鑰進(jìn)行數(shù)據(jù)加密;
- 對象存儲 OSS:支持服務(wù)端和客戶端的存儲加密能力。在服務(wù)端的加密中,支持使用服務(wù)密鑰和用戶自選密鑰作為主密鑰進(jìn)行數(shù)據(jù)加密;在客戶端的加密中,支持使用用戶自管理密鑰進(jìn)行加密,也支持使用用戶 KMS 內(nèi)的主密鑰進(jìn)行客戶端的加密;
- RDS 數(shù)據(jù)庫的數(shù)據(jù)加密:RDS 數(shù)據(jù)庫的多個(gè)版本通過透明加密(Transparent Data Encryption,簡稱 TDE)或云盤實(shí)例加密機(jī)制,支持使用服務(wù)密鑰和用戶自選密鑰作為主密鑰進(jìn)行數(shù)據(jù)加密;
- 表格存儲 OTS:支持使用服務(wù)密鑰和用戶自選密鑰作為主密鑰進(jìn)行數(shù)據(jù)加密;
- 文件存儲 NAS:支持使用服務(wù)密鑰作為主密鑰進(jìn)行數(shù)據(jù)加密;
- MaxCompute 大數(shù)據(jù)計(jì)算:支持使用服務(wù)密鑰作為主密鑰進(jìn)行數(shù)據(jù)加密;
- 操作日志,審計(jì)日志的安全存儲,以及三方日志系統(tǒng)集成。
云原生存儲加密:目前阿里云容器服務(wù) ACK 可以托管的主要以塊存儲、文件存儲和對象存儲為主,其他類型的 RDS、OTS 等數(shù)據(jù)服務(wù)是通過 Service Broker 等方式支持:
- 用戶容器鏡像/代碼 (企業(yè)容器鏡像服務(wù),OSS CMK/BYOK 加密);
- 云原生存儲卷 PV(申明式支持云存儲的 CMK/BYOK 以及數(shù)據(jù)服務(wù)層的加密支持);
- 操作日志和審計(jì)日志 (ActionTrail OpenAPI/Kubernetes AuditLog: SLS 日志加密);
- 密文密碼 (KMS/Vault 對密文的三方加密支持和內(nèi)存存儲,非 etcd 持久化)。

結(jié)論
云原生全鏈路的數(shù)據(jù)安全、云安全體系下的全鏈路加密已經(jīng)成為了基礎(chǔ)配置,新的容器化基礎(chǔ)架構(gòu)和應(yīng)用架構(gòu)的變化,結(jié)合云原生技術(shù)體系的特征,在數(shù)據(jù)傳輸、數(shù)據(jù)處理、數(shù)據(jù)存儲階段都需要增加相應(yīng)云原生環(huán)境對網(wǎng)絡(luò)、運(yùn)行時(shí)、存儲的全鏈路加密需求。
- 既要滿足云環(huán)境下的安全傳輸、云原生引入的容器網(wǎng)絡(luò)、微服務(wù)、區(qū)塊鏈場景,又對云原生數(shù)據(jù)安全傳輸提出了進(jìn)一步的要求;
- 既有云安全虛擬化安全運(yùn)行的要求,又有容器安全沙箱,可信安全沙箱的需求;
- 既有云安全對云存儲加密、云數(shù)據(jù)服務(wù)加密需求,又有對容器鏡像存儲加密、審計(jì)日志、應(yīng)用日志加密和三方集成的需求,以及對密文密碼的不落盤存儲的支持。