全部產品
Search
文件中心

AnalyticDB:概述

更新時間:Jan 17, 2026

AnalyticDB for MySQLApache Spark全密態計算引擎是首批通過信通院隱私計算可信執行環境《產品效能》和《安全功能》兩項認證的產品,它可以加密敏感性資料,避免資料泄露。您可以通過本文,瞭解Apache Spark全密態計算引擎在安全合規等領域的應用情境、功能優勢、以及基礎版和高效能版的功能對比。

應用情境

AnalyticDB for MySQL企業版、基礎版及湖倉版Apache Spark全密態計算引擎,可以加密敏感性資料,避免資料泄露,並滿足敏感性資料的合規需求。Apache Spark全密態資料計算引擎常用於解決資料存放區與計算安全、敏感性資料合規和資料安全共用情境中的資料安全問題。以下是常見的應用情境:

  • 資料存放區與計算安全情境:在不可信環境中(如第三方平台),Apache Spark全密態計算引擎可以為關鍵的資料分析應用(如投資和財務分析)提供資料保護,保證使用者資料在儲存與計算過程中的安全,降低明文資料泄露風險。例如:投資分析、財務分析等。

  • 敏感性資料合規情境:在不可信環境中(如第三方平台),Apache Spark全密態計算引擎可以為應用服務提供安全防護,保證終端使用者敏感性資料的安全。例如:個人識別資料(PII)、基因等隱私資料在被第三方管理過程中,要滿足全程加密的合規要求。

  • 資料安全共用情境:您可以通過控制密鑰的所有權,管理資料使用權和資料訪問的頻次,實現資料安全共用,避免資料泄露。情境如下圖所示:

    image

版本介紹

Apache Spark全密態計算引擎分為基礎版和高效能版兩個版本,區別如下:

  • 基礎版:基礎版的Apache Spark全密態計算引擎可以將敏感性資料以密文形式進行傳輸和儲存,只有密鑰擁有者能夠解密資料,從而避免了資料泄露。您需要使用用戶端工具加密和解密資料,實現明文與密文資料之間的轉換,保證資料的可用性。

  • 高效能版(推薦使用):基於基礎版Apache Spark全密態引擎提供的資料加密能力,高效能版的Apache Spark全密態計算引擎結合Apache Gluten和Velox,提供了向量化計算的能力,在保證資料轉送與預存程序安全的同時,提升了資料處理效率。

基礎版和高效能版Apache Spark全密態計算引擎的對比如下:

版本

密態資料的格式

效能(對比開源社區Apache Spark)

相容性(對比開源社區Apache Spark)

工具依賴

密鑰機制

基礎版

EncBlocksSource格式

0.5倍

  • SQL文法相容

  • 資料格式不相容

依賴Apache Spark提供的用戶端工具加解密資料。

支援使用者主要金鑰(MEK)和資料密鑰(DEK)兩種密鑰。詳情請參見密鑰介紹及處理機制

高效能版

Parquet模組化加密格式

1.9倍

  • SQL文法相容

  • 資料格式相容

無依賴。可使用任何支援Parquet模組化加密的工具加解密資料。

支援使用者主要金鑰(MEK)、祕密金鑰加密密鑰(KEK)和資料密鑰(DEK)三種密鑰。詳情請參見密鑰介紹及處理機制

功能優勢

功能豐富簡單易用

  • 支援所有標準SQL的運算元,密態計算應用無需對SQL進行改動,僅需簡單配置即可便於使用。

  • 使用方式與開源社區Apache Spark保持一致。

  • 高效能版支援不同隱私權等級資料的混合處理,包括明文表與明文表、明文表與密文表、密文表與密文表的資料集混合聯表計算。

  • 計算結果可加密輸出,進一步確保資料安全。

資料控制權

  • 密鑰管理支援使用自有密鑰(BYOK),讓使用者擁有密鑰的完全控制權。高效能版引入Parquet模組化加密格式,使用者可以使用自有密鑰加解密資料,從而完全掌控資料控制權。關於密鑰的詳細資料,請參見密鑰介紹

  • 高效能版的加密金鑰由應用程式管理,密鑰在計算過程中由預設應用程式中的InMemoryKMS類保管,並在計算結束後銷毀。

