Amazon ElastiCache
用户指南 (API 版本 2015-02-02)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

用于 Redis 的 Amazon ElastiCache 传输中加密

为了帮助确保数据安全,Amazon ElastiCache 和 Amazon EC2 提供了禁止未经授权来访问服务器上数据的机制。通过传输中加密功能,ElastiCache 为您提供了在不同位置之间移动数据时用来保护数据的工具。例如,您可能从复制组中的主节点向只读副本节点移动数据,或在复制组与应用程序之间移动数据。

传输中加密是可选功能,只能在创建 Redis 复制组时在复制组中启用。在创建复制组时通过将参数 TransitEncryptionEnabled (CLI:--transit-encryption-enabled) 设置为 true 可在复制组中启用传输中加密。无论您使用 AWS 管理控制台、AWS CLI 还是 ElastiCache API 创建复制组,都可以这样做。如果 TransitEncryptionEnabled 设置为 true,则还必须提供 CacheSubnetGroup 的值。

重要

参数 TransitEncryptionEnabled (CLI: --transit-encryption-enabled 只可在进行 CreateReplicationGroup (CLI: create-replication-group 操作时使用。

传输中加密概述

Amazon ElastiCache 传输中加密是一种可选功能,利用该功能,您可以在数据最易受攻击时 (从一个位置传输到其他位置) 提高数据安全性。由于在终端节点加密和解密数据时需要进行一些处理,因此启用传输中加密会对性能产生一些影响。应对使用和不使用传输中加密的数据进行基准测试,以确定对使用案例的性能影响。

ElastiCache 传输中加密可实现以下功能:

  • 加密连接 - 服务器和客户端连接均采用安全套接字层 (SSL) 加密。

  • 加密复制 - 对在主节点与副本节点之间移动的数据进行加密。

  • 服务器身份验证 - 客户端可通过身份验证确定它们连接到正确的服务器。

  • 客户端身份验证 - 使用 Redis AUTH 功能,服务器可以对客户端进行身份验证。

传输中加密约束

在规划实现时,应记住有关 Amazon ElastiCache 传输中加密的以下约束:

  • 运行 Redis 版本 3.2.6 的复制组支持传输中加密。运行 Memcached 的群集不支持该加密。

    只有在 Amazon VPC 中运行的复制组支持传输中加密。

  • 只有运行最新一代节点类型的复制组才支持传输中加密。运行上一代节点类型的复制组不支持传输中加密。有关更多信息,请参阅 受支持的节点类型

  • 通过将参数 TransitEncryptionEnabled 设置为 true 可启用传输中加密。由于 TransitEncryptionEnabled 的默认值为 false,因此您必须在创建复制组时将其显式设置为 true。如果 TransitEncryptionEnabled 设置为 true,则还必须提供 CacheSubnetGroup 的值。

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

  • 要连接到已启用传输中加密的复制组,必须为数据库启用传输层安全性 (TLS)。要连接到未启用传输中加密的复制组,数据库不得启用 TLS。

由于在终端节点加密和解密数据时需要进行一些处理,因此实现传输中加密会降低性能。使用自己的数据,对传输中加密进行基准测试,然后与不加密情况进行比较,以确定其对实现性能的影响。

可以通过保留 SSL 连接来减小传输中加密对性能的影响,因为创建新连接的成本可能非常高。

启用传输中加密

控制台在使用 AWS 管理控制台、AWS CLI 或 ElastiCache API 创建面向 Redis 的 ElastiCache 复制组时,可以启用传输中加密。

 

在现有群集中启用传输中加密

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

为现有的 Redis 复制组启用传输中加密

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

  2. 通过从备份中还原来创建新复制组,将引擎版本设置为 3.2.6,将参数 TransitEncryptionEnabled 设置为 true (CLI: --transit-encryption-enabled)。有关更多信息,请参阅 从备份还原并执行可选的群集规模调整

  3. 在您的应用程序中,将终端节点更新为新复制组的终端节点。有关更多信息,请参阅 查找您的 ElastiCache 终端节点

  4. 删除旧复制组。有关更多信息,请参阅下列内容:

 

使用 AWS 管理控制台 启用传输中加密

要在使用 AWS 管理控制台 创建复制组时启用传输中加密,请进行以下选择:

  • 选择 Redis 作为引擎。

  • 选择引擎版本 3.2.6。

  • Encryption in-transit 列表中选择 Yes

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

 

使用 AWS CLI 启用传输中加密

要在使用 AWS CLI 创建 Redis 复制组时启用传输中加密,请使用参数 transit-encryption-enabled

在 Redis (已禁用集群模式) 群集中启用传输中加密 (CLI)

使用 AWS CLI 操作 create-replication-group 和以下参数创建启用传输中加密的有副本 Redis 复制组:

  • --engine 必须为 redis

  • --engine-version 必须为 3.2.6。

  • --transit-encryption-enabled。如果要启用传输中加密,还必须为 --cache-subnet-group 参数提供值。

  • --num-cache-clusters 至少必须有 1 个。此参数的最大值为 6。

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

在 Redis (已启用集群模式) 群集中启用传输中加密 (CLI)

使用 AWS CLI 操作 create-replication-group 和以下参数创建启用传输中加密的有副本 Redis (已启用集群模式) 复制组:

  • --engine 必须为 redis

  • --engine-version 必须为 3.2.6。

  • --transit-encryption-enabled。如果要启用传输中加密,还必须为 --cache-subnet-group 参数提供值。

  • 使用以下参数集之一指定复制组的节点组配置:

    • --num-node-groups 用于指定此复制组中的分片数(节点组)。此参数的最大值为 15。

      --replicas-per-node-group 用于指定各节点组中的副本节点数。此处指定的值适用于此复制组中的所有分片。此参数的最大值为 5。

    • --node-group-configuration 用于分别指定每个分片的配置。

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

 

使用 AWS API 启用传输中加密

要在使用 ElastiCache API 创建 Redis 复制组时启用传输中加密,请将参数 TransitEncryptionEnabled 设置为 true,并将 CreateCacheCluster 用于单节点 Redis 复制组,CreateReplicationGroup 用于具有只读副本的复制组。

在 Redis (已禁用集群模式) 群集中启用传输中加密 (API)

使用 ElastiCache API 操作 CreateReplicationGroup 和以下参数创建启用传输中加密的有副本 Redis (已禁用集群模式) 复制组:

  • Engine 必须为 redis

  • EngineVersion 必须为 3.2.6。

  • TransitEncryptionEnabled 必须设置为 true

    如果 TransitEncryptionEnabled 设置为 true,则还必须提供 CacheSubnetGroup 的值。

  • NumCacheClusters 至少必须有 1 个。此参数的最大值为 6。

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

在 Redis (已启用集群模式) 群集中启用传输中加密 (API)

使用 ElastiCache API 操作 CreateReplicationGroup 和以下参数创建启用传输中加密的有副本 Redis (已启用集群模式) 复制组:

  • Engine 必须为 redis

  • EngineVersion 必须为 3.2.6。

  • TransitEncryptionEnabled 必须设置为 true

  • 使用以下参数集之一指定复制组的节点组配置:

    • NumNodeGroups 用于指定此复制组中的分片数(节点组)。此参数的最大值为 15。

      ReplicasPerNodeGroup 用于指定各节点组中的副本节点数。此处指定的值适用于此复制组中的所有分片。此参数的最大值为 5。

    • NodeGroupConfiguration 用于分别指定每个分片的配置。

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

另请参阅