Q19 — AWS DVA-C02 第3章
第 19/100 問 | ← 第3章
AWS Lambdaで実行されるアプリケーションが、Amazon S3バケット内の特定の機密オブジェクトにアクセスする必要があります。最小権限の原則に基づき、一時的な資格情報のみを使用してS3バケットへのアクセスを許可する必要があります。開発者は、S3バケットへのアクセスを最も安全な方法で設定するにはどうすればよいですか?
- A. アプリケーションコード内にS3オブジェクトへのアクセスに必要な資格情報をハードコードします。これらの資格情報を使用して必要なS3オブジェクトにアクセスします。
- B. S3バケットへのアクセス権限を持つシークレットアクセスキーとアクセスキーIDを作成します。これらのキーとキーIDをAWS Secrets Managerに保存します。アプリケーションがSecrets Managerのシークレットを取得し、その資格情報を使用してS3オブジェクトにアクセスするように構成します。
- C. Lambda関数の実行ロールを作成します。このロールに、S3バケット内の特定のオブジェクトへのアクセスを許可するポリシーをアタッチします。 ✓
- D. S3バケットへのアクセス権限を持つシークレットアクセスキーとアクセスキーIDを作成します。これらのキーとキーIDをLambdaの環境変数として保存します。環境変数を使用して必要なS3オブジェクトにアクセスします。
正解: C. Lambda関数の実行ロールを作成します。このロールに、S3バケット内の特定のオブジェクトへのアクセスを許可するポリシーをアタッチします。
解説
高度に機密性の高いオブジェクトを扱う場合、セキュリティが最優先事項です。最小権限の原則に従い、アプリケーションにはタスク遂行に必要な最小限の権限のみを付与すべきです。各選択肢を検討します:Aはコード内に資格情報をハードコードする方法であり、悪意あるユーザーによる取得や漏洩リスクが高いためセキュリティ上危険です。Bは、AWS Secrets Managerを用いて資格情報を暗号化・安全に保管し、アプリケーションが動的に取得する手法であり、比較的安全です。CはLambda関数の実行ロールにS3アクセス権限を付与するものですが、これは資格情報の保管ではなく、IAMロールによる権限付与であり、本問の「一時的資格情報」要件には合致しません。Dは資格情報を環境変数としてLambdaに保存する方法ですが、環境変数は公開可能であるため、資格情報漏洩リスクが高まります。以上より、最適な選択肢はBです。