DVAセキュリティ複数選択
アカウント A の EC2 インスタンスで動作するアプリケーションが、アカウント B の DynamoDB テーブルにアクセスする必要がある。アプリケーションコードに認証情報をハードコードせずにクロスアカウントアクセスを実現する手順として正しいものはどれか。(2つ選択)
Aアカウント B に IAM ロールを作成し、信頼ポリシー(Trust Policy)でアカウント A の EC2 インスタンスロールの ARN(Amazon Resource Name)を AssumeRole できるエンティティとして指定する
✓ 正解
アカウントBのIAMロール信頼ポリシーにアカウントAのEC2ロールARNをプリンシパルとして指定することで、アカウントAからのクロスアカウントAssumeRoleを許可します。
Bアカウント A の EC2 インスタンスロールのポリシーに、STS AssumeRole でアカウント B のロールを引き受ける権限を付与する
✓ 正解
アカウントAのEC2ロールにsts:AssumeRole権限を付与することで、アプリがアカウントBのロールを引き受け一時認証情報を取得し、DynamoDBへアクセスできるようになります。
Cアカウント B に IAM ユーザーを作成し、アクセスキーをアカウント A の EC2 インスタンスの環境変数に設定する
IAM ユーザーを作成し、アクセスキーをアカウント A の EC2 インスタンスの環境変数に設定する方法は、長期認証情報の使用であり、漏洩リスクが高くベストプラクティス違反です。
Dアカウント A の VPC からアカウント B の VPC に VPC ピアリングを設定し、DynamoDB へ直接アクセスする
AWS VPC ピアリングを設定し、DynamoDB へ直接アクセスする方法は、VPC 間のネットワーク経路を確立する機能であり、IAM 認証で制御される DynamoDB へのアクセス権限を付与するものではないため、単独ではクロスアカウントアクセスを実現できません。
Eアカウント A の EC2 インスタンスロールに、アカウント B の DynamoDB テーブル ARN を Resource に指定した dynamodb:* 許可ポリシーを直接アタッチする
アカウントAのIAMポリシーはアカウントB内のDynamoDBへの権限を直接付与できません。クロスアカウントにはAssumeRoleによる権限委譲またはテーブルへのリソースベースポリシー設定が必要です。
解説
クロスアカウントアクセスは2段階の設定が必要です。
①アカウント B 側:IAM ロールの信頼ポリシーでアカウント A のロール ARN を AssumeRole 可能なプリンシパルとして指定。
②アカウント A 側:EC2 インスタンスロールに sts:AssumeRole 権限を付与。アプリは AWS SDK の AssumeRole 呼び出しで一時認証情報を取得し、それを使って DynamoDB にアクセスします。
選択肢CのIAM ユーザーを作成し、アクセスキーをアカウント A の EC2 インスタンスの環境変数に設定する方法は、長期認証情報の使用であり、漏洩リスクが高くベストプラクティス違反です。
選択肢DのAWS VPC ピアリングを設定し、DynamoDB へ直接アクセスする方法は、VPC 間のネットワーク経路を確立する機能であり、IAM 認証で制御される DynamoDB へのアクセス権限を付与するものではないため、単独ではクロスアカウントアクセスを実現できません。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →