DVAセキュリティ

Amazon RDS MySQLの接続情報をAWS Secrets Managerで管理しているECSサービスがある。 Secrets Managerの自動ローテーション(30日周期)は設定済みだが、ローテーション後に一部のコンテナで接続エラーが頻発する。 調査の結果、アプリ起動時に一度だけSecrets Managerから認証情報を取得してメモリにキャッシュする実装であることが判明した。 ダウンタイムなしで最小限の変更によりこの問題を解決するにはどうすべきか。

A
ECSタスク定義のSecretsセクションにSecrets ManagerのARNを設定し、タスク起動のたびにECSエージェントが最新の認証情報を環境変数として自動的に注入するよう構成を変更する
ECSタスク定義のSecretsセクション設定はタスク起動時のみ値を注入するため、ローテーション後も実行中コンテナは古い認証情報を使い続け根本解決にならない。
B
データベース接続処理を修正してSecrets Managerから接続のたびにAWSCURRENTバージョンを動的に取得するよう変更し、認証情報はTTL付きで短期キャッシュする
✓ 正解
Secrets Managerの最新バージョン(AWSCURRENT)を接続のたびに動的取得するよう変更することが最小限かつ根本的な解決策で、短期TTLキャッシュで過剰API呼び出しも防げる。
C
RDSのIAMデータベース認証に移行して認証トークンを生成する実装に変更し、パスワードローテーションの影響を受けない構成にする
RDS IAMデータベース認証への移行は認証方式の根本変更であり、RDSパラメータグループ変更やSSL対応が必要になるため最小限の変更とはいえない。
D
AWS Systems Manager Parameter StoreのSecureStringに認証情報を移行し、ECSタスクロールにパラメータ読み取り権限を付与して取得する実装に変更する
AWS Systems Manager Parameter StoreへのSecureString移行は格納サービスの変更であり最小限の修正ではなく、移行後も同じ固定キャッシュ問題が再発する可能性がある。

解説

根本原因は「起動時のみ取得・固定キャッシュ」にある。接続のたびにSecrets ManagerのAWSCURRENTを動的取得する変更が最小限の解決策で、TTLキャッシュにより過剰なAPI呼び出しも防止できる。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
DVA の問題一覧に戻る