在创建ElastiCache集群时,能够选择是否in-transit
加密:
transit encryption mode
有两种:
Access control
可以选择AUTH认证,此时用户连接时需要使用密码。
注意Redis 7以后才支持创建后修改in-transit
。7.0以下的版本,创建完成后就不能修改了,例如创建的时候未开启in-transit加密,创建完成后想开启,是不允许的。
例如对于一个7.0版本以下的集群,创建完成后想修改加密模式,没有按钮提供:
7.0版本可以选择开启或关闭in-transit
加密:
如上图所示,在开启in-transit
加密的时候只能选择preferred
模式,客户端可以通过加密或非加密
方式连接到集群。
在更新客户端的app代码全部使用加密模式连接到集群之后,可以再到控制台上更改它到required
模式。
同理,如果一个集群创建的时候选择了in-transit
加密,如果想关闭它,也需要经过两步:
先把required
模式改为preferred
, 再把preferred
改为非加密模式
preferred模式不能开启AUTH认证,这也很好理解,因为客户端可以通过非加密模式连接。
默认情况下,redis-cli
使用非加密TCP连接到redis。如果ElastiCache集群开启了in-transit
加密,则需要加上--tls
参数
Redis开启AUTH
是可选项,如果想开启AUTH
必须要开启in-transit
加密。开启AUTH
的集群连接时要加-a
例如:
# 非集群模式
src/redis-cli -h cluster-endpoint --tls -a your-password -p port number # 开启了AUTH
src/redis-cli -h cluster-endpoint --tls -p port number # 未开启AUTH
# 集群模式
src/redis-cli -c -h cluster-endpoint --tls -a your-password -p port number