天天看點

如何保障雲上資料安全?一文詳解雲原生全鍊路加密什麼是雲原生全鍊路加密雲安全雲原生安全雲資料安全結論

本文節選自《不一樣的 雙11 技術:阿裡巴巴經濟體雲原生實踐》一書

作者

李鵬(壯懷)阿裡雲容器服務進階技術專家

黃瑞瑞  阿裡雲技術架構部資深技術專家

導讀:對于雲上客戶而言,其雲上資料被妥善的安全保護是其最重要的安全需求,也是雲上綜合安全能力最具象的展現。本文作者将從雲安全體系出發,到雲資料安全,再到雲原生安全體系對全鍊路加密進行一次梳理,進而回答:在雲原生時代,全鍊路加密需要做什麼?如何做到?以及未來要做什麼?

什麼是雲原生全鍊路加密

資料安全在雲上的要求,可以用資訊安全基本三要素 "CIA"來概括,即機密性(Confidentiality)、完整性(Integrity)和可用性(Availability)。

  • 機密性專指受保護資料隻可以被合法的(或預期的)使用者可通路,其主要實作手段包括資料的通路控制、資料防洩露、資料加密和密鑰管理等手段;
  • 完整性是保證隻有合法的(或預期的)使用者才能修改資料,主要通過通路控制來實作,同時在資料的傳輸和存儲中可以通過校驗算法來保證使用者資料的完整性;
  • 資料的可用性主要展現在雲上環境整體的安全能力、容災能力、可靠度,以及雲上各個相關系統(存儲系統、網絡通路、身份驗證機制和權限校驗機制等等)的正常工作保障。

在三要素中,第一要素機密性(Confidentiality)最常見也是最常被要求的技術實作手段就是資料加密。具體到雲原生次元,需要實作的就是雲原生的全鍊路加密能力。

“全鍊路”指的是資料在傳輸 (in Transit,也叫 in-motion)、計算 (Runtime,也叫 in-process),存儲 (in storage,也叫 at-rest) 的過程,而“全鍊路加密”指的是端到端的資料加密保護能力,即從雲下到雲上和雲上單元之間的傳輸過程、到資料在應用運作時的計算過程(使用/交換),和到資料最終被持久化落盤的存儲過程中的加密能力。

• 資料傳輸 (資料通信加密,微服務通信加密,應用證書和密鑰的管理);

• 資料處理(運作時安全沙箱 runV, 可信計算安全沙箱 runE);

• 資料存儲 (雲原生存儲的 CMK/BYOK 加密支援、密文/密鑰的存儲管理、容器鏡像的存儲加密、容器操作/審計日志安全)。

如何保障雲上資料安全?一文詳解雲原生全鍊路加密什麼是雲原生全鍊路加密雲安全雲原生安全雲資料安全結論

本文中的技術描述針對的是在雲原生全鍊路加密中已有的和未來需要實作的技術目标。

雲安全 > 雲資料安全 > 雲原生全鍊路加密

如何保障雲上資料安全?一文詳解雲原生全鍊路加密什麼是雲原生全鍊路加密雲安全雲原生安全雲資料安全結論

雲安全

針對使用者群體的不同,對安全鍊路有不同的層次定義,雲安全涵蓋了雲客戶安全和雲廠商安全在 IaaS 的軟體、硬體以及實體資料中心等的安全。

如何保障雲上資料安全?一文詳解雲原生全鍊路加密什麼是雲原生全鍊路加密雲安全雲原生安全雲資料安全結論
  • 雲原生客戶(Cloud Native Customer)安全
    • 應用安全
    • 操作安全
    • 商業安全
    • 容器網絡安全
    • 容器資料安全
    • 容器運作時安全
  • 雲客戶(Cloud Customer)安全
  • 雲廠商(Cloud IaaS DevOps)安全

雲原生安全

如何保障雲上資料安全?一文詳解雲原生全鍊路加密什麼是雲原生全鍊路加密雲安全雲原生安全雲資料安全結論

雲原生安全首先需要遵循雲資料安全标準,在複用了雲基礎架構安全能力的前提下,同時在安全運作時,軟體供應鍊上有進一步的安全支援。

雲原生存儲是通過聲明式 API 來描述了雲資料的生命周期,并不對使用者透出底層 IaaS 的資料加密細節。不同的雲原生存儲一般作為雲資料的載體,複用了雲 IaaS 基礎安全能力,還需要包括軟體供應鍊中的鏡像安全,和容器運作時 root 檔案系統安全和容器網絡安全。

  • 雲原生安全的運作時 = 資料處理過程中的計算安全,記憶體安全,檔案系統安全和網絡安全
  • 雲原生軟體供應鍊安全 = 可執行檔案/使用者代碼安全 
  • 雲原生基礎架構的安全 = 雲資料存儲安全

雲資料安全

雲使用者資料安全包括以下的三個方面的工作:

  • 資料保護:RAM ACL 控制細粒度的資料的通路權限;敏感資料保護(Sensitive

    Data Discovery and Protection,簡稱 SDDP)、資料脫敏、資料分級分類。

  • 資料加密:CMK 加密資料能力;BYOK 加密資料能力。
  • 密鑰/密文管理:KMS/HSM 等雲服務;三方 Vault 服務。

資料安全的生命周期

為了更好的了解資料保護,需要對資料安全的生命周期有一個了解,因為資料保護貫穿于整個的資料生命周期:

  • 資料收集
  • 資料傳輸
  • 資料處理
  • 資料交換
  • 資料存儲
  • 資料銷毀
如何保障雲上資料安全?一文詳解雲原生全鍊路加密什麼是雲原生全鍊路加密雲安全雲原生安全雲資料安全結論

雲原生資料生命周期,以 ACK(容器服務 Kubernetes)挂載阿裡雲雲盤為例:

  • 雲盤 PV 的申明和建立定義了資料,雲盤資料的加密需要在申明定義中就展現,對密鑰匙選擇、加密算法選擇都可以申明式支援,RAM 權限細粒度遵循最小權限;
  • 雲盤挂載到虛拟機通過 PVC 在容器組 Pod 引用得以觸發和實作;
  • 雲盤資料的解密通過使用者 CMK/BYOK 在塊裝置上實作透明加密解密;
  • Pod 生命周期的變化導緻 PVC 關聯雲盤在不同宿主 ECS 上的 Detach/Attach;
  • 對 PV 的 Snapshot 生命觸發了雲盤 Snapshot 的建立;
  • PV 的删除可以通過 OnDelete 關聯到雲盤的中止和資料的删除。

全鍊路的資料安全

在狹義上來說是對資料端到端的加密,主要集中在了資料生命周期中的三個階段:

資料傳輸階段

安全通信設計,密文/密鑰的安全管理和傳輸,既要滿足雲環境下的安全傳輸、雲原生引入的容器網絡、微服務、區塊鍊場景,又對雲原生資料安全傳輸提出了進一步的要求。

  • 雲安全傳輸

在雲環境下 VPC/安全組的使用,密文/密鑰的安全管理 KMS 南北向流量通過 SSL 證書服務擷取可信有效的 CA,對南北流量實作 HTTPS 加密和解除安裝,以及對 RPC/gRPC 通信使用 SSL 加密, 減小 VPC 的攻擊面,通過 VPN/SAG Gateway 來實作安全通路鍊路。

  • 雲原生安全傳輸

雲原生場景,單一叢集允許多租戶的同時共享網絡、系統元件權限控制、資料通信加密、證書輪轉管理,多租場景下東西流量的網絡隔離、網絡清洗;雲原生微服務場景,應用/微服務間通信加密,和證書管理;雲原生場景下密鑰、密文的獨立管理和三方內建、KMS 與 Vault CA, fabric-ca, istio-certmanager 等的內建。

資料處理階段

資料處理階段,對記憶體級的可信計算,既有雲安全虛拟化安全運作的要求,又有容器安全沙箱和可信安全沙箱的需求。

如何保障雲上資料安全?一文詳解雲原生全鍊路加密什麼是雲原生全鍊路加密雲安全雲原生安全雲資料安全結論
  • 雲安全虛拟化可信計算:TEE SGX;ARM Trust Zone;
  • 雲原生容器安全沙箱:runV Kata 安全容器沙箱  ;runE Graphane/Occlum 可信安全沙箱。
如何保障雲上資料安全?一文詳解雲原生全鍊路加密什麼是雲原生全鍊路加密雲安全雲原生安全雲資料安全結論

資料存儲階段

既有雲安全對雲存儲加密、雲資料服務加密需求,又有對容器鏡像存儲加密,審計日志、應用日志加密和三方內建的需求,以及對密文密碼的不落盤存儲支援。

雲存儲加密方式:

  • 資料 + 加密算法 + 使用者密鑰或主密鑰;
  • 用戶端加密/服務端加密。
如何保障雲上資料安全?一文詳解雲原生全鍊路加密什麼是雲原生全鍊路加密雲安全雲原生安全雲資料安全結論

雲存儲資料,以服務端加密為主;安全的密鑰管理 KMS/HSM;安全的加密算法,全面支援國産算法以及部分國際通用密碼算法,滿足使用者各種加密算法需求:

  • 對稱密碼算法:支援 SM1、SM4、DES、3DES、AES;
  • 非對稱密碼算法:支援 SM2、RSA(1024-2048);
  • 摘要算法:支援 SM3、SHA1、SHA256、SHA384。

阿裡雲隻能管理裝置硬體,主要包括監控裝置可用性名額、開通、停止服務等。密鑰完全由客戶管理,阿裡雲沒有任何方法可以擷取客戶密鑰。

雲存儲加密支援:

  • 塊存儲 EBS 雲盤:支援虛拟機内部使用的塊儲存設備(即雲盤)的資料落盤加密,確定塊存儲的資料在分布式系統中加密存放,并支援使用服務密鑰和使用者自選密鑰作為主密鑰進行資料加密;
  • 對象存儲 OSS:支援服務端和用戶端的存儲加密能力。在服務端的加密中,支援使用服務密鑰和使用者自選密鑰作為主密鑰進行資料加密;在用戶端的加密中,支援使用使用者自管理密鑰進行加密,也支援使用使用者 KMS 内的主密鑰進行用戶端的加密;
  • RDS 資料庫的資料加密:RDS 資料庫的多個版本通過透明加密(Transparent

    Data Encryption,簡稱 TDE)或雲盤執行個體加密機制,支援使用服務密鑰和使用者自選密鑰作為主密鑰進行資料加密;

  • 表格存儲 OTS:支援使用服務密鑰和使用者自選密鑰作為主密鑰進行資料加密;
  • 檔案存儲 NAS:支援使用服務密鑰作為主密鑰進行資料加密;
  • MaxCompute 大資料計算:支援使用服務密鑰作為主密鑰進行資料加密;
  • 記錄檔,審計日志的安全存儲,以及三方日志系統內建。

雲原生存儲加密:目前阿裡雲容器服務 ACK 可以托管的主要以塊存儲、檔案存儲和對象存儲為主,其他類型的 RDS、OTS 等資料服務是通過 Service Broker 等方式支援。

  • 使用者容器鏡像/代碼 (企業容器鏡像服務,OSS CMK/BYOK 加密);
  • 雲原生存儲卷 PV(申明式支援雲存儲的 CMK/BYOK 以及資料服務層的加密支援);
  • 記錄檔和審計日志 (ActionTrail OpenAPI/Kubernetes AuditLog: SLS 日志加密);
  • 密文密碼 (KMS/Vault 對密文的三方加密支援和記憶體存儲,非 etcd 持久化)。
如何保障雲上資料安全?一文詳解雲原生全鍊路加密什麼是雲原生全鍊路加密雲安全雲原生安全雲資料安全結論

結論

雲原生全鍊路的資料安全、雲安全體系下的全鍊路加密已經成為了基礎配置,新的容器化基礎架構和應用架構的變化,結合雲原生技術體系的特征,在資料傳輸、資料處理、資料存儲階段都需要增加相應雲原生環境對網絡、運作時、存儲的全鍊路加密需求。

  • 既要滿足雲環境下的安全傳輸、雲原生引入的容器網絡、微服務、區塊鍊場景,又對雲原生資料安全傳輸提出了進一步的要求;
  • 既有雲安全虛拟化安全運作的要求,又有容器安全沙箱,可信安全沙箱的需求;
  • 既有雲安全對雲存儲加密、雲資料服務加密需求,又有對容器鏡像存儲加密、審計日志、應用日志加密和三方內建的需求,以及對密文密碼的不落盤存儲的支援。
如何保障雲上資料安全?一文詳解雲原生全鍊路加密什麼是雲原生全鍊路加密雲安全雲原生安全雲資料安全結論

本書亮點

  • 雙11 超大規模 K8s 叢集實踐中,遇到的問題及解決方法詳述
  • 雲原生化最佳組合:Kubernetes+容器+神龍,實作核心系統 100% 上雲的技術細節
  • 雙 11 Service Mesh 超大規模落地解決方案
阿裡巴巴雲原生 關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦雲原生流行技術趨勢、雲原生大規模的落地實踐,做最懂雲原生開發者的技術圈。”

繼續閱讀