Amazon ElastiCache
用户指南 (API Version 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 的值。

传输中加密概述

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 创建 ElastiCache for Redis 群集时,可以启用传输中加密。

 

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

只能在创建 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-cache-cluster 和以下参数创建启用传输中加密的单节点 Redis 群集:

  • --engine 必须为 redis

  • --engine-version 必须为 3.2.6。

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

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

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

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

  • --engine 必须为 redis

  • --engine-version 必须为 3.2.6。

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

  • --num-cache-clusters 必须至少为 2,一个主节点和最少 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 操作 CreatCacheCluster 和以下参数创建启用传输中加密的单节点 Redis 群集:

  • Engine 必须为 redis

  • EngineVersion 必须为 3.2.6。

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

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

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

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

  • Engine 必须为 redis

  • EngineVersion 必须为 3.2.6。

  • TransitEncryptionEnabled 必须设置为 true

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

  • NumCacheClusters 必须至少为 2,一个主节点和最少 1 个只读副本。此参数的最大值为 6。

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

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

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

  • Engine 必须为 redis

  • EngineVersion 必须为 3.2.6。

  • TransitEncryptionEnabled 必须设置为 true

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

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

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

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

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

另请参阅