DVAセキュリティ

開発アカウント(Account A)のLambda関数が本番アカウント(Account B)のDynamoDBテーブルにデータを書き込む必要がある。Lambda関数の実行ロールはAccount Aに存在する。最小権限の原則に従ってクロスアカウントアクセスを安全に実装する方法はどれか。

A
Account BにIAMロールを作成しAccount AのLambda実行ロールARNを信頼ポリシーに追加し、Lambda内でSTS AssumeRoleを呼び出して一時認証情報を取得する
✓ 正解
STS AssumeRoleはAWS推奨のクロスアカウントアクセスパターンで、Account Bのロール信頼ポリシーとAccount AのIAM権限を設定して最小権限の一時認証情報を発行できる。
B
Account BのDynamoDBテーブルにリソースベースポリシーをアタッチし、Account AのLambda実行ロールARNをPrincipalに指定してSTS AssumeRoleなしで直接アクセスを許可する
DynamoDBはリソースベースポリシーをサポートしており技術的には可能だが、リソース側ポリシーとAccount A側IAMポリシーの双方向管理が必要になりSTS AssumeRoleを用いたロールベース委任より権限の一元管理が難しい。
C
Account AのLambda実行ロールにAccount BのDynamoDBテーブルへの書き込み権限を追加し、AWSが自動的にクロスアカウントルーティングでAPI呼び出しを処理する
IAMロールのポリシーにクロスアカウントリソースを記述しても、対象アカウント(Account B)での信頼関係設定なしにAWSが自動的にアクセスを許可することはない。
D
Account BにIAMユーザーを作成してアクセスキーを発行し、Account AのSecrets Managerにキーを保存してLambda関数から動的に取得してDynamoDBを操作する
IAMユーザーの長期アクセスキーはローテーション管理リスクがあり、Secrets Managerに保存してもSTS一時認証情報を使うAssumeRoleよりセキュリティリスクが高い。

解説

AWSのクロスアカウントアクセス推奨パターンはSTS AssumeRole。Account Bのロール信頼ポリシーにAccount AのLambda実行ロールARNを設定し、Lambda関数がAssumeRoleで一時認証情報を取得する。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
DVA の問題一覧に戻る