高效能

  • 效能提升,高效能版的全密態Apache Spark計算引擎的效能是基礎版的4倍,是開源社區Apache Spark3.2.0版本的1.9倍。

  • 加密方式靈活,支援加密資料檔案中的單個資料列,從而減少了不必要的資料I/O開銷。

密鑰介紹及處理機制

密鑰介紹

使用者主要金鑰(MEK)

使用者主要金鑰(Master Enryption Key,簡稱MEK)是一種進階別的加密金鑰,用於加密和保護某個系統或某組資料中的其他密鑰。在多層次的密鑰管理結構中,使用者主要金鑰位於頂層,不直接用於日常的加密操作,而是用於加密和解密其他下級密鑰(即祕密金鑰加密密鑰和資料密鑰),這種分層的方法可以簡化密鑰管理,提高金鑰儲存區的安全性。

使用者主要金鑰由通用工具(例如:OpenSSL)隨機產生,基礎版的Apache Spark全密態計算引擎僅支援使用16位元組的字串(Hex編碼)作為主要金鑰,而高效能版的Apache Spark全密態計算引擎支援使用16、24或32位元組的字串(Base64編碼)作為主要金鑰。使用OpenSSL工具隨機產生主要金鑰的命令如下:

# 隨機產生一個16個位元組長,並用hex編碼的密鑰
$openssl rand -hex 16
# 隨機產生一個24個位元組長,並用base64編碼的密鑰
$openssl rand -base64 24
警告

使用者主要金鑰是訪問加密資料的根憑據,一旦丟失密鑰,將無法再訪問已有的資料。請妥善保管使用者主要金鑰。

祕密金鑰加密密鑰(KEK

祕密金鑰加密密鑰(Key Encryption Key,簡稱KEK)由系統隨機產生或使用者主要金鑰派生,並由上級密鑰保護。祕密金鑰加密密鑰(KEK)可以加密或解密資料密鑰(DEK),提高密鑰安全性。

資料密鑰(DEK

資料密鑰(Data Encryption Key,簡稱DEK)通常由系統隨機產生或使用者主要金鑰派生,並由上級密鑰保護。資料密鑰(DEK)用於加密或解密檔案中的資料。

加解密過程

基礎版Apache Spark全密態計算引擎密鑰處理機制

資料加密

在資料加密過程中,基礎版Apache Spark全密態計算引擎會從應用配置中擷取使用者主要金鑰(MEK),並自動為資料集產生隨機的資料密鑰(DEK)。其中,資料密鑰(DEK)會用於加密檔案中的資料,使用者主要金鑰(MEK)用於加密資料密鑰(DEK)。

資料解密

在資料解密過程中,基礎版Apache Spark全密態計算引擎會從應用配置中擷取使用者主要金鑰(MEK),再從檔案的中繼資料中提取資料密鑰(DEK)。資料密鑰(DEK)會使用使用者主要金鑰(MEK)解密,若使用者主要金鑰(MEK)由應用程式管理,則在本地解密。

高效能版Apache Spark全密態計算引擎密鑰處理機制

資料加密

在資料加密過程中,高效能版Apache Spark全密態計算引擎會從應用配置中擷取使用者主要金鑰(MEK),並為每個列或檔案隨機產生祕密金鑰加密密鑰(KEK)和資料密鑰(DEK)。其中,祕密金鑰加密密鑰(KEK)用於加密資料密鑰(DEK),資料密鑰(DEK)用於加密檔案中的資料。每一個祕密金鑰加密密鑰(KEK)都有唯一的標識符(16位元組),祕密金鑰加密密鑰(KEK)和資料密鑰(DEK)在加密後都會儲存在檔案的中繼資料中。

資料解密

在資料解密過程中,高效能版Apache Spark全密態計算引擎會從應用配置中提取使用者主要金鑰(MEK),再從檔案的中繼資料中提取祕密金鑰加密密鑰(KEK)以及資料密鑰(DEK)。祕密金鑰加密密鑰(KEK)會使使用者主要金鑰(MEK)進行解密,若使用者主要金鑰(MEK)由應用程式管理,則在本地解密。

注意事項

  • 您使用BYOK密鑰管理方式時,需要妥善保管自己的密鑰。若密鑰丟失,資料無法解密。

  • 不同的計算引擎對資料處理的精度會有差別,如果您在使用Spark密態計算引擎時遇到問題,請提交工單聯絡支援人員。

相關文檔