in-transit加密

ElastiCache in-transit加密

在创建ElastiCache集群时,能够选择是否in-transit加密:

image-20230628103656167

transit encryption mode有两种:

  • Required,此时客户端只能通过SSL加密连接到Redis集群
  • Preferred,客户端可以通过加密和非加密方式连接到Redis集群

Access control可以选择AUTH认证,此时用户连接时需要使用密码。

确认集群是否开启了in-transit加密

image-20230628102354366

修改已有集群in-transit模式

注意Redis 7以后才支持创建后修改in-transit。7.0以下的版本,创建完成后就不能修改了,例如创建的时候未开启in-transit加密,创建完成后想开启,是不允许的。

例如对于一个7.0版本以下的集群,创建完成后想修改加密模式,没有按钮提供:

image-20230628104632811

7.0版本可以选择开启或关闭in-transit加密:

image-20230628104837295

如上图所示,在开启in-transit加密的时候只能选择preferred模式,客户端可以通过加密或非加密方式连接到集群。

在更新客户端的app代码全部使用加密模式连接到集群之后,可以再到控制台上更改它到required模式。


同理,如果一个集群创建的时候选择了in-transit加密,如果想关闭它,也需要经过两步:

先把required模式改为preferred, 再把preferred改为非加密模式

preferred模式不能开启AUTH认证,这也很好理解,因为客户端可以通过非加密模式连接。

开启in-transit ElastiCache集群的连接

  • 默认情况下,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