Назад | Перейти на главную страницу

Есть ли более безопасный способ передачи переменных в контейнер докеров, чем через env

Экспериментирую с докер-контейнерами. Точнее, я использую docker-compose. Мне нужно передать переменные в мой контейнер и использовать .env файл для этого. Хотя это работает, я удивляюсь, насколько это безопасно. Я имею в виду, что каждый язык сценариев имеет доступ к env и поэтому любой взлом в работающем приложении может раскрыть конфиденциальные данные, хранящиеся в env. Я хочу хранить такие данные, как пароли БД.

Вдохновленный salt, Я ищу способ безопасно передать свои переменные в шаблон моего приложения перед созданием контейнера, вместо того, чтобы передавать их в env контейнера. Как этого добиться?

Есть альтернатива использованию Docker Swarm, называемая секретами Docker. Рой позволяет вам иметь кластер узлов движка докеров, и вы можете создать кластер из одной машины, если хотите. В основном вы можете использовать секреты, хранящиеся в кластере Docker Swarm, которые можно использовать, когда в вашем кластере развернута служба (служба будет развертывать задачи с использованием контейнеров в вашем кластере).

Разъясняются секреты докеров Вот и вы даже можете использовать их в ваши файлы для создания. У вас есть хороший пример для переменных вашего окружения Вот.

Я использую секреты докеров для хранения учетных данных Amazon S3, которые используются в моих контейнерах.

в настоящее время вы можете используйте docker-compose.yml и вставьте часть секретов

docker-compose.yml

version: "3.6"

services:

  my_service:
    image: ubuntu:latest
    entrypoint: "wc -c /run/secrets/my_secret"
    secrets:
      - my_secret

secrets:
  my_secret:
    file: ./password.txt

Hashicorp Vault - это инструмент, который вы ищете. Храните нечувствительные данные в .env, а для секретов используйте Vault.

https://www.vaultproject.io/