DVAセキュリティ
アカウントA上で動作するECSタスクが、アカウントBのDynamoDBテーブルに書き込む必要があります。セキュリティのベストプラクティスに従った場合、最も適切なクロスアカウントアクセスの実装はどれですか?
AアカウントBでIAMユーザーを作成してDynamoDBアクセス権限を付与し、長期アクセスキーをアカウントAのECSタスクの環境変数に設定する
環境変数の長期アクセスキーはローテーション管理が複雑で、漏洩時のリスク(無期限アクセス)が高いです。AWS推奨のセキュアな方法ではありません。
BアカウントBにIAMロールを作成しアカウントAのECSタスクロールを信頼ポリシーに追加し、STS AssumeRoleで一時認証情報を取得する
✓ 正解
ECSタスク実行ロールがSTS AssumeRoleで一時認証情報(デフォルト1時間)を取得する方法がAWSベストプラクティスです。権限管理が明確で、自動ローテーションによるセキュリティが確保されます。
CアカウントBのDynamoDBテーブルのリソースポリシーにアカウントAのAWSアカウントIDのみを直接許可し、IAMロールは作成しない
DynamoDBのリソースポリシーでアカウントIDのみ許可すると、アカウントA内の全プリンシパルへの広範なアクセスが開放され最小権限の原則を満たしません。特定のECSタスクロールに限定する構成が必要です。
DアカウントAのECSタスクロールにアカウントBのDynamoDBへのフルアクセスポリシーを直接アタッチし、クロスアカウントアクセスを設定する
クロスアカウント環境でのIAMポリシー直接アタッチは機能しません。別アカウントのリソースへのアクセスには信頼関係とAssumeRoleが必須です。
解説
クロスアカウントアクセスのAWSベストプラクティスはSTS(Security Token Service:一時認証情報発行サービス)のAssumeRoleを使うことです。アカウントBに「アカウントAの特定IAMロールを信頼する」ロールを作成し、ECSタスクがsts:AssumeRoleで一時認証情報(デフォルト1時間で期限切れ)を取得します。
選択肢Aの長期アクセスキーはローテーション管理が複雑で漏洩時のリスクが高く、キーが流出した場合の影響範囲が広いため非推奨です。
選択肢CのDynamoDBリソースポリシーでアカウントIDのみを許可する方法は最小権限の原則を満たさず、アカウント内の全プリンシパルにアクセスを許可してしまうリスクがあり不十分です。
選択肢DはクロスアカウントでIAMポリシーを直接アタッチしても、別アカウントのリソースへのアクセス権限はIAMの仕組み上付与されません。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →