靜態加密 ElastiCache - Amazon ElastiCache (雷迪OSS斯)

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

靜態加密 ElastiCache

為了協助確保資料安全,Amazon ElastiCache 和 Amazon S3 提供不同的方法來限制快取中資料的存取。如需詳細資訊,請參閱 Amazon VPC 和 ElastiCache 安全性Amazon Identity and Access Management ElastiCache

ElastiCache 靜態加密功能可透過加密磁碟上的資料來提高資料安全性。此功能在無伺服器快取上一律為啟用狀態。啟用時,此功能會加密下列層面:

  • 同步、備份和交換操作期間的磁碟

  • 存放在 Amazon S3 中的備份

儲存在 SSD (固態硬碟) 上已啟用資料分層之叢集中的資料一律會加密。

ElastiCache 提供預設 (服務管理) 靜態加密,以及在 AWS AWS 金鑰管理服務 (KMS) 中使用您自己對稱的客戶受管 KMS 金鑰的功能。備份快取後,在加密選項中,選擇要使用預設加密金鑰或客戶受管金鑰。如需詳細資訊,請參閱 啟用靜態加密

注意

預設 (服務管理) 加密是 GovCloud (美國) 區域中唯一可用的選項。

重要

在現有自行設計的 Redis OSS 叢集上啟用靜態加密會牽涉到在複寫群組上執行備份和還原之後刪除現有的複寫群組。

只有在快取上建立複寫群組後,才能啟用靜態加密。因為要加密和解密資料需要經過一些處理,因此在這些操作期間啟用靜態加密可能會影響效能。您應該針對使用靜態加密和未使用靜態加密的資料進行基準分析,以判斷對使用案例的效能影響。

靜態加密條件

在規劃 ElastiCache 靜態加密實作時,應牢記下列靜態 ElastiCache 加密的限制:

  • 執行 Redis OSS 版本的複寫群組支援靜態加密 (針對 EOL 排程的 3.2.6,請參閱 Redis OSS 版本的生命週期結束排程)、4.0.10 或更新版本

  • 只有在 Amazon VPC 中執行的複寫群組支援靜態加密。

  • 靜態加密僅支援執行下列節點類型的複寫群組。

    • R6gd、R6g、R5、R4、R3

    • M6、M5、M4、M3

    • T4g、T3、T2

    如需詳細資訊,請參閱 支援的節點類型

  • 透過將參數 AtRestEncryptionEnabled 明確設定為 true,可啟用靜態加密。

  • 您只能在建立複寫群組時,於複寫群組上啟用靜態加密。您無法透過修改複寫群組來將靜態加密切換為開啟和關閉。如需如何在現有複寫群組上實作靜態加密的資訊,請參閱啟用靜態加密

  • 如果叢集使用 r6gd 系列的節點類型,則無論是否啟用靜態加密,存放在 SSD 上的資料都會加密。

  • 在 AWS GovCloud (us-gov-east-1 和 us-gov-west -1) 區域中不提供使用客戶管理金鑰進行靜態加密的選項。

  • 如果叢集使用 r6gd 系列的節點類型,則儲存在 SSD 上的資料會使用所選客戶管理的 AWS KMS 金鑰 (或區域中的服務管理加密) 加密。 AWS GovCloud

實作靜態加密可能會在備份和節點同步操作期間降低效能。針對您自己的資料進行靜態加密與無加密的基準分析比較,以判斷對實作的效能影響。

使用來自 AWS KMS 的客戶受管金鑰

ElastiCache 支援對稱式客戶管理的 AWS KMS 金鑰 (KMS 金鑰),以進行靜態加密。客戶管理的 KMS 金鑰是您在 AWS 帳戶中建立、擁有和管理的加密金鑰。如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的 AWS KMS 金鑰。金鑰必須先在 AWS KMS 中建立,才能與之搭配使用 ElastiCache。

若要瞭解如何建立 AWS KMS 根金鑰,請參閱金AWS 鑰管理服務開發人員指南中的建立金鑰。

ElastiCache 可讓您與 AWS KMS 整合。如需詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的使用授權。無需採取任何客戶動作即可啟用 Amazon 與 AWS KMS ElastiCache 整合。

kms:ViaService條件金鑰會限制使用 AWS KMS 金鑰 (KMS 金鑰) 來自指定 AWS 服務的要求。若要kms:ViaService搭配使用 ElastiCache,請在條件索引鍵值中同時包含兩個 ViaService 名稱:elasticache.AWS_region.amazonaws.comdax.AWS_region.amazonaws.com。如需詳細資訊,請參閱 kms:ViaService

