Разобрать сервер с помощью сервера ElastiCache и пароля - PullRequest
0 голосов
/ 19 сентября 2018

Я настроил работающий сервер Parse на Elastic Beanstalk.Я добавил сервер AWS ElasticCache Redis для использования для кэширования, но не могу заставить работать соединение при использовании пароля, только без него.В моем файле index.js сервера Parse, где я создаю новый сервер Parse, я подключаюсь к 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 скрыт от Интернета и виден только сервером на EC2)?

Обновление: Основано на комментариях от @MarkB Я протестировал несколько различных настроек для ElastiCache с моим кодом выше, модифицированным, чтобы также использовать пароль.

var redisOptions = {url: redisurl, password: process.env.REDIS_PASS}; 
  1. Запуск ElastiCache с кластерным режимом, шифрование в покое, шифрование при передаче и сбой пароля Redis.
  2. Запуск ElastiCache с шифрованием в покое, сбой шифрования при передаче и пароль Redis.
  3. Запуск ElastiCache сшифрование в состоянии покоя и шифрование в пути, без пароля.
  4. Запуск ElastiCache без шифрования в состоянии покоя, шифрование в пути и без пароля успешно.

Кажетсямне, что использование шифрования в покое и в пути при подключении с сервера Parse вызывает проблему, я не уверен, как исправить.Как упомянул @MarkB, соединение между Parse server (EC2) и ElastiCache ограничено VPC, поэтому я согласен, что у меня нет параметров безопасности, но все же было бы неплохо.

1 Ответ

0 голосов
/ 19 сентября 2018

Согласно документации Parse Server здесь , redisOptions будет передано непосредственно клиенту Redis, задокументированному здесь , который поддерживает поле password.Я полагаю, что именно так вам нужно указывать пароль, а не указывать его в URL.

Также обратите внимание, что если вы используете версию Redis Client <2.5, вам нужно указать <code>auth_pass вместо password.

Как вы упомянули, поскольку ElastiCache ограничен вашим VPC, многие считают его достаточно безопасным без добавления аутентификации по паролю, если только это не требуется по причинам, связанным с PCI или HIPAA.

...