Использование Redis для передачи данных в небезопасный докер-контейнер - PullRequest
0 голосов
/ 18 ноября 2018

Я делаю webapp с докером, мне нужно запустить код, созданный публичным пользователем (вообще не безопасно), я использую redis для передачи некоторых данных между моими контейнерами (используя сокет, совместно используемый в именованном томе)

schema

Как я могу запретить небезопасным контейнерам отправлять данные в Redis?

my docker-compose.yml

version: "3"

services:
  redis:
    image: redis:latest
    command: >
      sh -c "chown redis /tmp/redis/
             redis-server /usr/local/etc/redis/redis.conf"
    volumes:
      - redis_socket:/tmp/redis
  unsafe_container:
      build:
        context: ./docker
        dockerfile: Dockerfile
      command: python unsafe.py
      volumes:
        - redis_socket:/tmp/redis:ro
      links:
        - redis
      depends_on:
        - redis
  data_in:
    build:
      context: ./docker
      dockerfile: Dockerfile-data
    command: >
      sh -c "python3 /code/manage.py wait_db
             python3 /code/manage.py start_dc"
    volumes:
      - redis_socket:/tmp/redis
    links:
      - redis
    depends_on:
      - redis
  volumes:
    redis_socket:

Если я делаю Redis Slave, могу ли я настроить этот режим так, чтобы он принимал чтение только от всех подключений, кроме главного Redis?

Спасибо

EDIT: после некоторых тестов Slave только для чтенияпо умолчанию, но я не могу подключить подчиненное устройство к ведущему с помощью сокета, я не нашел ничего об этой функции / проблеме в документации

1 Ответ

0 голосов
/ 18 ноября 2018

Реплики Redis в первую очередь предназначены для обеспечения высокой доступности и, как таковые, подключения по сети. Они не поддерживают соединения UDS с ведущим.

Однако вы можете использовать socat для предоставления сокета Unix в качестве TCP (например, https://serverfault.com/questions/517906/how-to-expose-a-unix-domain-socket-directly-over-tcp).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...