您可以使用AWS CloudTrail來追蹤 Amazon 代表您 ElastiCache 傳送 AWS Key Management Service 的請求。與客戶管理金鑰 AWS Key Management Service 相關的所有 API 呼叫都有對應的 CloudTrail 記錄。您也可以查看透過呼叫 ListGrantsKMS API 呼叫所 ElastiCache 建立的授權。

使用客戶受管金鑰對複寫群組進行加密後,複寫群組的所有備份都會依以下方式進行加密:

  • 自動每日備份會使用與叢集關聯的客戶受管金鑰來進行加密。

  • 複寫群組被刪除時所建立的最終備份,也使用與複寫群組關聯的客戶受管金鑰進行加密。

  • 手動建立的備份在預設情況下,會使用與複寫群組關聯的金鑰來加密。您可以透過選擇其他客戶受管金鑰來覆寫此選項。

  • 複製備份預設為使用與來源備份關聯的客戶受管金鑰。您可以透過選擇其他客戶受管金鑰來覆寫此選項。

注意
  • 將備份匯出到所選 Amazon S3 儲存貯體時,無法使用客戶受管金鑰。不過,匯出至 Amazon S3 的所有備份都使用伺服器端加密來加密。您可以選擇將備份檔案複製到新的 S3 物件並使用客戶受管 KMS 金鑰來加密、將檔案複製到使用 KMS 金鑰以預設加密設定的另一個 S3 儲存貯體,或是變更檔案本身的加密選項。

  • 您也可以使用客戶受管金鑰,為不是使用客戶受管金鑰進行加密的複寫群組,加密手動建立的備份。使用此選項時,即使原始複寫群組上的資料未加密,Amazon S3 中存放的備份檔案仍會使用 KMS 金鑰來進行加密。

從備份還原可讓您從可用的加密選項中進行選擇,類似於建立新複寫群組時可用的加密選項。

  • 如果刪除金鑰或停用金鑰,並針對您用來加密快取的金鑰撤銷授權,則快取將變成無法恢復。換句話說,在硬件故障後無法對其進行修改或恢復。 AWS KMS 只會在至少七天的等待期間之後刪除根金鑰。金鑰刪除後,您可以使用其他客戶受管金鑰建立備份以用於封存。

  • 自動金鑰輪換會保留 AWS KMS 根金鑰的屬性,因此輪換不會影響您存取 ElastiCache 資料的能力。加密的 Amazon ElastiCache 快取不支援手動金鑰輪換,這包括建立新的根金鑰和更新舊金鑰的任何參考。若要深入了解,請參閱AWS 金鑰管理服務開發人員指南中的輪換 KMS 金鑰。AWS

  • 使用 KMS 金鑰加密 ElastiCache 快取需要每個快取一次授權。此授權將在快取的整個生命週期中使用。此外,在備份建立期間,每個備份會使用一個授權。建立備份後,此授權就會淘汰。

  • 如需 AWS KMS 授與和限制的詳細資訊,請參閱金AWS 鑰管理服務開發人員指南中的制。

啟用靜態加密

所有無伺服器快取都會啟用靜態加密。

建立自行設計的叢集時,您可以藉由將參數 AtRestEncryptionEnabled 設定為 true 來啟用靜態加密。您無法在現有複寫群組上啟用靜態加密。

您可以在建立 ElastiCache 快取時啟用靜態加密。您可以使用 AWS Management Console、或 ElastiCache API 來 AWS CLI執行此操作。

建立快取時,您可以選擇下列其中一個選項:

  • 預設 – 此選項使用服務管理的靜態加密。

  • 客戶管理金鑰 — 此選項可讓您從 AWS KMS 提供金鑰 ID/ARN 以供靜態加密。

若要了解如何建立 AWS KMS 根金鑰,請參閱金鑰管理服務開發人員指南中的建立金AWS 鑰

您只能在建立 Redis OSS 複寫群組時啟用靜態加密。如果您想要啟用現有複寫群組的靜態加密,請執行下列動作。

啟用現有複寫群組的靜態加密
  1. 建立您現有複寫群組的手動備份。如需詳細資訊,請參閱「取得手動備份」。

  2. 透過從備份還原來建立新的複寫群組。在新的複寫群組上,啟用靜態加密。如需詳細資訊,請參閱 從備份還原到新的快取

  3. 更新應用程式中的端點以指向新的複寫群組。

  4. 刪除舊的複寫群組。如需詳細資訊,請參閱 刪除叢集刪除複寫群組

