AWS 连接传输加密带密码的ElastiCache

共两种方法:

第一种方式:

要从启用了传输中加密的ElastiCache for Redis节点访问数据,您可以使用与安全套接字层 (SSL) 配合使用的客户端。您还可以在 Amazon linux 和 Amazon Linux 2 上将 redis-cli 与 TLS/SSL 结合使用。

在 Amazon Linux 2 或 Amazon Linux 上使用 redis-cli 连接到启用了传输中加密的 Redis 集群。

    1. 下载并编译 redis-cli 实用工具。此实用工具包含在 Redis 软件发布版中。 

    2. 在 EC2 实例的命令提示符处,键入以下命令:

      Amazon Linux 2:(该示例中我用的就是 AWS EC2 的 Amazon Linux 2)

$ sudo yum -y install openssl-devel gcc
$ wget http://download.redis.io/redis-stable.tar.gz
$ tar xvzf redis-stable.tar.gz
$ cd redis-stable
$ make distclean
$ make redis-cli BUILD_TLS=yes
$ sudo install -m 755 src/redis-cli /usr/local/bin/

      Amazon Linux:

$ sudo yum install gcc jemalloc-devel openssl-devel tcl tcl-devel clang wget
$ wget http://download.redis.io/redis-stable.tar.gz
$ tar xvzf redis-stable.tar.gz
$ cd redis-stable
$ make redis-cli CC=clang BUILD_TLS=yes
$ sudo install -m 755 src/redis-cli /usr/local/bin/

      在 Amazon Linux 上,您可能还需要运行以下附加步骤:

sudo yum install clang
CC=clang make
sudo make install

    3. 之后,建议您运行可选的 make-test 命令。

    4. 在 EC2 实例的命令提示符处,键入以下命令,并使用您的集群和端口的终端节点替换此示例中显示的相应内容。

redis-cli -h Primary or Configuration Endpoint --tls -p 6379    

       以下示例连接到启用了加密和身份验证的集群:

redis-cli -h Primary or Configuration Endpoint --tls -a 'your-password' -p 6379

要解决此问题,您可以使用 stunnel 命令创建到 redis 节点的 SSL 隧道。然后,您可以使用 redis-cli 连接到从隧道,以便从加密的 Redis 节点访问数据。

第二种方式:

使用 redis-cli 连接到启用了传输中加密的 Redis 集群

  1. 使用 SSH 连接到您的客户端并安装 stunnel;
sudo yum install stunnel

    2.  运行以下命令可同时创建和编辑 '/etc/stunnel/redis-cli.conf' 文件,以将一个 ElastiCache for Redis 集群终端节点添加到一个或多个连接参数,并将下面提供的输出用作模板:

vi /etc/stunnel/redis-cli.conf

                
fips = no
setuid = root
setgid = root
pid = /var/run/stunnel.pid
debug = 7 
delay = yes
options = NO_SSLv2
options = NO_SSLv3
[redis-cli]
   client = yes
   accept = 127.0.0.1:6379
   connect = master.ssltest.wif01h.use1.cache.amazonaws.com:6379
[redis-cli-replica]
   client = yes
   accept = 127.0.0.1:6380
   connect = ssltest-02.ssltest.wif01h.use1.cache.amazonaws.com:6379

在此示例中,配置文件具有两个连接,即 redis-cli 和 redis-cli-replica。参数设置如下所示:

  • client设置为 yes 以指定此 stunnel 实例是客户端;

  • accept 设置为客户端 IP。在此示例中,主 IP 设置为端口 6379 上的 Redis 默认 127.0.0.1。副本必须调用另一个端口并设置为 6380。您可以使用临时端口 1024–65535。有关更多信息,请参阅 中的临时端口Amazon VPC 用户指南;

  • connect 设置为 Redis 服务器终端节点。

    3. 启动 stunnel;

sudo stunnel /etc/stunnel/redis-cli.conf

     使用 netstat 命令确认隧道已启动:

sudo netstat -tulnp | grep -i stunnel
                
tcp        0      0 127.0.0.1:6379              0.0.0.0:*                   LISTEN      3189/stunnel        
tcp        0      0 127.0.0.1:6380              0.0.0.0:*                   LISTEN      3189/stunnel

   4. 使用隧道的本地终端节点连接到加密的 Redis 节点。

    如果在创建 ElastiCache for Redis 集群期间未使用 AUTH 密码,此示例将在 Amazon Linux 上使用 redis-cli 通过其完整路径连接到 ElastiCache for Redis 服务器:

/home/ec2-user/redis-stable/src/redis-cli -h localhost -p 6379    

    如果在创建 Redis 集群期间使用了 AUTH 密码,此示例将在 Amazon Linux 上使用 redis-cli 通过其完整路径连接到 Redis 服务器:

 /home/ec2-user/redis-stable/src/redis-cli -h localhost -p 6379 -a my-secret-password

    此示例使用 Telnet 连接到 Redis 服务器。

telnet localhost 6379
            
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
auth MySecretPassword
+OK
get foo
$3
bar

    5. 要停止并关闭 SSL 隧道,请对 stunnel 过程执行 pkill 操作。

sudo pkill stunnel

官方文档:

ElastiCache 传输中加密(TLS) - Amazon ElastiCache for Redis

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值