2015-12-22 2 views
7

При запуске базы данных PostgreSQL в контейнере Докер, то documentation для официального PostgreSQL Докер Image определяет, что пароль администратора должен быть установлен в переменной окружения как:Указание суперпользователя PostgreSQL пароль для Docker Контейнер

docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres 

Для тех, кто не хочет жестко закодировать текстовый пароль в своих сценариях, есть ли более безопасные варианты для рассмотрения?

ответ

4

Ввод параметров конфигурации в качестве переменных среды - это подход к конфигурации приложения, рекомендованный веб-сайтом 12 factor app.

В качестве альтернативы вы можете создать свой собственный контейнер, который считывает его конфигурации из пользовательского файла конфигурации:

docker run -d mydockerapp --config mydevconfig.yaml 

Но на самом деле использование переменных среды имеет преимущество с точки зрения гибкости потому что он повсеместен для всех платформ. Чтобы сделать переменные окружения более приемлемыми, вы можете указать их в файле. Это, по крайней мере, обеспечит злоумышленник на одном компьютере, не может подбирать учетные данные из процесса листинга:

$ cat env.db 
POSTGRES_DB=myappdb 
POSTGRES_USER=admin 
POSTGRES_PASSWORD=pleasechangeme 

$ docker run --name postgres --env-file=env.db -d postgres 

Наконец, я обнаружил, что существует целый ряд нерешенных запросов функций для лучшей тайной поддержки со стороны грузчиком:

в моем комфортабельном имеет привычку превосходя безопасность, поэтому я предполагаю, что это займет некоторое время для приемлемого решения, чтобы получить достаточную долю ума. Лично я предвижу решение возникающих эмулятора, что проект Kubernetes делает с зашифрованными объемами данных:

Смежные вопросы