ElastiCache 中的靜態加密 - Amazon ElastiCache

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

ElastiCache 中的靜態加密

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

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

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

  • 存放在 Amazon S3 中的備份

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

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

重要

在現有的自行設計 Valkey 或 Redis OSS 叢集上啟用靜態加密,需要在複寫群組上執行備份和還原之後刪除現有的複寫群組。

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

靜態加密條件

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

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

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

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

    • R7g, R6gd, R6g, R5, R4, R3

    • M7g, M6g, M5, M4, M3

    • T4g、T3、T2

    • C7gn

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

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

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

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

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

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

  • 使用 Memcached 時,僅無伺服器快取支援靜態加密。

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

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

從 AWS KMS 使用客戶受管金鑰

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

若要了解如何建立 AWS KMS 根金鑰,請參閱 Key Management Service 開發人員指南中的建立AWS 金鑰

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

kms:ViaService 條件金鑰會將 AWS KMS 金鑰 (KMS 金鑰) 的使用限制為來自指定 AWS 服務的請求。若要搭配 ElastiCache 使用 kms:ViaService,請在條件索引鍵值中包含兩個 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 日誌。您也可以透過呼叫 ListGrants KMS API 呼叫來查看 ElastiCache 建立的授與。

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

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

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

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

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

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

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

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

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

  • 自動金鑰輪換會保留 AWS KMS 根金鑰的屬性,因此輪換不會影響您存取 ElastiCache 資料的能力。加密的 Amazon ElastiCache 快取不支援手動金鑰輪換,其中包含建立新的根金鑰和更新任何舊金鑰的參照。若要進一步了解,請參閱 Key AWS Management Service 開發人員指南中的輪換 AWS KMS 金鑰

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

  • 如需 AWS KMS 授與和限制的詳細資訊,請參閱 AWS Key Management Service 開發人員指南中的限制

啟用靜態加密

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

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

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

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

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

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

若要了解如何建立 AWS KMS 根金鑰,請參閱 Key Management Service 開發人員指南中的建立AWS 金鑰

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

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

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

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

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

使用 啟用靜態加密 AWS Management Console

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

  • 展開預設設定區段。

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

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

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

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

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

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

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

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

如需逐步操作程序,請參閱下列:

使用 啟用靜態加密 AWS CLI

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

下列操作會建立my-classic-rg具有三個節點 (--num-cache-clusters) 的 Valkey 或 Redis OSS (停用叢集模式) 複寫群組,即主要複本和兩個僅供讀取複本。此複寫群組 (--at-rest-encryption-enabled) 的靜態加密已啟用。

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

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

  • --engine-version- 如果引擎是 Redis OSS,這必須是 3.2.6、4.0.10 或更新版本。

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

範例 1:Valkey 或 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具有三個節點群組或碎片 (--num-node-groups) 的 Valkey 或 Redis OSS (啟用叢集模式) 複寫群組。每個都有三個節點、一個主要複本及兩個僅供讀取複本 (--replicas-per-node-group)。此複寫群組 (--at-rest-encryption-enabled) 的靜態加密已啟用。

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

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

  • --engine-version- 如果引擎是 Redis OSS,這必須是 4.0.10 或更新版本。

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

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

範例 2:Valkey 或 Redis 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

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

另請參閱