2016-05-10 5 views
1

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

私はいくつかのオプションを参照してください。

  • は、ドッキングウィンドウのイメージに資格証明書を作成します。私はこれ以来、画像にアクセスするすべての人がパスワードを取得できるので、これは好きではありません。
  • ECSのオートスケーリンググループで使用される起動設定のユーザデータにクレデンシャルを入力します。このアプローチでは、ECSクラスタ上で動作しているすべてのドッカー画像が資格情報にアクセスできます。私はそれも本当に好きではありません。そうすれば、ブラックハットが自分のサービス(データベースを使用していないサービスも含む)にセキュリティホールが見つかると、データベースの資格情報を取得できるようになります。
  • S3に資格情報を入れ、ECSサーバーが持つIAMロールでそのバケットへのアクセスを制限します。それらをユーザーデータに入れるのと同じ欠点があります。
  • ECSのタスク定義に資格情報を入力します。ここには何の欠点もありません。

これを行うにはどうすればよいですか?私はオプションを忘れましたか?容器の中にそれを構築

に関して、 トビアス

答えて

9

がお奨めすることはありません。配布や変更が難しくなります。

ECSインスタンスに配置しても、コンテナの使用には役立ちません。彼らは孤立しているので、コンテナが必要な場所だけでなく、すべてのインスタンスでそれらを使用することになります。

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

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

+0

ありがとうございます。私たちはあなたが提案したようにそれらをタスク定義に入れることになり、それは魅力のように機能します。 –

+0

私はこれが少し古いと知っていますが、アクセスを許可するためにIAMロールを使用するべきではありませんか?このクラスターを運ぶEC2インスタンスは、Amazonのエコシステムにある場合、RDSへの読み取り/書き込みの許可を得ることができます。私が理解する限りでは、環境変数としても、ハードウェアコードをハードコードする必要はありません。 – cameck

+1

環境変数は、特にタスク定義ではハードコードされていません。バイナリ(コンテナ)にないため、環境変数を反復することができます。また、IAMではRDSへのアクセスを許可していません。 RDSはホストされたデータベースですが、接続文字列(URL、ポート、ユーザー名、パスワード)を使用して接続します。 –

3

回答は、タスク定義に環境変数を設定することをお勧めします。この設定は、ECS Webコンソールに深く組み込まれています。スクロールは、容器部分まで

    1. タスクの定義に移動し
    2. は、(既存の編集を許可されていない)新しいリビジョンを作成することを選択し、正しいタスクとリビジョン
    3. を選択し、選択します。あなたがする必要はあり正しいコンテナ
    4. スクロールのEnv変数セクションにダウン
    5. は、ご使用の構成
    6. 設定を保存し、タスクREVを追加します。 ision
    7. はどこに行くために示して新しいタスクリビジョン

    This tutorial has screenshotsであなたのサービスを更新することを選択します。

    詳細:このチュートリアルではBitnamiのコンテナを紹介しています。私はBitnamiに勤務しています。しかし、ここで表現された考えは私自身であり、Bitnamiの意見ではありません。

    +0

    ようこそ!これは理論的に質問に答えるかもしれませんが、ここで回答の必須部分を含めることが望ましいでしょう(http://meta.stackoverflow.com/q/8259)。 –

    +0

    良い点!ステップを呼び出しました。 – Neal

    +0

    ありがとう、昨日辞めてしまった(ほぼ同じ)答えをもう一度やり遂げることができましたか? –

    関連する問題