amazon-web-services - 使用 ElastiCache redis 服务器和密码解析服务器

标签 amazon-web-services amazon-ec2 redis parse-server amazon-elasticache

我已经在 Elastic Beanstalk 上设置了一个可用的 Parse 服务器。我已经添加了一个 AWS ElasticCache Redis 服务器用于缓存,但是在使用密码时我无法使连接正常工作,只是没有密码。在我创建新的 Parse 服务器的 Parse 服务器 index.js 文件中,我像这样连接 Redis:

// Redis cache server
var RedisCacheAdapter = require('parse-server').RedisCacheAdapter;
var redisurl='rediss://:'+process.env.REDIS_PASS+'@'+process.env.REDIS_URL
var redisOptions = {url: redisurl};
var redisCache = new RedisCacheAdapter(redisOptions);   

我的 URL 看起来像 REDIS_URL=clustercfg.xxxx.xxxx.use1.cache.amazonaws.com

redis://rediss:// 我都试过了。我知道 RedisCacheAdapter 只有一个选项 - URL。我以为我可以直接在链接中添加密码,但适配器似乎没有解析成密码和 URL,而是只需要 URL。

我的问题是我在这里做错了什么还是有其他使用密码的方法?如果无法使用密码,我想知道原因是什么(是因为 ElastiCache 对 Internet 隐藏并且只能被 EC2 上的服务器看到)?

更新: 根据 @MarkB 的评论,我测试了 ElastiCache 的一些不同设置,并将我上面的代码修改为也使用密码。

var redisOptions = {url: redisurl, password: process.env.REDIS_PASS}; 
  1. 使用集群模式、静态加密、传输中加密和 Redis 密码运行 ElastiCache 失败。
  2. 使用静态加密、传输中加密和 Redis 密码运行 ElastiCache 失败。
  3. 在静态加密和传输加密的情况下运行 ElastiCache,没有密码失败。
  4. 运行 ElastiCache 静态加密、传输中加密且无密码成功。

在我看来,从 Parse 服务器连接时在静态和传输中使用加密会导致问题,我不确定如何解决。正如@MarkB 提到的,Parse server (EC2) and ElastiCache 之间的联系仅限于 VPC,所以我可以接受没有安全选项,但仍然很好。

最佳答案

根据 Parse Server 文档 here , redisOptions 将直接传递给 redis 客户端记录 here它支持 password 字段。我相信这就是您需要指定密码而不是在 URL 中指定密码的方式。

另请注意,如果您使用的是 <2.5 版本的 Redis 客户端,则需要指定 auth_pass 而不是 password

正如您提到的,由于 ElastiCache 仅限于您的 VPC,许多人认为无需添加密码身份验证就足够安全,除非出于 PCI 或 HIPAA 合规性原因需要这样做。

关于amazon-web-services - 使用 ElastiCache redis 服务器和密码解析服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52410184/

相关文章:

postgresql - 生产中的DOCKER环境

bash - 在 AWS CodeBuild : script could not be found 中调用 bash 脚本

ruby-on-rails - AWS Elastic Beanstalk Rails Bundler 失败

hadoop - SSH隧道访问EC2 Hadoop集群

mongodb - 在 MongoDB 中缓存查询结果

redis超时与predis

json - 使用 jq 解析 AWS CLI 工具的 json 输出

amazon-web-services - Elasticsearch 6.1 EC2 集群发现不工作

amazon-web-services - 实例故障时将 EBS 卷移动到新实例

python - 使用带有 EC2 的 boto 在服务器上处理并取回结果的最有效方法是什么?