zoukankan      html  css  js  c++  java
  • 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

    Code your future.
  • 相关阅读:
    学习进度表
    mysql实现跨库查询
    jmeter分布式(1台Windows,一台Mac,亲测可用互相使用)
    解决appium 连接真机Android 9启动报错.....shell "ps 'uiautomator'
    使用fiddler抓包修改请求/返回的数据
    adb 获取当前界面activity
    使用adb 命令获取APP包名
    jmeter实现登录并设置token为全局变量
    python3 SystemError: Parent module '' not loaded, cannot perform relative import
    adb 运行提示error: cannot connect to daemon
  • 原文地址:https://www.cnblogs.com/neozheng/p/14777440.html
Copyright © 2011-2022 走看看