ElastiCache Redis Auth 連接


使用 redis-cli 連接到通過傳輸中加密啟用的用於 Redis 的 Amazon 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

 

官方文檔:

https://docs.aws.amazon.com/zh_cn/AmazonElastiCache/latest/red-ug/in-transit-encryption.html#connect-tls

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM