Q60 — AWS SAA-C03 第16章
第 60/100 問 | ← 第16章
Q1260. ソリューションアーキテクトが Amazon EC2 インスタンスでアプリケーションをホストしています。このアプリケーションが Amazon DynamoDB テーブルにアクセスできるように、必要な権限を付与する必要があります。この要件を満たすソリューションはどれですか?
- A. DynamoDB テーブルへのアクセスに使用するアクセスキーを作成し、そのアクセスキーを EC2 インスタンスプロファイルに割り当てます。
- B. DynamoDB テーブルへのアクセスに使用する EC2 キーペアを作成し、そのキーペアを EC2 インスタンスプロファイルに割り当てます。
- C. DynamoDB テーブルへのアクセスに使用する IAM ユーザーを作成し、その IAM ユーザーを EC2 インスタンスプロファイルに割り当てます。
- D. DynamoDB テーブルへのアクセスに使用する IAM ロールを作成し、その IAM ロールを EC2 インスタンスプロファイルに割り当てます。 ✓
正解: D. DynamoDB テーブルへのアクセスに使用する IAM ロールを作成し、その IAM ロールを EC2 インスタンスプロファイルに割り当てます。
解説
正解は D です。「DynamoDB テーブルへのアクセスに使用する IAM ロールを作成し、その IAM ロールを EC2 インスタンスプロファイルに割り当てる」です。 解説: EC2 インスタンスから他の AWS サービス(例:DynamoDB)へアクセスする場合のベストプラクティスは、静的な認証情報(アクセスキー)や IAM ユーザーではなく、IAM ロールを使用することです。これにより、以下のメリットが得られます。 ・セキュリティ:アプリケーション内にハードコードされた認証情報が不要になります。 ・自動的な資格情報のローテーション:AWS が一時的なセキュリティ資格情報を自動的に管理・更新します。 ・最小権限の原則:IAM ポリシーにより、きめ細かなアクセス制御が可能です。 なぜ選択肢 D が正しいのか: ・IAM ロール:信頼ポリシー(EC2 がこのロールを引き受けることを許可)とアクセス許可ポリシー(DynamoDB へのアクセス権限を定義)を持つ AWS のアイデンティティです。 ・EC2 インスタンスプロファイル:EC2 インスタンスが IAM ロールを引き受けるためのコンテナであり、インスタンスメタデータサービス(IMDS)経由でアプリケーションに一時的な資格情報を自動的に提供します。 ・ベストプラクティス:アクセスキーをコードや設定ファイルに保存する必要がなく、資格情報の管理も簡素化(ローテーション不要)されます。 他の選択肢が不適切な理由: A:アクセスキーは静的な認証情報であり、漏洩リスクが高く、EC2 から AWS サービスへアクセスする際には推奨されません。 B:EC2 キーペアは SSH 接続用であり、AWS API のアクセス許可とは無関係です。DynamoDB アクセスには一切関係ありません。 C:IAM ユーザーは人間(運用者など)向けのものであり、サービス(EC2)には不適切です。また、依然としてアクセスキーを扱う必要があり、ロールに比べてセキュリティが劣ります。 選択肢 D の実装手順: 1. IAM コンソールで「ロールの作成」→ 「AWS サービス」を選択 → 「EC2」を信頼エンティティとして指定。 2. DynamoDB へのアクセスを許可するポリシー(例:AmazonDynamoDBFullAccess またはカスタムポリシー)をアタッチ。 3. EC2 インスタンス起動時に、起動ウィザードの「IAM ロール」ドロップダウンから該当ロールを選択。既存インスタンスの場合は、「アクション」→ 「インスタンス設定」→ 「IAM ロールのアタッチ/置換」から設定可能。 4. アプリケーションは、インスタンスメタデータサービス(IMDS)から自動的に一時的な資格情報を取得でき、手動での資格情報管理は不要です。 結論: 選択肢 D は、最も安全かつスケーラブルなソリューションです。理由は以下の通りです。 ・IAM ロールは一時的・自動ローテーションされる資格情報を提供します。 ・EC2 インスタンス上に静的なアクセスキーを保存する必要がありません。 ・AWS のサービス間認証に関するベストプラクティスに完全に準拠しています。 最終的な正解:D