DVA-C02:AWS Certified Developer - Associate アプリケーションのセキュリティ 問5
アプリケーションのセキュリティ/アプリコードでの機密データの管理Lambda で使う API キーや DB の接続認証情報を、コードや平文の環境変数に置かずに安全に管理し、実行時に取得したいと考えています。最も適切なのはどれですか。
当サイトのオリジナル問題(DVA-C02:AWS Certified Developer - Associateの出題範囲「アプリケーションのセキュリティ」に対応。実際の試験問題ではありません)
- AAWS Secrets Manager(または SSM パラメータストアの SecureString)に保存し、実行時に取得して、コードや平文の環境変数には置かない
- Bソースコードに定数として直接書き込む
- C環境変数に平文で設定して使う
- D公開された S3 バケットに置いて参照する
正解:A
解説
API キーや DB の接続認証情報などの機密データは、コードや平文の環境変数に置かず、AWS Secrets Manager や SSM パラメータストアの SecureString に保存して、実行時に取得するのがベストプラクティスです。これにより機密情報の集中管理・暗号化・(Secrets Manager では)自動ローテーションが可能になります。
選択肢ごとの解説
- A正しい。Secrets Manager や SSM パラメータストア(SecureString)に保存して実行時に取得すれば、コードや平文の環境変数に機密を置かずに済みます。
- B誤り。ソースコードへの直書きは漏えいリスクが高く、変更やローテーションも困難です。
- C誤り。平文の環境変数への設定は、ログや設定閲覧で露出するリスクがあります。
- D誤り。公開 S3 バケットへの配置は、機密データの重大な漏えいにつながります。