加密選項 - Amazon EMR

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

加密選項

使用 Amazon EMR 4.8.0 及更新版本,您可以使用安全組態來指定加密靜態資料、傳輸中資料或兩者的設定。啟用靜態資料加密時,您可以選擇對在 Amazon S3 的 EMRFS 資料,在本機磁碟的資料或兩者進行加密。您建立的每個安全組態都儲存在 Amazon EMR 中,而非叢集組態中,因此無論何時建立叢集,都可以輕鬆重複使用組態來指定資料加密設定。如需詳細資訊,請參閱 建立安全組態

下圖顯示安全組態提供的不同資料加密選項。

Amazon EMR 提供多種傳輸中和靜態加密選項。

以下加密選項也可供使用,且未使用安全組態來設定:

注意

從 Amazon EMR 5.24.0 版開始,當您指定 AWS KMS 為金鑰提供者時,您可以使用安全組態選項來加密 EBS 根裝置和儲存磁碟區。如需詳細資訊,請參閱 本機磁碟加密

資料加密需要金鑰和憑證。安全組態可讓您彈性從多個選項中進行選擇,包括由管理的金鑰 AWS Key Management Service、Amazon S3 管理的金鑰,以及您提供的自訂供應商的金鑰和憑證。 AWS KMS 作為金鑰提供者使用時,加密金鑰的儲存和使用需支付費用。如需詳細資訊,請參閱 AWS KMS 定價

指定加密選項前,請決定您想使用的金鑰和憑證管理系統,才能先建立金鑰和憑證或您指定為加密設定一部分的自訂提供者。

Amazon S3 中 EMRFS 資料的靜態加密

Amazon S3 加密可與 Amazon Amazon S3 讀取和寫入的亞馬遜 EMR 檔案系統 (EMRFS) 物件搭配使用。啟用靜態加密時,會指定 Amazon S3 伺服器端加密 (SSE) 或用戶端加密 (CSE) 作為預設加密模式。或者,您可以使用 Per bucket encryption overrides (每個儲存貯體加密覆寫) 為個別儲存貯體指定不同的加密方法。無論是否啟用了 Amazon S3 加密功能,Transport Layer Security (TLS) 都會將 EMR 叢集節點和 Amazon S3 之間傳送中的 EMRFS 物件加密。如需 Amazon S3 加密的詳細資訊,請參閱 Amazon 簡單儲存服務使用者指南中的使用加密保護資料

注意

使用時 AWS KMS,加密金鑰的儲存和使用需支付費用。如需詳細資訊,請參閱 AWS KMS 定價

Amazon S3 伺服器端加密

當您設定 Amazon S3 伺服器端加密時,Amazon S3 會在將資料寫入磁碟時在物件層級加密資料,並在存取時解密資料。如需有關 SSE 的詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的使用伺服器端加密保護資料

當您在 Amazon EMR 中指定 SSE 時,您可以在兩種不同的金鑰管理系統中選擇:

  • SSE-S3 – Amazon S3 為您管理密鑰。

  • SSE-KMS — 您可以使用 AWS KMS key 來設定適用於 Amazon EMR 的政策。如需 Amazon EMR 金鑰需求的詳細資訊,請參閱使 AWS KMS keys 用加密

使用客戶提供的金鑰的 SSE (SSE-C) 不適用於 Amazon EMR。

Amazon S3 用戶端加密

使用 Amazon S3 用戶端加密,Amazon S3 加密及解密會在您 EMR 叢集上的 EMRFS 用戶端中進行。物件在上傳至 Amazon S3 之前會先加密,並在下載後解密。您指定的提供者會提供用戶端使用的加密金鑰。用戶端可以使用 AWS KMS (CSE-KMS) 提供的金鑰或提供用戶端根金鑰 (CSE-C) 的自訂 Java 類別。CSE-KMS 和 CSE-C 之間的加密細節略有不同,具體取決於指定的提供者和要解密或加密之物件的中繼資料。如需有關這些差異的詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的使用用戶端加密保護資料

注意

Amazon S3 CSE 只能確保與 Amazon S3 交換的 EMRFS 資料經過加密;而不會加密叢集執行個體磁碟區上的所有資料。此外,由於 Hue 不使用 EMRFS,因此 Hue S3 檔案瀏覽器寫入到 Amazon S3 的物件不會被加密。

在 Amazon EMR WAL 中的靜態加密數據

當您為預寫記錄 (WAL) 設定伺服器端加密 (SSE) 時,Amazon EMR 會加密靜態資料。當您在 Amazon EMR 中指定 SSE 時,您可以從兩種不同的金鑰管理系統中選擇:

SSE-EMR-WAL

Amazon EMR 會為您管理金鑰。根據預設,Amazon EMR 會使用您存放在 Amazon EMR WAL 中的資料進行加密。SSE-EMR-WAL

SSE-KMS-WAL

您可以使用 AWS KMS 金鑰來設定適用於 Amazon EMR WAL 的政策。如需 Amazon EMR 主要需求的詳細資訊,請參閱用 AWS KMS keys 於加密

當您使用 Amazon EMR 啟用 WAL 時,您不能將自己的密鑰與 SSE 一起使用。如需詳細資訊,請參閱 Amazon EMR 的預寫日誌 (WAL)

本機磁碟加密

當您使用 Amazon EMR 安全組態啟用本機磁碟加密時,下列機制會一起運作來加密本機磁碟。

開放原始碼 HDFS 加密

HDFS 會在分散式處理期間,在叢集執行個體之間交換資料。它也會讀取和寫入資料至執行個體存放磁碟區以及連接到執行個體的 EBS 磁碟區。您啟用本機磁碟加密時,會啟動以下的開放原始碼 Hadoop 加密選項:

注意

您可以透過啟用傳輸中加密,啟動額外的 Apache Hadoop 加密。如需詳細資訊,請參閱 傳輸中加密。這些加密設定不會啟動您可手動設定的 HDFS 透明加密。如需詳細資訊,請參閱《Amazon EMR 版本指南》中的在 Amazon EMR 上 HDFS 中的透明加密

執行個體儲存體加密

對於使用 NVMe 型 SSD 作為執行個體儲存體磁碟區的 EC2 執行個體類型,無論 Amazon EMR 加密設定為何,都會使用 NVMe 加密。如需詳細資訊,請參閱 Amazon EC2 使用者指南中的 NVMe 固態硬碟磁碟區。對於其他執行個體儲存體磁碟區,當本機磁碟加密啟用時,Amazon EMR 使用 LUKS 加密執行個體儲存體磁碟區,無論 EBS 磁碟區是使用 EBS 加密還是 LUKS 來加密。

EBS 磁碟區加密

如果您在帳戶預設啟用 EBS 磁碟區 Amazon EC2 加密的區域中建立叢集,即使本機磁碟未啟用加密,EBS 磁碟區仍會加密。如需詳細資訊,請參閱 Amazon EC2 使用者指南中的預設加密。在安全組態中啟用本機磁碟加密後,Amazon EMR 設定的優先順序會高於叢集 EC2 執行個體的 Amazon EC2 encryption-by-default 設定。

下列選項可用於使用安全組態加密 EBS 磁碟區:

  • EBS 加密 – 從 Amazon EMR 5.24.0 版開始,您可以選擇啟用 EBS 加密。EBS 加密選項會加密 EBS 根設備磁碟區和連接的儲存磁碟區。僅當您指定 AWS Key Management Service 為金鑰提供者時,EBS 加密選項才可用。建議使用 EBS 加密。

  • LUKS 加密 – 如果您針對 Amazon EBS 磁碟區選擇使用 LUKS 加密,則 LUKS 加密只會套用至附接的儲存磁碟區,而不會套用至根裝置磁碟區。如需關於 LUKS 加密的詳細資訊,請參閱 磁碟上 LUKS 規格

    對於金鑰提供者,您可以設定適用於 Amazon EMR 的政策,或是提供加密成品的自訂 Java 類別。 AWS KMS key 使用時 AWS KMS,加密金鑰的儲存和使用需支付費用。如需詳細資訊,請參閱 AWS KMS 定價

注意

若要檢查您的叢集是否已啟用 EBS 加密,建議您使用 DescribeVolumes API 呼叫。如需詳細資訊,請參閱DescribeVolumes。在叢集上執行 lsblk 只會檢查 LUKS 加密的狀態,而非 EBS 加密。

傳輸中加密

數種加密機制在使用傳輸中加密時啟用。這些是開放原始碼功能,僅適用特定應用程式,可能會隨 Amazon EMR 版本而異。使用 Apache 應用程式組態可啟用下列應用程式專屬加密功能。如需詳細資訊,請參閱設定應用程式

Hadoop
HBase
Hive
  • 與 HiveServer 2 (HS2) 的 JDBC/ODBC 用戶端通訊會使用 Amazon EMR 6.9.0 及更新版本中的 SSL 組態進行加密。

  • 如需詳細資訊,請參閱 Apache Hive 文件的 SSL 加密一節。

Spark
  • 會使用在 Amazon EMR 5.9.0 版本和更新版本中的 AES-256 密碼來加密 Spark 元件之間的內部 RPC 通訊 (例如區塊傳輸服務和外部混洗服務)。在較早版本中,內部 RPC 通訊使用 SASL 搭配 DIGEST-MD5 做為密碼進行加密。

  • HTTP 協定通訊具有例如 Spark 歷史記錄伺服器和已啟用 HTTPS 檔案伺服器的使用者介面,使用 Spark 的 SSL 組態進行加密。如需詳細資訊,請參閱 Spark 文件中的 SSL 組態

  • 如需詳細資訊,請參閱 Apache Spark 文件的 Spark 安全設定一節。

Tez
Presto
  • Presto 節點之間的內部通訊使用 SSL/TLS (僅限 Amazon EMR 5.6.0 版及更新版本)。

您可透過下列兩種方法之一指定用於傳輸中加密的加密成品:提供您上傳到 Amazon S3 的憑證壓縮檔案,或參考提供加密成品的自訂 Java 類別。如需詳細資訊,請參閱 使用 Amazon EMR 加密提供傳輸中資料的加密憑證