Amazon ECS で Secrets Manager シークレットをプログラムで取得する - Amazon Elastic Container Service

Amazon ECS で Secrets Manager シークレットをプログラムで取得する

アプリケーション内でプレーンテキストの機密情報をハードコーディングする代わりに、Secrets Manager を使用して機密データを保存することができます。

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

Secrets Manager でシークレットを作成します。Secrets Manager シークレットの作成後、アプリケーションコードを更新して、そのシークレットを取得します。

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

  • CreateSecret API の SecretString パラメータで作成されたシークレットであるテキストデータを格納するシークレット のみがサポートされます。CreateSecret API の SecretBinary パラメータで作成されたシークレットであるバイナリデータを格納するシークレットはサポートされていません。

  • セキュリティ制御を強化するために、インターフェイス VPC エンドポイントを使用します。Secrets Manager 用に、インターフェイス VPC エンドポイントを作成する必要があります。VPC エンドポイントの詳細については、「AWS Secrets Manager ユーザーガイド」の「VPC エンドポイントの作成」を参照してください。

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

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

Secrets Manager シークレットを作成する

Secrets Manager コンソールを使用して、機密データ用のシークレットを作成できます。シークレットの作成方法の詳細については、「AWS Secrets Manager ユーザーガイド」の「AWS Secrets Manager シークレットを作成する」を参照してください。

Secrets Manager シークレットをプログラムにより取得するようにアプリケーションを更新する

アプリケーションから直接 Secrets Manager API を呼び出し、シークレットを取得することができます。詳細については、「AWS Secrets Manager ユーザーガイド」の「AWS Secrets Manager からのシークレットの取得」を参照してください。

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