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

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

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

0
задан 17 December 2017 в 15:15
3 ответа

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

Секреты Docker объясняются здесь , и вы даже можете использовать их в ваших файлах создания . У вас есть хороший пример для переменных среды здесь .

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

1
ответ дан 4 December 2019 в 16:03

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

https: //www.vaultproject.io /

0
ответ дан 4 December 2019 в 16:03

в настоящее время вы можете использовать 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
1
ответ дан 20 June 2020 в 10:27

Теги

Похожие вопросы