使用 Valkey 和 Redis 命令进行身份验证 OSS AUTH - 亚马逊 ElastiCache

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

使用 Valkey 和 Redis 命令进行身份验证 OSS AUTH

注意

AUTH已被取代。基于角色的访问控制 () RBAC所有无服务器缓存都必须RBAC用于身份验证。

Valkey 和 Redis OSS 身份验证令牌或密码使 Valkey 和 Redis OSS 能够在允许客户端运行命令之前要求输入密码,从而提高数据安全性。仅AUTH适用于自行设计的集群。

Valkey 和 ElastiCache Redis 的概述 AUTH OSS

当你将AUTH ElastiCache 与 Valkey 或 Redis OSS 集群搭配使用时,会有一些改进。

特别是,在使用以下令牌或密码时,请注意这些AUTH令牌或密码限制AUTH:

  • 令牌(或密码)必须是 16-128 个可打印字符。

  • 非字母数字字符仅限使用 !、&、#、$、^、<、>、-。

  • AUTH只能为通过 Valkey 或 Redis OSS 集群启用的 ElastiCache 传输中加密启用。

要设置增强令牌,我们建议您遵循严格的密码策略,例如,要求满足以下条件:

  • 令牌或密码必须至少包含以下三种字符类型:

    • 大写字符

    • 小写字符

    • 数字

    • 非字母数字字符(!&#$^<>-

  • 令牌或密码不得包含字典单词或稍作修改的字典单词。

  • 令牌或密码不得与最近使用的令牌相同或相似。

对使用 Valkey 或 Redis ElastiCache OSS 的集群应用身份验证

您可以要求用户在受令牌保护的 Valkey 或 Redis 服务器上输入令牌(密码)。OSS为此,请在创建复制组或集群时加入带有正确令牌的参数 --auth-token (API:AuthToken)。还要在复制组或集群的所有后续命令中包含该令牌。

以下 AWS CLI 操作将创建一个启用传输中加密 (TLS) 和AUTH令牌的复制组This-is-a-sample-token。用已存在的子网组替换子网组 sng-test

关键参数
  • --engine— 必须是valkeyredis

  • --engine-version— 如果引擎是 RedisOSS,则必须是 3.2.6、4.0.10 或更高版本。

  • --transit-encryption-enabled— 身份验证和HIPAA资格所必需的。

  • --auth-token— HIPAA 资格所必需的。对于这个受令牌保护的 Valkey 或 Redis 服务器,此值必须是正确的标记。OSS

  • --cache-subnet-group— HIPAA 资格所必需的。

对于 Linux、macOS 或 Unix:

aws elasticache create-replication-group \ --replication-group-id authtestgroup \ --replication-group-description authtest \ --engine redis \ --cache-node-type cache.m4.large \ --num-node-groups 1 \ --replicas-per-node-group 2 \ --transit-encryption-enabled \ --auth-token This-is-a-sample-token \ --cache-subnet-group sng-test

对于 Windows:

aws elasticache create-replication-group ^ --replication-group-id authtestgroup ^ --replication-group-description authtest ^ --engine redis ^ --cache-node-type cache.m4.large ^ --num-node-groups 1 ^ --replicas-per-node-group 2 ^ --transit-encryption-enabled ^ --auth-token This-is-a-sample-token ^ --cache-subnet-group sng-test

修改现有集群上的AUTH令牌

为了更轻松地更新您的身份验证,您可以修改集群上使用的AUTH令牌。如果引擎版本为 Valkey 7.2 或更高版本或 Redis 5.0.6 或更高版本,则可以进行此修改。 ElastiCache 还必须启用传输中加密。

修改身份验证令牌支持两种策略:ROTATE和。SET该ROTATE策略在保留先前AUTH令牌的同时,向服务器添加一个额外的令牌。该SET策略更新服务器以仅支持单个AUTH令牌。请使用 --apply-immediately 参数进行这些修改调用以立即应用更改。

轮换代AUTH币

要使用新AUTH令牌更新 Valkey 或 Redis OSS 服务器,请ModifyReplicationGroupAPI使用--auth-token参数作为新AUTH令牌调用,--auth-token-update-strategy使用值作为参数调用。ROTATEROTATE修改完成后,除了auth-token参数中指定的AUTH令牌外,集群还将支持之前的令牌。如果在AUTH令牌轮换之前未在复制组上配置AUTH令牌,则集群除了支持无需身份验证即可连接外,还支持--auth-token参数中指定的AUTH令牌。设置代AUTH币要使用更新策略更新所需的AUTH令牌,请参阅SET。

注意

如果您之前未配置AUTH令牌,则修改完成后,集群将不支持除 auth-token 参数中指定的AUTH令牌之外的任何令牌。

如果在已经支持两个AUTH令牌的服务器上执行此修改,则在此操作期间,最旧的AUTH令牌也将被删除。这允许服务器在给定时间最多支持两个最新的AUTH令牌。

此时,您可以通过更新客户端以使用最新的AUTH令牌来继续。客户端更新后,您可以使用AUTH代币轮换SET策略(将在下一节中进行说明)来开始独家使用新代币。

以下 AWS CLI 操作修改复制组以轮换令AUTHThis-is-the-rotated-token

对于 Linux、macOS 或 Unix:

aws elasticache modify-replication-group \ --replication-group-id authtestgroup \ --auth-token This-is-the-rotated-token \ --auth-token-update-strategy ROTATE \ --apply-immediately

对于 Windows:

aws elasticache modify-replication-group ^ --replication-group-id authtestgroup ^ --auth-token This-is-the-rotated-token ^ --auth-token-update-strategy ROTATE ^ --apply-immediately

设置代AUTH币

要更新 Valkey 或 Redis OSS 服务器以支持单个必需的AUTH令牌,请使用与最后一个AUTH令牌具有相同值的--auth-token参数和具有该值的--auth-token-update-strategy参数来调用该ModifyReplicationGroupAPI操作。SET该SET策略只能与之前使用ROTATE策略的 2 个AUTH代币或 1 个可选代AUTH币的集群一起使用。修改完成后,服务器仅支持 auth-AUTH token 参数中指定的令牌。

以下 AWS CLI 操作修改了要将AUTH令牌设置为的复制组。This-is-the-set-token

对于 Linux、macOS 或 Unix:

aws elasticache modify-replication-group \ --replication-group-id authtestgroup \ --auth-token This-is-the-set-token \ --auth-token-update-strategy SET \ --apply-immediately

对于 Windows:

aws elasticache modify-replication-group ^ --replication-group-id authtestgroup ^ --auth-token This-is-the-set-token ^ --auth-token-update-strategy SET ^ --apply-immediately

在现有集群上启用身份验证

要在现有 Valkey 或 Redis OSS 服务器上启用身份验证,请调用该操作。ModifyReplicationGroup APIModifyReplicationGroup使用--auth-token参数作为新标记,--auth-token-update-strategy使用值调用ROTATE。

ROTATE修改完成后,集群除了支持无需身份验证即可连接外,还支持--auth-token参数中指定的AUTH令牌。更新所有客户端应用程序以使用令牌向 Valkey 或 Redis OSS 进行身份验证后,使用SET策略将AUTH令AUTH牌标记为必填项。只有启用传输中加密 (TLS) 的 Valkey 和 Redis OSS 服务器才支持启用身份验证。

从迁移RBAC到 AUTH

如果您要按中所述使用 Valkey 或 Redis OSS 基于角色的访问控制 (RBAC) 对用户进行身份验证基于角色的访问控制 () RBAC,并且想要迁移到AUTH,请使用以下步骤。您可以使用控制台进行迁移,也可以使用控制台进行迁移CLI。

AUTH使用控制台RBAC从迁移到
  1. 登录 AWS Management Console 并打开 ElastiCache 控制台,网址为 https://console.aws.amazon.com/elasticache/

  2. 从右上角的列表中,选择要修改的集群所在的 AWS 区域。

  3. 在导航窗格中,选择在您要修改的集群上运行的引擎。

    此时会显示选定引擎的集群列表。

  4. 在集群列表中,对于要修改的集群,选择其名称。

  5. 对于 Actions(操作),选择 Modify(修改)。

    此时将显示修改窗口。

  6. 对于访问控制,请选择 Valkey AUTH 默认用户访问权限Redis OSS AUTH 默认用户访问权限。

  7. Val AUTH key 代币Redis OSS AUTH 令牌下,设置一个新令牌。

  8. 选择预览更改,然后在下一个屏幕上选择修改

要从迁移RBAC到,请AUTH使用 AWS CLI

使用以下命令之一为您的 Valkey 或 Redis OSS 复制组配置新的可选AUTH令牌。请注意,在身份验证令牌被标记为必填之前,可选的身份验证令牌将允许对复制组进行未经身份验证的访问,使用下一步SET中的更新策略。

对于 Linux、macOS 或 Unix:

aws elasticache modify-replication-group \ --replication-group-id test \ --remove-user-groups \ --auth-token This-is-a-sample-token \ --auth-token-update-strategy ROTATE \ --apply-immediately

对于 Windows:

aws elasticache modify-replication-group ^ --replication-group-id test ^ --remove-user-groups ^ --auth-token This-is-a-sample-token ^ --auth-token-update-strategy ROTATE ^ --apply-immediately

执行上述命令后,您可以使用新配置的可选AUTH令牌更新您的 Valkey 或 Redis OSS 应用程序,以向 ElastiCache 复制组进行身份验证。要完成身份验证令牌的轮换,请在下面的后续命令SET中使用更新策略。这将根据需要标记到可选AUTH令牌。身份验证令牌更新完成后,复制组的状态将显示为,ACTIVE并且与该复制组的所有连接都需要身份验证。

对于 Linux、macOS 或 Unix:

aws elasticache modify-replication-group \ --replication-group-id test \ --auth-token This-is-a-sample-token \ --auth-token-update-strategy SET \ --apply-immediately

对于 Windows:

aws elasticache modify-replication-group ^ --replication-group-id test ^ --remove-user-groups ^ --auth-token This-is-a-sample-token ^ --auth-token-update-strategy SET ^ --apply-immediately

有关更多信息,请参阅 使用 Valkey 和 Redis 命令进行身份验证 OSS AUTH

注意

如果您需要在 ElastiCache 集群上禁用访问控制,请参阅在 ElastiCache Valkey 或 Redis OSS 缓存上禁用访问控制