8

Docker コンテナの実行に Postgres Amazon RDS と Amazon ECS を使用しています。質問は。RDS データベースのユーザー名とパスワードを ECS で実行されている Docker コンテナーに取得するためのベスト プラクティスは何ですか?

いくつかのオプションが表示されます。

  • 認証情報を docker イメージに組み込みます。画像にアクセスできる人なら誰でもパスワードを取得できるので、これは好きではありません。
  • ECS の自動スケーリング グループによって使用される起動構成のユーザーデータに資格情報を入力します。このアプローチでは、ECS クラスターで実行されているすべての Docker イメージが資格情報にアクセスできます。私もそれがあまり好きではありません。そうすれば、ブラックハットが私のサービスのいずれかにセキュリティ ホールを見つけた場合 (データベースを使用しないサービスであっても)、データベースの資格情報を取得できます。
  • 認証情報を S3 に配置し、ECS サーバーが持つ IAM ロールを使用して、そのバケットへのアクセスを制限します。それらをユーザーデータに入れるのと同じ欠点。
  • 認証情報を ECS のタスク定義に入れます。ここに欠点はありません。

これを行う最善の方法についてどう思いますか? オプションを見逃しましたか?

よろしく、 トバイアス

4

3 に答える 3

12

コンテナーに組み込むことはお勧めしません。配布や変更が困難になります。

それを ECS インスタンスに入れても、コンテナーがそれを使用するのには役立ちません。それらは分離されており、コンテナーがそれらを必要とする場所だけでなく、すべてのインスタンスでそれらを使用することになります。

それらを S3 に入れるということは、その機能をコンテナーに書き込む必要があることを意味します。そして、それは構成を持つ別の場所です。

それらをタスク定義に入れることをお勧めします。この部分を使用できますenvironment。柔軟です。また、Heroku や Elastic Beanstalk などの PaaS 製品が Ruby on rails やその他のサービスに DB 接続文字列を使用する方法でもあります。最後の利点は、コンテナーを再構築したり奇妙な機能を構築したりすることなく、さまざまなデータベース (dev、test、prod など) に対してコンテナーを簡単に使用できることです。

于 2016-05-10T16:25:15.203 に答える