亚马逊AWS官方博客

新增功能– Amazon ElastiCache 对 Redis 6 的支持

Original Link: https://amazonaws-china.com/cn/blogs/aws/new-redis-6-compatibility-for-amazon-elasticache/

 


在上次发布了Amazon ElastiCache 对开源版本Redis 5.0的支持之后,Amazon ElastiCache 增加了大量的改进,包括了对开源版本Redis 5.0.6的支持。

今年早些时候,我们发布了Redis Global Datastore,使您可以将一个区域中的集群复制到其他两个区域中的集群。最近,我们通过增加18个额外的引擎和节点级CloudWatch指标,提高了监控Redis队列的能力。此外,我们还增加了对资源级权限策略的支持,使您可以将AWS Identity and Access Management(IAM)权限策略附加到给特定的一个或多个ElastiCache资源。

今天,我很高兴地宣布Amazon ElastiCache 对开源版本Redis 6的支持。该版本为Amazon ElastiCache for Redis带来了几个新的重要功能:

  • 基于角色的托管访问控制– Amazon ElastiCache for Redis 6 现在使您能够创建和管理用户和用户组,这些用户和用户组可用于为Redis命令设置基于角色的访问控制(RBAC)。现在,通过让多个应用程序使用同一Redis群集而又无法访问彼此的数据,您可以简化架构,同时维护安全性边界。您还可以利用精细的访问控制和授权来创建管理和只读用户组。Amazon ElastiCache增强了开源版本 Redis 6 中引入的新访问控制列表(ACL),以提供托管的RBAC体验,从而可以轻松为多个 Amazon ElastiCache for Redis 集群设置访问控制。
  • 客户端缓存– Amazon ElastiCache for Redis 6 具有服务器端增强功能,可提供高效的客户端缓存,从而进一步提高应用程序性能。现在,Redis 群集通过跟踪客户端请求并为存储在客户端上的数据发送失效消息来管理客户端缓存。此外,您还可以利用广播模式,该模式允许客户端从 Redis 集群订阅各种通知。
  • 重大的操作改进–此发行版还包含一些增强功能,可以提高应用程序的可用性和可靠性。具体来说,Amazon ElastiCache 通过减少延迟和执行快照所需的时间,在内存不足的情况下,特别是对于具有中/大型密钥的工作负载,改善了复制。开源 Redis 增强功能包括对过期算法的改进,可以更快地收回过期的密钥,以及各种问题的修复。

请注意,开源版本Redis 6还宣布了对传输加密的支持,此功能已在Amazon ElastiCache for Redis 4.0.10及更高版本中提供。此版本的Amazon ElastiCache for Redis 6不会影响Amazon ElastiCache for Redis 对传输加密的现有支持。

为了将 RBAC 应用于新的或现有的 Redis 6 集群,我们首先需要确保您已创建用户和用户组。我们将在下面回顾执行此操作的过程。

使用基于角色的访问控制工作原理
使用Redis AUTH命令对用户进行身份验证的替代方法,Amazon ElastiCache for Redis 6 提供了基于角色的访问控制(RBAC)。使用RBAC,您可以创建用户并通过访问字符串为他们分配特定的权限。

如果要创建,修改和删除用户和用户组,则需要在ElastiCache控制台中选择“用户管理”和“用户组管理”部分。

ElastiCache将自动使用用户ID和用户名“ default”配置默认用户,然后您可以将其或新创建的用户添加到“用户组管理”中的新组。

如果要使用自己的密码和访问设置更改默认用户,则需要创建一个新用户,并将用户名设置为“默认”,然后可以将其与原始默认用户交换。我们建议您为默认用户使用自己的强密码。

以下示例显示了如何通过AWS CLI将原始默认用户与具有修改后的访问字符串的另一个默认用户交换。

$ aws elasticache create-user \
 --user-id "new-default-user" \
 --user-name "default" \
 --engine "REDIS" \
 --passwords "a-str0ng-pa))word" \ 
 --access-string "off +get ~keys*"

创建一个用户组并添加您先前创建的用户。

$ aws elasticache create-user-group \
  --user-group-id "new-default-group" \
  --engine "REDIS" \
  --user-ids "default"

将新的默认用户与原始的默认用户交换。

$ aws elasticache modify-user-group \
    --user-group-id "new-default-group" \
    --user-ids-to-add "new-default-user" \
    --user-ids-to-remove "default"

另外,您可以使用modify-user命令修改用户密码或更改其访问权限,或使用delete-user命令删除特定用户,它将从它所属的任何用户组中删除。

同样,您可以通过使用modify-user-group命令添加新用户和/或删除当前用户来修改用户组,或使用delete-user-group命令删除用户组。请注意,将删除用户组本身,而不是属于该组的用户。

创建用户组并添加用户后,可以将用户组分配给复制组,或在Redis AUTH和RBAC之间转换。有关更多信息,请参见文档

用于ElastiCacheRedis 6集群
与往常一样,您可以使用ElastiCache控制台 CLI APICloudFormation模板来创建新的Redis 6集群。我将使用控制台,从导航窗格中选择Redis,然后单击具有以下设置的创建:

选择“加密传输中”复选框,以确保您可以看到“访问控制”选项。您可以通过RBAC功能选择用户组访问控制列表或 Redis AUTH 默认用户的访问控制选项。如果选择RBAC,则可以选择可用的用户组之一。

我的集群在几分钟之内就可以启动并运行了。您还可以在现有群集上使用就地升级功能。通过选择集群,单击操作和修改。您可以将引擎版本兼容从5.0.6更改为6.x。

已可用
Amazon ElastiCache for Redis 6现已在所有AWS区域中可用。有关ElastiCache for Redis支持版本的列表,请参阅文档。请在Amazon ElastiCache的AWS论坛中或通过AWS支持或您的客户团队向我们提供反馈。

本篇作者

Channy Yun

Channy Yun是AWS的首席开发倡导者,热衷于帮助开发人员在最新的AWS服务上构建现代应用程序。他是一位务实的开发人员和博主,他热爱社区驱动的技术学习和共享,这使开发人员可以将其吸引到全球AWS用户组。在@channyun上的Twitter上关注他。