Q89 — AWS SAA-C03 第16章
第 89/100 問 | ← 第16章
Q1289. ある企業が Amazon EC2 インスタンス上でアプリケーションを実行しています。このアプリケーションは Amazon RDS データベースにアクセスする必要があります。企業は、EC2 インスタンスに RDS データベースへのアクセス権限を付与しつつ、最小権限の原則(least privilege)を遵守したいと考えています。 これらの要件を満たす解決策はどれですか?
- A. 管理権限を付与するポリシーを持つ IAM ユーザーを作成し、その IAM ユーザーのアクセスキーを EC2 インスタンス上に配置して RDS データベースにアクセスします。
- B. RDS データベースへのアクセスに必要な最小限の権限のみを付与するポリシーを持つ IAM ユーザーを作成し、その IAM ユーザーのアクセスキーを EC2 インスタンス上に埋め込んで RDS データベースにアクセスします。
- C. RDS データベースへのアクセスに必要な最小限の権限のみを付与するポリシーを持つ IAM ロールを作成し、その IAM ロールのアクセスキーとシークレットキーを EC2 インスタンスプロファイルにアタッチします。
- D. RDS データベースへのアクセスに必要な最小限の権限のみを付与するポリシーを持つ IAM ロールを作成し、その IAM ロールを EC2 インスタンスプロファイルにアタッチします。その後、そのインスタンスプロファイルを EC2 インスタンスに関連付けます。 ✓
正解: D. RDS データベースへのアクセスに必要な最小限の権限のみを付与するポリシーを持つ IAM ロールを作成し、その IAM ロールを EC2 インスタンスプロファイルにアタッチします。その後、そのインスタンスプロファイルを EC2 インスタンスに関連付けます。
解説
正しい解決策は、EC2 インスタンスに Amazon RDS データベースへのアクセスを許可しつつ、最小権限の原則(必要最小限の権限)を遵守し、ハードコードされた認証情報の使用を回避する必要があります。各選択肢を検討します。 正解:D。「RDS データベースへのアクセスに必要な最小限の権限のみを付与するポリシーを持つ IAM ロールを作成し、その IAM ロールを EC2 インスタンスプロファイルにアタッチします。その後、そのインスタンスプロファイルを EC2 インスタンスに関連付けます。」 なぜ D が最適か: ・最小権限の原則に準拠:IAM ロールには RDS へのアクセスに必要な最小限の権限(例:rds-db:connect や特定のデータベース操作)のみが付与されます。一方、選択肢 A では管理者権限が付与されるため、不要な権限が与えられてしまいます。 ・ハードコードされた認証情報の使用を回避(最も安全):EC2 用 IAM ロールは、AWS によって自動的にローテーションされる一時的なセキュリティトークンを提供します。コードや設定ファイル内にアクセスキーを埋め込む必要がありません(選択肢 A/B ではそのようなリスクがあります)。 ・適切な AWS 統合:EC2 インスタンスプロファイルは、インスタンスに IAM ロールを割り当てる推奨方法です。EC2 上で実行されるアプリケーションは、AWS SDK や CLI を使用して、ロールの一時的な資格情報を用いて RDS に対して認証できます。 他の選択肢が不適切な理由: A:管理者権限を付与する IAM ユーザーのアクセスキーを EC2 インスタンスに配置する方法は、極めて危険です。最小権限の原則に反し(不要な広範なアクセスを許可)、アクセスキーがハードコードされることで、漏洩時に攻撃者が全 AWS アカウントへのフルアクセスを得るリスクがあります。 B:RDS アクセスに必要な最小限の権限は付与されますが、依然としてアクセスキーが EC2 インスタンス上にハードコードされるため、セキュリティ上の脆弱性が残ります(ログ、ソースコードリポジトリ、メモリダンプなどからキーが漏洩する可能性があります)。 C:IAM ロールに関する誤解に基づく選択肢です。IAM ロールには手動でアクセスキー/シークレットキーを設定する必要はなく、AWS が自動的に一時的な資格情報を管理します。また、インスタンスプロファイルに静的なキーを「アタッチ」するという操作は技術的に無効であり、実装できません。 主要な比較ポイント: 要件|選択肢 D|他の選択肢 最小権限の権限付与|ロールに RDS アクセスに必要な最小限の権限を設定(A:管理者権限;B:最小権限だがハードコード済み;C:ロールの誤った設定)| ハードコードされた認証情報の回避|ロールによる自動資格情報ローテーション|(A/B:埋め込みキー;C:無効な手法)| AWS のセキュリティベストプラクティスの遵守|IAM ロール+インスタンスプロファイル|(A/B:IAM ユーザー+キー;C:ロールの誤理解)| 選択肢 D の実践的な動作: 1. 次のようなポリシーを持つ IAM ロールを作成: { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["rds-db:connect"], "Resource": "arn:aws:rds:us-east-1:123456789012:dbuser:my-db-instance/*" } ] } 2. このロールを EC2 インスタンスプロファイルにアタッチ。 3. インスタンスプロファイルを対象の EC2 インスタンスに関連付け。 4. EC2 上のアプリケーションは AWS SDK を使って RDS に認証(資格情報はロールから自動取得)。 結論:選択肢 D のみが以下のすべてを満たします: ・最小権限の権限付与 ・ハードコードされた認証情報の回避 ・AWS のセキュリティベストプラクティスの遵守 最終的な正解:D