ElastiCacheForRedis启用密码
# 使用 AWS CLI 为现有集群启用传输中加密
启用传输加密分为两步,您必须首先将传输加密模式设置为preferred
。此模式允许您的 Redis 客户端使用加密和未加密连接进行连接。将所有 Redis 客户端迁移为使用加密连接后,您可以修改集群配置以将传输加密模式设置为required
。将传输加密模式设置为required
将删除所有未加密的连接,并仅允许加密的连接。
使用 AWS CLI 操作modify-replication-group
和以下参数更新已禁用传输中加密的 Redis(已启用集群模式)复制组。
# 启用传输中加密
preferred
使用以下参数将 Transit-Encryption-Mode 设置为aws elasticache modify-replication-group \ --replication-group-id authtestgroup \ --transit-encryption-enabled \ --transit-encryption-mode preferred
1
2
3
4--transit-encryption-enabled
-必需的。--transit-encryption-mode
— 必须设置为preferred
。
required
使用以下参数将 Transit-Encryption-Mode 设置为:aws elasticache modify-replication-group \ --replication-group-id authtestgroup \ --transit-encryption-enabled \ --transit-encryption-mode required
1
2
3
4--transit-encryption-enabled
-必需的。--transit-encryption-mode
— 必须设置为required
。
# 修改现有 ElastiCache for Redis 集群上的 AUTH 令牌
为了更轻松地更新身份验证,您可以修改 ElastiCache for Redis 集群上使用的**AUTH令牌。**如果引擎版本为 5.0.6 或更高版本并且 ElastiCache for Redis 启用了传输中加密,您可以进行此修改。
修改auth token支持两种策略:ROTATE和SET。ROTATE 策略向服务器添加额外的**AUTH令牌,同时保留之前的令牌。**SET 策略更新服务器以仅支持单个 AUTH令牌。使用 --apply-immediately
参数进行这些修改调用以立即应用更改。
# 轮换 AUTH 令牌
要使用新的 AUTH 令牌更新 Redis 服务器,请 ModifyReplicationGroup
使用--auth-token
参数作为新的 AUTH 令牌并--auth-token-update-strategy
使用值 ROTATE 来调用 API。修改完成后,集群除了支持参数中指定的AUTH token外,还将支持之前的AUTH token auth-token
。
笔记
如果之前没有配置AUTH token,那么修改完成后,集群除了auth-token参数中指定的AUTH token外,不再支持AUTH token。
如果在已经支持两个AUTH令牌的服务器上执行此修改 ,则在此操作期间还将删除最旧的AUTH令牌,从而允许服务器在给定时间最多支持两个最新的AUTH令牌。
此时,您可以继续更新客户端以使用最新的 AUTH令牌。客户端更新后,您可以使用 SET 策略进行AUTH令牌轮换(在下一节中说明)以独占方式开始使用新令牌。
以下 AWS CLI 操作修改复制组以轮换 AUTH令牌 This-is-the-rotated-token
。
aws elasticache modify-replication-group \
--replication-group-id authtestgroup \
--auth-token This-is-the-rotated-token \
--auth-token-update-strategy ROTATE \
--apply-immediately
2
3
4
5
# 设置 AUTH 令牌
要将具有两个AUTH令牌的Redis 服务器更新为支持单个AUTH令牌,请调用ModifyReplicationGroup
API 操作。ModifyReplicationGroup
使用 --auth-token
作为新AUTH令牌的参数和--auth-token-update-strategy
具有值 SET 的参数进行调用。该 参数必须与上次轮换的AUTHauth-token
令牌的值相同 。修改完成后,Redis服务器仅支持参数中指定的 AUTH token 。auth-token
以下 AWS CLI 操作修改复制组以将 AUTH令牌设置为 This-is-the-set-token
。
aws elasticache modify-replication-group \
--replication-group-id authtestgroup \
--auth-token This-is-the-set-token \
--auth-token-update-strategy SET \
--apply-immediately
2
3
4
5
# 禁用 ElastiCache Redis 集群上的访问控制
请按照以下说明在启用了 Redis TLS 的集群上禁用访问控制。您的 Redis 集群将具有两种不同类型的配置之一:Redis AUTH 默认用户访问权限或用户组访问控制列表 (RBAC)。如果您的集群是使用 AUTH 配置创建的,则必须将其更改为 RBAC 配置,然后才能通过删除用户组来禁用集群。如果您的集群是使用 RBAC 配置创建的,您可以直接禁用它。
# 禁用配置了 AUTH 令牌的 Redis 集群
将 AUTH 令牌更改为 RBAC 并指定要添加的用户组。
aws elasticache modify-replication-group --replication-group-id <replication-group-id-value> --auth-token-update-strategy DELETE --user-group-ids-to-add <user-group-value>
1验证 AUTH 令牌是否已禁用并且用户组是否已添加。
aws elasticache describe-replication-groups --replication-group-id <replication-group-id-value> "AuthTokenEnabled": false, "UserGroupIds": [ "<user-group-value>" ],
1
2
3
4
5删除用户组以禁用集群。
aws elasticache modify-replication-group --replication-group-id <replication-group-value> --user-group-ids-to-remove <user-group-value> { "..." "PendingModifiedValues": { "UserGroups": { "UserGroupIdsToAdd": [], "UserGroupIdsToRemove": [ "<user-group-value>" ] } "..." }
1
2
3
4
5
6
7
8
9
10
11
12(可选)验证没有用户组与集群关联。该
AuthTokenEnabled
字段也应该显示为 false。aws elasticache describe-replication-groups --replication-group-id <replication-group-value> "AuthTokenEnabled": false
1
2
# 注意
aws的redis开启auth需要7.0以上版本,开启以后只能通过tls的方式连接,java配置文件中redis-db0下面要加入ssl: true