2017-09-28 14 views
0

Docker Postgres samples libraryは、docker runでpostgreSQLインスタンスを起動する例、またはdocker-composeファイルを使用している例を示しています。Docker PostgreSQLはパスワードを公開していますか?

docker runコールはコマンドでパスワードを公開しており、docker-composeファイルはGithubで表示できるパスワードを公開しています。私は、このような方法で資格情報を公開することはなく、常に環境から取得することを学びました。 postgreSQLとセキュリティを念頭に置くための正しい方法はありますか?または、これは安全で、私の理解は間違っていますか?

docker run例:

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

docker-composeは、例:

version: '3.1' 
services: 
    db: 
     image: postgres 
     restart: always 
     environment: 
      POSTGRES_PASSWORD: example 

答えて

2

は確かに、これらのシステムが公開されていない場合であっても、それはソースコントロールに表示任意の資格情報を持っていない方が良いでしょう。

環境定義の正しい部分を省略し、変数名のみを表示するだけで、これらの値のリスト表示を回避する簡単な方法があります。こうすることで、あなたのシェルにパスワードをあらかじめ設定しておけば、ドッカーやドッカーが作成したパスワードを使用することができます。

environment: 
    - POSTGRES_PASSWORD 

そして

POSTGRES_PASSWORD=pass docker-compose up -d 

を経由して、それを実行すると、さらに資格情報を格納し、唯一の指定されたコンテナへのアクセスを可能にする方法である秘密の概念があります。

environment: 
    - POSTGRES_PASSWORD 

と現在のシェル環境があります。

が受け入れ答えに追加するにはdocker secrets

0

で詳細を参照してください、それは限り、あなたはdocker-compose.ymlファイルの環境変数を指定しているとことは注目に値します

​​ :POSTGRES_PASSWORDはすでに設定され、次のコマンドは、 docker-compose POSTGRES_PASSWORD環境変数を継承します

docker-compose up -dコマンドにプレフィックスを付ける必要はありません。

関連する問題