本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
静态加密 ElastiCache
为了帮助保护您的数据安全,Amazon ElastiCache 和 Amazon S3 提供了不同的方法来限制对缓存中数据的访问。有关更多信息,请参阅 Amazon VPC 和 ElastiCache 安全性 和 适用于亚马逊的身份和访问管理 ElastiCache。
ElastiCache 静态加密是一项通过加密磁盘数据来提高数据安全性的功能。无服务器缓存上始终启用该功能。在启用后,它会对以下方面进行加密:
-
同步、备份和交换操作期间的磁盘
-
存储在 Amazon S3 中的备份
在启用数据分层的集群中,存储在 SSD(固态硬盘)上的数据始终加密。
ElastiCache 提供默认(服务托管)静态加密,并且能够在密钥管理服务 (KMS) 中AWS 使用您自己的对称客户托管 K MS 密 AWS 钥。备份缓存后,在加密选项下,选择是使用默认加密密钥还是客户自主管理型密钥。有关更多信息,请参阅 启用静态加密。
注意
默认(服务托管)加密是 GovCloud (美国)区域中唯一可用的选项。
重要
在现有的自行设计的 Redis OSS 集群上启用静态加密涉及在复制组上运行备份和还原后,删除现有的复制组。
静态加密只能在创建缓存时在缓存上启用。由于加密和解密数据时需要进行一些处理,因此启用静态加密会对这些操作期间的性能产生影响。应对使用和不使用静态加密的数据进行基准测试,以确定对使用案例的性能影响。
静态加密条件
在计划实施 ElastiCache 静态加密时,应牢记以下 ElastiCache 静态加密限制:
-
运行 Redis OSS 版本(3.2.6 计划为 EOL,请参阅 Redis OSS 版本生命周期终止时间表)、4.0.10 或更高版本的复制组支持静态加密。
-
只有在 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 服务托管加密)。
在备份和节点同步操作期间,实施静态加密可能会降低性能。使用自己的数据,对静态加密进行基准测试,然后与不加密情况进行比较,以确定其对实现性能的影响。
使用 KMS 中的客户托管密 AWS 钥
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.com
和dax.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 存储桶,或者更改文件本身中的加密选项。
-
对于未使用客户自主管理型密钥进行加密的复制组的手动创建备份,您还可以使用客户自主管理型密钥对其进行加密。使用此选项,即使未在原始复制组上加密数据,也可以使用 KMS 密钥对存储在 Amazon S3 中的备份文件进行加密。
从备份还原允许您从可用的加密选项中进行选择,类似于创建新复制组时可用的加密选项。
如果删除密钥或禁用密钥并为用于加密缓存的密钥撤销授权,则缓存将变得不可恢复。换句话说,硬件故障后无法对其进行修改或恢复。 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 执行此操作。
在创建缓存时,您可以选取以下选项之一:
-
默认 – 此选项使用服务管理的静态加密。
-
客户托管密钥-此选项允许您提供来自 AWS KMS 的密钥 ID/ARN 以进行静态加密。
要了解如何创建 AWS KMS 根密钥,请参阅密AWS 钥管理服务开发者指南中的创建密钥
只有在创建 Redis OSS 复制组时,才能启用静态加密。如果要对现有复制组启用静态加密,请执行以下操作。
使用启用静态加密 AWS Management Console
所有无服务器缓存均启用了静态加密。默认情况下,使用 AWS拥有的 KMS 密钥来加密数据。要选择自己的 AWS KMS 密钥,请进行以下选择:
展开默认设置部分。
在默认设置部分下选择自定义默认设置。
在安全部分下选择自定义您的安全设置。
在加密密钥设置下选择客户自主管理型密钥。
在 AWS KMS 密钥设置下选择一个密钥。
在设计自己的缓存时,采用“轻松创建”方法的“开发/测试”和“生产”配置均启用了使用默认密钥的静态加密。在您选择自己的配置时,请进行以下选择:
-
选择 3.2.6、4.0.10 或更高版本作为引擎版本。
-
单击静态加密选项的启用旁边的复选框。
-
选择默认密钥或客户自主管理型密钥。
有关 step-by-step 步骤,请参阅以下内容:
使用启用静态加密 AWS CLI
要在使用创建 Redis OSS 集群时启用静态加密 AWS CLI,请在创建复制组时使用 --at-rest-encryption-enabled 参数。
以下操作创建my-classic-rg
包含三个节点 (--)、一个主节点和两个只读副本的 Redis OSS(已禁用集群模式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-typecache.m4.large
\--engine
\redis
--at-rest-encryption-enabled
\ --num-cache-clusters3
对于 Windows:
aws elasticache create-replication-group ^ --replication-group-id
my-classic-rg
^ --replication-group-description"3 node replication group"
^ --cache-node-typecache.m4.large
^--engine
^redis
--at-rest-encryption-enabled
^ --num-cache-clusters3
^
有关更多信息,请参阅以下内容:
以下操作创建my-clustered-rg
包含三个节点组或分片 (--num-node-groups) 的 Redis OSS(已启用集群模式)复制组。每个节点都有三个节点,一个主节点和两个只读副本 (--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:一个 Redis OSS(已启用集群模式)集群
对于 Linux、macOS 或 Unix:
aws elasticache create-replication-group \ --replication-group-id
my-clustered-rg
\ --replication-group-description"redis clustered cluster"
\ --cache-node-typecache.m3.large
\ --num-node-groups3
\ --replicas-per-node-group2
\--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-typecache.m3.large
^ --num-node-groups3
^ --replicas-per-node-group2
^--engine
^redis
--engine-version
^6.2
--at-rest-encryption-enabled
^--cache-parameter-group
default.redis6.x.cluster.on
有关更多信息,请参阅以下内容: