Amazon ECS で Systems Manager Parameter Store シークレットをプログラムで伝達する - Amazon Elastic Container Service

Amazon ECS で Systems Manager Parameter Store シークレットをプログラムで伝達する

Systems Manager Parameter Store により、シークレットの安全な保管および管理ができます。パスワード、データベース文字列、EC2 インスタンス ID、AMI ID、ライセンスコードなどのデータをアプリケーションにハードコートする代わりに、パラメータ値として保存できます。値はプレーンテキストまたは暗号化されたデータとして保存できます。

機密データの取得にはこの方法が推奨されます。これにより、以後、Secrets Manager Parameter Store のパラメータが更新された場合にアプリケーションが自動的に最新バージョンを取得するようになります。

Systems Manager Parameter Store で機密データの保護を行う前に、以下の考慮事項を確認してください。

  • テキストデータを格納するシークレットのみがサポートされます。バイナリデータを格納するシークレットはサポートされません。

  • セキュリティ制御を強化するために、インターフェイス VPC エンドポイントを使用します。

  • タスクで使用する VPC は、DNS 解決を使用している必要があります。

  • EC2 を使用するタスクでは、この機能を使用するのに Amazon ECS エージェント設定変数 ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE=true を使用する必要があります。コンテナインスタンスの作成時に /etc/ecs/ecs.config ファイルに追加するか、既存のインスタンスに追加して ECS エージェントを再起動できます。詳細については、「Amazon ECS コンテナエージェントの設定」を参照してください。

  • タスク定義では、Systems Manager パラメーター ストアに対する追加のアクセス許可を持つタスク ロールを使用する必要があります。詳細については、「Amazon ECS タスクの IAM ロール」を参照してください。

パラメータを作成する

Systems Manager コンソールを使用すると、機密データ用に Systems Manager Parameter Store のパラメータを作成できます。詳細は「AWS Systems Manager ユーザーガイド」の「Systems Manager パラメータを作成する (コンソール)」または「Systems Manager パラメータを作成する (AWS CLI)」を参照してください。

Systems Manager Parameter Store のシークレットをプログラムで取得するようにアプリケーションを更新する

Systems Manager Parameter Store のパラメータに保存されている機密データを取得するには、AWS SDK コードサンプルコードライブラリの「AWS SDK を使用した Systems Manager のコードサンプル」を参照してください。