当前位置: 首页 > 知识库问答 >
问题:

使用ElastiCache redis服务器和密码解析服务器

史阳晖
2023-03-14

我已经在Elastic Beanstalk上设置了一个工作解析服务器。我添加了一个AWS ElasticCache Redis服务器用于缓存,但我无法在使用密码时使连接工作,只有在没有密码的情况下。在我的解析服务器索引中。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\u URL=clustercfg。xxxx年。xxxx年。use1.cache。amazonaws。com

我尝试了redis和redis。我知道RedisCacheAdapter只接受一个选项—URL。我想我可以直接在链接中添加密码,但适配器似乎不会解析为密码和URL,而只需要URL。

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

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

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

在我看来,当从解析服务器连接时,在静态和传输中使用加密会导致一个问题,我不知道如何解决。正如@MarkB所提到的,解析服务器(EC2)和ElastiCache之间的连接仅限于VPC,所以我可以不使用安全选项,但还是很好。

共有1个答案

单于越
2023-03-14

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

还请注意,如果您使用的是Redis客户端版本

正如您所提到的,由于ElastiCache仅限于您的专有网络,许多人认为不添加密码验证就足够安全了,除非出于PCI或HIPAA合规性等原因需要这样做。

 类似资料:
  • 首先欢迎关注我的博客: www.leoyang90.cn 服务容器对对象的自动解析是服务容器的核心功能,make 函数、build 函数是实例化对象重要的核心,先大致看一下代码: public function make($abstract) { $abstract = $this->getAlias($abstract); if (isset($this->deferredSer

  • 简介 Laravel 服务容器是用于管理类的依赖和执行依赖注入的工具。依赖注入这个花俏名词实质上是指:类的依赖项通过构造函数,或者某些情况下通过「setter」方法「注入」到类中。 来看一个简单的例子: <?php namespace App\Http\Controllers; use App\User; use App\Repositories\UserRepository; use App

  • 我正在研究Spring Cloud Config一段时间。我有一个保护配置数据的要求。根据Spring Cloud文档,已经配置了server.jks并添加到类路径中。现在我能够加密和解密远程配置数据。 为了确保配置服务器的安全,我添加了spring security starter并分配了凭据(密码decryded)。出于某种原因,应用程序抛出了它在类路径上没有键存储的expeptions。在搜

  • null null Tomcat服务器正在运行servlet,为mySQL数据库执行一些业务逻辑和hibernate框架。 现在我有点糊涂了。两台服务器都能接收HTTP请求吗?就像servlet从网页接收https请求和我的apache服务器一样? 并且两者都可以连接到数据库--使用php的apache服务器,正如我提到的,同时使用servlet的tomcat?

  • bind 绑定 欢迎关注我的博客:www.leoyang90.cn bind 绑定是服务容器最常用的绑定方式,在 上一篇文章中我们讨论过,bind 的绑定有三种: 绑定自身 绑定闭包 绑定接口 今天,我们这篇文章主要从源码上讲解 Ioc 服务容器是如何进行绑定的。 /** * Register a binding with the container. * * @param string|arra

  • 在通常的场景中,连接字符串包含纯文本的密码,但这可以被Wireshark捕获,因此我想在一个连接字符串中使用加密的密码。我从Postgres文档中找到了以下摘录: