ElastiCache for Redis 中的静态加密 - Amazon ElastiCache for Redis

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

ElastiCache for Redis 中的静态加密

为了帮助保护您的数据,Amazon ElastiCache 和 Amazon S3 提供了不同的方法来限制对缓存中的数据的访问。有关更多信息,请参阅Amazon VPC和ElastiCache安全性Amazon ElastiCache 中的 Identity and Access Management

ElastiCache for Redis 静态加密是用于通过加密磁盘数据来提高数据安全性的可选功能。在复制组上启用时,它会加密以下方面:

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

  • Amazon S3 中存储的备份

ElastiCache for Redis提供默认(服务管理)的静态加密,以及使用您自己的对称的客户托管的能力AWS中的 KMS 密钥AWSKMS 密钥管理服务.

注意

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

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

有关传输中加密的信息,请参阅ElastiCache for Redis传输中加密 (TLS)

静态加密条件

在规划 ElastiCache 静态加密的实现时,应记住有关 ElastiCache 静态加密的以下约束:

  • 在运行以下 Redis 版本的复制组上支持静态加密:3.2.6、4.0.10 或更高版本。

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

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

    • R6 克、R5、R4、R3

    • M6g、M5、M4、M3

    • T3、T2

    有关更多信息,请参阅 。支持的节点类型

  • 通过将参数 AtRestEncryptionEnabled 明确设置为 true 可启用静态加密。

  • 只有在创建复制组时才能在复制组中启用静态加密。无法通过修改复制组来开启和关闭静态加密。有关在现有复制组中实现静态加密的信息,请参阅启用静态加密

  • 使用客户托管密钥进行静态加密的选项不可用于AWSGovCloud(美国政府-东 1 和 US gov-west-1)区域。

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

使用客户托管密钥AWSKMS

ElastiCache for Redis支持对称客户托管AWSKMS 密钥 (KMS 密钥) 用于静态加密。客户管理的 KMS 密钥是您在AWSaccount. 有关更多信息,请参阅 。AWSKMS 密钥中的AWS密钥管理服务开发人员指南. 密钥必须在AWSKMS,然后才能将其与 Elastiache 一起使用。

要了解如何创建AWSKMS 根密钥,请参阅创建密钥中的AWS密钥管理服务开发人员指南.

ElastiCache for Redis允许您与AWSKMS. 有关更多信息,请参阅 。使用授权中的AWS密钥管理服务开发人员指南. 无需任何客户操作即可实现 Amazon ElastiCache 与AWSKMS.

这些区域有:kms:ViaService条件键限制使用AWSKMS 密钥(KMS 密钥)到指定的请求AWS服务。使用kms:ViaService替换为ElastiCache,请在条件键值中包含两个 ViaService 名称:elasticache.AWS_region.amazonaws.comdax.AWS_region.amazonaws.com. 有关更多信息,请参阅 。kms:ViaService.

您可以使用AWSCloudTrail来跟踪Amazon ElastiCache发送到AWS Key Management Service代表您。对所有 API 调用AWS Key Management Service与客户托管密钥相关的具有相应的 CloudTrail 日志。您还可以通过调用 ListGrants KMS API 调用来查看 ElastiCache 创建的授权。

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

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

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

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

  • 复制备份时,默认使用与源备份关联的客户托管密钥。您可以通过选择其他客户管理的密钥来覆盖它。

注意
  • 将备份导出到您选定的选定时,无法使用客户管理的密钥。Amazon S3存储桶。但是,导出到 Amazon S3 的所有备份都将使用服务器端加密进行加密。您可以选择将备份文件复制到新的 S3 对象并使用客户管理的 KMS 密钥进行加密、将文件复制到使用 KMS 密钥通过默认加密设置的另一个 S3 存储桶,或者更改文件本身中的加密选项。

  • 您还可以使用客户管理的密钥对未使用客户托管密钥进行加密的复制组的手动创建的备份进行加密。使用此选项,存储在Amazon S3使用 KMS 密钥进行加密,即使未在原始复制组上加密数据。

从备份还原允许您从可用的加密选项中进行选择,类似于创建新复制组时可用的加密选项。

  • 如果删除密钥或禁用密钥并为用于加密复制组的密钥撤销授权,则复制组将变得不可恢复。换句话说,它在硬件故障后无法修改或恢复。AWSKMS 仅在至少七天的等待期限之后删除根密钥。删除密钥后,您可以使用其他客户管理的密钥创建备份以用于存档目的。

  • 自动密钥轮替会保留AWSKMS 根密钥,因此轮换不会影响您访问 ElastiCache 数据的能力。加密的 Amazon ElastiCache 复制组不支持手动密钥轮换,手动密钥轮换涉及创建新的根密钥和将任何参考更新到旧密钥。要了解更多信息,请参阅旋转AWSKMS 密钥中的AWS密钥管理服务开发人员指南.

  • 使用 KMS 密钥对 ElastiCache 复制组进行加密需要每个复制组一个授权。在复制组的整个生命周期中使用此授权。此外,在备份创建期间使用每个备份一个授权。在创建备份后,此授权将停用。

  • 有关AWSKMS 授权和限制,请参阅。限制中的AWS密钥管理服务开发人员指南.

启用静态加密

通过在创建 Redis 复制组时将参数 AtRestEncryptionEnabled 设置为 true 可以启用 ElastiCache 静态加密。不能对现有复制组启用静态加密。

可以在创建 ElastiCache for Redis 复制组时启用静态加密。可使用 AWS Management Console、AWS CLI 或 ElastiCache API 完成此操作。

在创建复制组时,您可以选取以下选项之一:

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

  • 客户管理密钥— 此选项允许您提供密钥 ID/ARN 从AWSKMS 用于静态加密。

要了解如何创建AWSKMS 根密钥,请参阅创建密钥中的AWS密钥管理服务开发人员指南

对现有的 Redis 集群启用静态加密

只能在创建 Redis 复制组时启用静态加密。如果要对现有复制组启用静态加密,请执行以下操作。

要对现有复制组启用静态加密

  1. 创建现有复制组的手动备份。有关更多信息,请参阅进行手动备份

  2. 通过从备份中还原来创建新复制组。对新复制组启用静态加密。有关更多信息,请参阅使用可选的群集大小调整从备份中恢复

  3. 在您的应用程序中,将终端节点更新为新复制组的节点。

  4. 删除旧复制组。有关更多信息,请参阅 删除集群删除复制组

使用 AWS Management Console 启用静态加密

要在使用 AWS Management Console创建复制组时启用静态加密,请进行以下选择:

  • 选择 redis 作为引擎。

  • 选择 3.2.6、4.0.10 或更高版本作为引擎版本。

  • 选择来自 的静态加密列表。

有关这个分步过程,请参阅以下内容:

使用 AWS CLI 启用静态加密

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

在 Redis(已禁用集群模式) 集群上启用静态加密 (CLI)

以下操作将创建Redis (已禁用集群模式)复制组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(已禁用集群模式)包含副本的集群

对于 Linux, macOS, or 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 \ --engine-version 4.0.10 \ --at-rest-encryption-enabled \ --num-cache-clusters 3 \ --cache-parameter-group default.redis4.0

对于 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 ^ --engine-version 4.0.10 ^ --at-rest-encryption-enabled ^ --num-cache-clusters 3 ^ --cache-parameter-group default.redis4.0

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

 

在 Redis(已启用集群模式) 集群上启用静态加密 (CLI)

以下操作将创建Redis (已启用集群模式)复制组my-clustered-rg,其中包含三个节点组或分片(--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: ARedis(已启用集群模式)群集

对于 Linux, macOS, or 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 4.0.10 \ --at-rest-encryption-enabled \ --cache-parameter-group default.redis4.0.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 4.0.10 ^ --at-rest-encryption-enabled ^ --cache-parameter-group default.redis4.0.cluster.on

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

使用 ElastiCache API 启用静态加密

要在使用 ElastiCache API 创建 Redis 复制组时启用静态加密,请将参数 AtRestEncryptionEnabled 设置为 trueCreateReplicationGroup

在 Redis(已禁用集群模式) 集群上启用静态加密 (API)

以下操作将创建Redis (已禁用集群模式)复制组my-classic-rg具有三个节点(NumCacheClusters)、一个主副本和两个只读副本。为此复制组启用了静态加密 (AtRestEncryptionEnabled=true)。

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

  • Engine—必须是 redis

  • EngineVersion—必须是 3.2.6、4.0.10 或更高版本。

  • AtRestEncryptionEnabled—必须为 true 以启用静态加密。

例 3: ARedis(已禁用集群模式)包含副本的集群

为了便于阅读,添加了换行符。

https://elasticache.us-west-2.amazonaws.com/ ?Action=CreateReplicationGroup &AtRestEncryptionEnabled=true &CacheNodeType=cache.m3.large &CacheParameterGroup=default.redis4.0 &Engine=redis &EngineVersion=4.0.10 &NumCacheClusters=3 &ReplicationGroupDescription=test%20group &ReplicationGroupId=my-classic-rg &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential>

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

 

在 Redis(已启用集群模式) 集群上启用静态加密 (API)

以下操作将创建Redis (已启用集群模式)复制组my-clustered-rg,其中包含三个节点组/分片(NumNodeGroups),每个节点都有三个节点:一个主节点和两个只读副本节点 (ReplicasPerNodeGroup)。为此复制组启用了静态加密 (AtRestEncryptionEnabled=true)。

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

  • Engine—必须是 redis

  • AtRestEncryptionEnabled—必须为 true 以启用静态加密。

  • EngineVersion—必须是 3.2.6、4.0.10 或更高版本。

  • CacheParameterGroup—必须为 default-redis4.0.cluster.on 或派生自该值,以使其成为 Redis (已启用集群模式) 集群。

例 4:ARedis(已启用集群模式)群集

为了便于阅读,添加了换行符。

https://elasticache.us-west-2.amazonaws.com/ ?Action=CreateReplicationGroup &AtRestEncryptionEnabled=true &CacheNodeType=cache.m3.large &CacheParemeterGroup=default.redis4.0.cluster.on &Engine=redis &EngineVersion=4.0.10 &NumNodeGroups=3 &ReplicasPerNodeGroup=2 &ReplicationGroupDescription=test%20group &ReplicationGroupId=my-clustered-rg &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential>

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

 

另请参阅