使用啟用靜態加密 AWS Management Console

所有無伺服器快取都會啟用靜態加密。預設情況下,使用 AWS擁有的 KMS 金鑰來加密資料。若要選擇您自己的 AWS KMS 金鑰,請進行下列選項:

  • 展開預設設定區段。

  • 預設設定區段下選擇自訂預設設定

  • 安全性區段下選擇自訂安全性設定

  • 加密金鑰設定下選擇客戶受管 CMK

  • AWS KMS 金鑰設定下選擇一個金鑰。

自行設計快取時,採用「輕鬆建立」方法的「開發/測試」和「生產」組態會使用預設金鑰啟用靜態加密。當您自行選擇組態時,請進行下列選擇:

  • 選擇 3.2.6、4.0.10 或更新版本做為引擎版本。

  • 按一下靜態加密選項的啟用旁的核取方塊。

  • 選擇預設金鑰客戶受管 CMK

有關該 step-by-step 程序,請參閱以下內容:

使用啟用靜態加密 AWS CLI

若要在使用建立 Redis OSS 叢集時啟用靜態加密 AWS CLI,請在建立複寫群組時使用 -at-rest-encryption-enabled 參數。

下列作業會建立 Redis OSS (叢集模式已停用) 複寫群組,其中my-classic-rg包含三個節點 (--num-cache-clusters)、一個主要複本和兩個僅供讀取複本。此複寫群組已啟用靜態加密 (--at-rest-encryption-enabled)。

若要啟用此複寫群組的加密,您必須使用下列參數和值:

重要參數
  • --engine - 必須為 redis

  • --engine-version - 必須是 3.2.6、4.0.10 或更新版本。

  • --at-rest-encryption-enabled - 啟用靜態加密的必要項目。

範例 1:含複本的 Redis OSS (叢集模式已停用) 叢集

若為 Linux、macOS 或 Unix:

aws elasticache create-replication-group \ --replication-group-id my-classic-rg \ --replication-group-description "3 node replication group" \ --cache-node-type cache.m4.large \ --engine redis \ --at-rest-encryption-enabled \ --num-cache-clusters 3

針對 Windows:

aws elasticache create-replication-group ^ --replication-group-id my-classic-rg ^ --replication-group-description "3 node replication group" ^ --cache-node-type cache.m4.large ^ --engine redis ^ --at-rest-encryption-enabled ^ --num-cache-clusters 3 ^

如需其他資訊,請參閱以下內容:

 

下列作業會建立my-clustered-rg具有三個節點群組或碎片 (--) 的 Redis OSS (已啟用叢集模式) 複寫群組。num-node-groups每個節點都有三個節點,一個主要複本和兩個僅供讀取複本 (--replicas-per-node-group)。此複寫群組已啟用靜態加密 (--at-rest-encryption-enabled)。

若要啟用此複寫群組的加密,您必須使用下列參數和值:

重要參數
  • --engine - 必須為 redis

  • --engine-version - 必須是 4.0.10 以上版本。

  • --at-rest-encryption-enabled - 啟用靜態加密的必要項目。

  • --cache-parameter-group - 必須為 default-redis4.0.cluster.on 或其衍生項目,才能成為啟用複寫群組的叢集模式。

範例 2:已啟用叢集模式的 OSS (叢集模式) 叢集

若為 Linux、macOS 或 Unix:

aws elasticache create-replication-group \ --replication-group-id my-clustered-rg \ --replication-group-description "redis clustered cluster" \ --cache-node-type cache.m3.large \ --num-node-groups 3 \ --replicas-per-node-group 2 \ --engine redis \ --engine-version 6.2 \ --at-rest-encryption-enabled \ --cache-parameter-group default.redis6.x.cluster.on

針對 Windows:

aws elasticache create-replication-group ^ --replication-group-id my-clustered-rg ^ --replication-group-description "redis clustered cluster" ^ --cache-node-type cache.m3.large ^ --num-node-groups 3 ^ --replicas-per-node-group 2 ^ --engine redis ^ --engine-version 6.2 ^ --at-rest-encryption-enabled ^ --cache-parameter-group default.redis6.x.cluster.on

如需其他資訊,請參閱以下內容:

另請參閱