亚马逊AWS官方博客

新品发布 – Amazon ElastiCache 的 Redis 6 兼容版

最近发布 Amazon ElastiCacheRedis 5.0 兼容版之后,Amazon ElastiCache for Redis 增加了很多改进功能,包括 5.0.6 等上游支持。

今年早些时候,我们发布了 Global Datastore for Redis,该功能允许您将一个区域中的集群复制到最多两个其他区域中的集群。最近,我们启用了 18 个额外的引擎和节点级 CloudWatch 指标,从而改善了监控 Redis 队列的能力。此外,我们还增加了对资源级权限策略的支持,让您可以将 AWS Identity and Access Management (IAM) 委托人权限分配给指定的 ElastiCache 资源。

今天,我很开心地宣布推出 Amazon ElastiCache for RedisRedis 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 console(ElastiCache 控制台)中选择 User Management(用户管理)和 User Group Management(用户组管理)。

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

如果您要使用自己的密码和访问设置更改默认用户,则需要创建一个用户名被设置为“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 之间进行迁移。 有关详细信息,请参阅文档

ElastiCache 的 Redis 6 集群 – 入门
您可以一如既往地通过 ElastiCache Console(ElastiCache 控制台)、CLIAPICloudFormation 模板创建新的 Redis 6 集群。我将使用控制台,从导航窗格中选择 Redis,然后单击具有以下设置的 Create(创建):

选择“Encryption in-transit”(传输中加密)复选框,以确保您可以看到“Access Control”(访问控制)选项。您可以选择 Access Control(访问控制)选项,按 RBAC 功能或 Redis AUTH 默认用户列出用户组访问控制列表。如果选择 RBAC,则可以选择可用用户组之一。

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

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

Channy