中的静态加密 ElastiCache - 亚马逊 ElastiCache

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

中的静态加密 ElastiCache

为了帮助保护您的数据安全,Amazon ElastiCache 和 Amazon S3 提供了不同的方法来限制对缓存中数据的访问。有关更多信息,请参阅Amazon VPCs 与 ElastiCache 安全适用于亚马逊的身份和访问管理 ElastiCache

ElastiCache 静态加密是一项通过加密磁盘数据来提高数据安全性的功能。无服务器缓存上始终启用该功能。在启用后,它会对以下方面进行加密:

  • 同步、备份和交换操作期间的磁盘

  • 存储在 Amazon S3 中的备份

在启用数据分层的集群中,存储在SSDs(固态驱动器)上的数据始终处于加密状态。

ElastiCache 提供默认(服务托管)静态加密,并且能够在密钥管理服务(KMS)中AWS 使用您自己的对称客户托管 AWS KMS密钥。备份缓存后,在加密选项下,选择是使用默认加密密钥还是客户自主管理型密钥。有关更多信息,请参阅 启用静态加密

注意

默认(服务托管)加密是 GovCloud (美国)区域中唯一可用的选项。

重要

在现有自行设计的 Valkey 或 Redis OSS 集群上启用静态加密涉及在复制组上运行备份和还原,删除现有的复制组。

静态加密只能在创建缓存时在缓存上启用。由于加密和解密数据时需要进行一些处理,因此启用静态加密会对这些操作期间的性能产生影响。应对使用和不使用静态加密的数据进行基准测试,以确定对使用案例的性能影响。

静态加密条件

在计划实施 ElastiCache 静态加密时,应牢记以下对静 ElastiCache 态加密的限制:

  • 运行 Valkey 7.2 及更高版本以及 Redis OSS 版本(计划推出 3.2.6,请参阅 Redis 版本生命周期终止时间表)EOL、4.0.10 或更高OSS版本的复制组支持静态加密。

  • 只有在 Amazon VPC 中运行的复制组才支持静态加密。

  • 只有运行以下节点类型的复制组才支持静态加密。

    • R6gd、R6g、R5、R4、R3

    • M6g、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 服务托管加密)。

  • 在 Memcached 中,只有无服务器缓存才支持静态加密。

  • 使用 Memcached 时,使用客户托管密钥进行静态加密的选项不适用于 AWS GovCloud (us-gov-east-1 和- us-gov-west 1) 区域。

在备份和节点同步操作期间,实施静态加密可能会降低性能。使用自己的数据,对静态加密进行基准测试,然后与不加密情况进行比较,以确定其对实现性能的影响。

使用来自的客户托管密钥 AWS KMS

ElastiCache 支持用于静态加密的对称客户托管 AWS KMS密KMS钥(密钥)。客户管理的KMS密钥是您在 AWS 账户中创建、拥有和管理的加密密钥。有关更多信息,请参阅《AWS KMS密AWS 钥管理服务开发人员指南》中的密钥。密钥必须 AWS KMS先在中创建,然后才能与一起使用 ElastiCache。

要了解如何创建 AWS KMS根密钥,请参阅《AWS 钥管理服务开发者指南》中的创建密钥

ElastiCache 允许您与集成 AWS KMS。有关更多信息,请参阅 AWS Key Management Service 开发人员指南中的使用授权。无需客户采取任何行动即可启用 Amazon 与之 ElastiCache 集成 AWS KMS。

kms:ViaService条件密钥将密钥( AWS KMS密KMS钥)的使用限制为来自指定 AWS 服务的请求。要kms:ViaService与一起使用 ElastiCache,请在条件键值中包含两个 ViaService 名称:elasticache.AWS_region.amazonaws.com.rproxy.goskope.comdax.AWS_region.amazonaws.com。有关更多信息,请参阅 kms: ViaService

您可以使用AWS CloudTrail来跟踪 Amazon 代表您 ElastiCache 发送 AWS Key Management Service 的请求。与客户托管密钥 AWS Key Management Service 相关的所有API呼叫都有相应的 CloudTrail 日志。您还可以通过调用查看 ElastiCache 创建的授权。ListGrantsKMSAPI

使用客户自主管理型密钥对复制组进行加密后,复制组的所有备份都将按如下方式进行加密:

  • 使用与集群关联的客户自主管理型密钥对每日自动备份进行加密。

  • 删除复制组时创建的最终备份也使用与复制组关联的客户自主管理型密钥进行加密。

  • 默认情况下,手动创建的备份会使用与复制组关联的KMS密钥进行加密。您可以通过选择其他客户自主管理型密钥来覆此行为。

  • 复制备份将默认使用与源备份关联的客户自主管理型密钥。您可以通过选择其他客户自主管理型密钥来覆此行为。

注意
  • 将备份导出到所选的 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 AWS CLI、或 ElastiCache API。

在创建缓存时,您可以选取以下选项之一:

  • 默认 – 此选项使用服务管理的静态加密。

  • 客户托管密钥-此选项允许您提供密钥 ID/ ARN 来自以 AWS KMS进行静态加密。

要了解如何创建 AWS KMS根密钥,请参阅密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。

有关 step-by-step步骤,请参阅以下内容:

使用启用静态加密 AWS CLI

要在使用创建 Valkey 或 Redis OSS 集群时启用静态加密 AWS CLI,请在创建复制组时使用 --at-rest-encryption-enabled 参数。

以下操作创建my-classic-rg包含三个节点 OSS (--)、一个主节点和两个只读副本的 Valkey 或 Redis(已禁用集群模式num-cache-clusters)复制组。已为该复制组 (--at-rest-encryption-enabled) 启用静态加密。

在对此复制组启用加密时,需要以下参数及其值:

关键参数
  • --engine—必须是valkeyredis

  • --engine-version—如果引擎是 Redis,则必须是 3.2.6 OSS、4.0.10 或更高版本。

  • --at-rest-encryption-enabled – 启用静态加密所必需的。

例 1:带副本的 Valkey 或 RedisOSS(已禁用集群模式)集群

对于 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包含三个节点组或分片 OSS (--) 的 Valkey 或 Redis(已启用集群模式)复制组。num-node-groups每个节点都有三个节点,一个主节点和两个只读副本 (--replicas-per-node-group)。已为该复制组 (--at-rest-encryption-enabled) 启用静态加密。

在对此复制组启用加密时,需要以下参数及其值:

关键参数
  • --engine—必须是valkeyredis

  • --engine-version— 如果引擎是 RedisOSS,则必须是 4.0.10 或更高版本。

  • --at-rest-encryption-enabled – 启用静态加密所必需的。

  • --cache-parameter-group – 必须为 default-redis4.0.cluster.on 或派生自此值,以便为此集群启用复制组模式。

例 2:Valkey 或 RedisOSS(已启用集群模式)集群

对于 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

有关更多信息,请参阅以下内容:

另请参阅