私はドッキング用のコンテナを実行するために、Postgres Amazon RDSとAmazon ECSを使用しています。 質問があります。 RDSデータベースのユーザー名とパスワードをECS上で実行されているドッカーコンテナに取得するためのベストプラクティスは何ですか?ECSのドッカーコンテナにRDSパスワードを取得するためのベストプラクティス
私はいくつかのオプションを参照してください。
- は、ドッキングウィンドウのイメージに資格証明書を作成します。私はこれ以来、画像にアクセスするすべての人がパスワードを取得できるので、これは好きではありません。
- ECSのオートスケーリンググループで使用される起動設定のユーザデータにクレデンシャルを入力します。このアプローチでは、ECSクラスタ上で動作しているすべてのドッカー画像が資格情報にアクセスできます。私はそれも本当に好きではありません。そうすれば、ブラックハットが自分のサービス(データベースを使用していないサービスも含む)にセキュリティホールが見つかると、データベースの資格情報を取得できるようになります。
- S3に資格情報を入れ、ECSサーバーが持つIAMロールでそのバケットへのアクセスを制限します。それらをユーザーデータに入れるのと同じ欠点があります。
- ECSのタスク定義に資格情報を入力します。ここには何の欠点もありません。
これを行うにはどうすればよいですか?私はオプションを忘れましたか?容器の中にそれを構築
に関して、 トビアス
ありがとうございます。私たちはあなたが提案したようにそれらをタスク定義に入れることになり、それは魅力のように機能します。 –
私はこれが少し古いと知っていますが、アクセスを許可するためにIAMロールを使用するべきではありませんか?このクラスターを運ぶEC2インスタンスは、Amazonのエコシステムにある場合、RDSへの読み取り/書き込みの許可を得ることができます。私が理解する限りでは、環境変数としても、ハードウェアコードをハードコードする必要はありません。 – cameck
環境変数は、特にタスク定義ではハードコードされていません。バイナリ(コンテナ)にないため、環境変数を反復することができます。また、IAMではRDSへのアクセスを許可していません。 RDSはホストされたデータベースですが、接続文字列(URL、ポート、ユーザー名、パスワード)を使用して接続します。 –