SAP-C02既存のソリューションの継続的な改善HARD単一選択

ある企業が AWS 上で稼働する Amazon ECS コンテナの Secret 管理を改善したいと考えています。現在、データベースのパスワードや API キーなどの機密情報がコンテナの環境変数としてプレーンテキストでタスク定義に埋め込まれています。最も安全で運用しやすい方法に移行するには、どのアプローチが適切ですか?

  1. A. シークレットを S3 バケットに保存し、コンテナの起動スクリプトで S3 から取得する
  2. B. 環境変数をBase64エンコードしてタスク定義に埋め込む
  3. C. ECS クラスターを暗号化された EFS にマウントし、シークレットをファイルとして保存する
  4. D. AWS Secrets Manager または Systems Manager Parameter Store(SecureString)にシークレットを格納し、ECS タスク定義の「secrets」フィールドで参照する。ECS はタスク起動時に自動的にシークレットを取得してコンテナに環境変数として注入する。タスクの IAM ロールに Secrets Manager または SSM への読み取り権限を付与する
解答と解説を見る

正解: D

ECS タスク定義の secrets フィールドで Secrets Manager または SSM Parameter Store の ARN を参照することで、ECS がタスク起動時に自動的にシークレットを取得してコンテナに注入します。シークレットはタスク定義には保存されず、IAM ロールによるアクセス制御と Secrets Manager の自動ローテーション機能も活用できます。 B: Base64 エンコードは暗号化ではなくエンコードであり、容易にデコードできます。セキュリティの向上にはなりません。 A: S3 からの取得も機能しますが、起動スクリプトのカスタム実装が必要で、ECS ネイティブの secrets 統合より管理が複雑です。また S3 のアクセスポリシーとライフサイクル管理も別途必要です。 C: EFS へのファイル保存は可能ですが、ECS の secrets フィールドのネイティブ統合より複雑で、Secrets Manager の自動ローテーション機能も利用できません。

▸ この試験を本気で演習する(全150問・無料)