一、首先創建AWS ELC時,啟用TLS,Terraform Code
resource "aws_elasticache_replication_group" “test”{
transit_encryption_enabled = true
}
二、編譯redis-cli,env = Ubuntu 18.0.4
參考aws doc :
https://docs.aws.amazon.com/zh_cn/AmazonElastiCache/latest/red-ug/in-transit-encryption.html
1.安裝依賴包
$ apt-get update
$ apt-get upgrade
$ apt-get install gcc openssl tcl clang wget
$ apt-get install libssl-dev // 其實安裝的是 opnessl-devel
$ apt-get install libjemalloc-dev // 其實安裝的是 jemalloc-devel
// tcl-devel ,Ubuntu找不到,至今也未安裝成功
2.編譯 redis-cli,必須是redis 6.0版本,才能支持TLS
$ wget http://download.redis.io/redis-stable.tar.gz
$ tar zxvf redis-stable.tar.gz
$ cd redis-stable/
$ make distclean
$ make redis-cli CC=clang BUILD_TLS=yes
$ install -m 755 src/redis-cli /usr/local/bin/
三、使用AWS ELC CLI啟用AUTH(ELC必須已經啟用了TLS)並驗證:注意參數 --tls 的位置
// auth-token-update-strategy ROTATE,因為創建之初,無法設置AUTH,所以這里必須指定ROTATE策略,使得無密碼和設定的密碼同時可用狀態
aws elasticache modify-replication-group --replication-group-id "創建的ELC NAME" --auth-token "密碼:必須符合AWS密碼要求" --auth-token-update-strategy ROTATE --apply-immediately
// 設定為僅用密碼登錄
aws elasticache modify-replication-group --replication-group-id "創建的ELC NAME" --auth-token "必須是上面已經設定的密碼" --auth-token-update-strategy SET --apply-immediately
// 驗證:如果ELC是集群模式,必須使用參數 -c
redis-cli -c -h hostname --tls -a "auth token" -p port