2015-12-22 15 views
7

Po uruchomieniu bazy PostgreSQL w pojemniku Docker The documentation na oficjalnej PostgreSQL Docker obrazu określa, że ​​hasło administratora należy ustawić w zmiennej środowiskowej jak:Określanie superuser hasło PostgreSQL dla Docker Pojemnik

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

Dla tych, którzy nie chcą zakodować hasła w zwykłym tekście w swoich skryptach, czy istnieją bardziej bezpieczne opcje do rozważenia?

Odpowiedz

4

Wstrzyknięcie ustawień konfiguracyjnych jako zmiennych środowiskowych to podejście do konfiguracji aplikacji zalecane przez stronę internetową 12 factor app.

Ewentualnie można stworzyć swój własny zbiornik, który czyta to konfiguracja z pliku konfiguracyjnego zwyczaj:

docker run -d mydockerapp --config mydevconfig.yaml 

Ale naprawdę użycie zmiennych środowiskowych ma przewagę pod względem elastyczności ponieważ jest wszechobecny na wszystkich platformach. Aby zmienne środowiskowe były bardziej smaczne, można je określić w pliku. Ten przynajmniej zapewni złośliwemu użytkownikowi na tej samej maszynie, nie mógł zebrać poświadczeń z notowań ciągłych:

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

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

Wreszcie odkryłem, że istnieje szereg wybitnych wniosków cecha dla lepszego tajnego wsparcia przez dokowanym:

w moim doświadczeniu wygody ma zwyczaj trumping bezpieczeństwa, więc sobie wyobrazić, to zajmie czasu do zadowalającego rozwiązania w celu uzyskania wystarczającego udziału umysłu. Osobiście forsee rozwiązanie pojawiających który emuluje co projekt Kubernetes robi z zaszyfrowanych wolumenów danych: