Q36 — AWS SAA-C03 第13章

第 36/100 問 | ← 第13章

Q936. ある会社は、オンプレミスのデータセンター内のサーバーで Node.js の関数を実行しています。このデータセンターでは、PostgreSQL データベースにデータを保存しており、データベースの認証情報(クレデンシャル)はサーバー上の環境変数に接続文字列として格納されています。同社はアプリケーションを AWS へ移行し、Node.js アプリケーションサーバーを AWS Lambda に置き換え、データベースも Amazon RDS for PostgreSQL へ移行したいと考えています。また、データベースの認証情報を安全に管理することを求めています。これらの要件を満たすとともに、運用上のオーバーヘッドが最も少ないソリューションはどれですか?

正解: B. AWS Secrets Manager にデータベースの認証情報をシークレットとして保存します。Secrets Manager を設定して、30 日ごとに認証情報を自動的にローテーションするようにします。Lambda 関数を更新し、シークレットから認証情報を取得するようにします。

解説

これらの要件を満たし、かつ運用上のオーバーヘッドが最も少ないソリューションは、選択肢 B です。つまり、「AWS Secrets Manager にデータベースの認証情報をシークレットとして保存し、30 日ごとの自動ローテーションを設定したうえで、Lambda 関数からそのシークレットを取得する」方法です。その理由は以下のとおりです。 ・シークレット管理:AWS Secrets Manager は、データベース認証情報などのシークレットを安全かつ一元的に管理・ローテーションするための専用サービスであり、機密情報の保管とアクセスに最適化されています。 ・自動ローテーション:Secrets Manager は、シークレットの自動ローテーション機能を提供しており、手動による介入を不要とし、漏洩リスクを低減します。 ・Lambda との統合:Lambda 関数は AWS SDK を使用して Secrets Manager から簡単にシークレットを取得でき、認証情報の利用が簡素化されます。 ・最小限のオーバーヘッド:他の選択肢と比較して、設定・管理作業が最少で済み、運用負荷が最も低くなります。 他の選択肢が劣る理由: A:Parameter Store は主に構成パラメータの管理を目的としており、シークレット管理には特化していません。自動ローテーション機能も限定的であり、セキュリティ面や運用面で Secrets Manager に劣ります。 C:カスタム Lambda 関数によるローテーションは、開発・テスト・保守の負担が大きく、エラー発生のリスクも高まります。また、専用のシークレット管理サービスを活用していないため、非効率です。 D:AWS KMS は暗号化キーの管理サービスであり、シークレットそのものの管理・ローテーション機能は備えていません。シークレットの暗号化には利用できますが、Secrets Manager のような包括的なシークレットライフサイクル管理はできません。 まとめると、選択肢 B は、ストレージ、ローテーション、アクセス制御といったシークレット管理のすべての側面において、AWS の専用サービスである Secrets Manager を活用することで、セキュリティを確保しつつ、運用負荷を最小限に抑えられる、最も効率的かつ堅牢なソリューションです。