SAP-C02-014 · 理解確認
理解確認:クロスアカウントアクセス設計
単一選択 11 / 複数選択 1 · 12問
この理解確認の目的
クロスアカウントIAMロールとリソースベースのポリシーを使い分け、信頼ポリシー、アイデンティティベースのポリシー、AWS STS、AssumeRoleの関係を判断できるか確認します。
アカウント Aの運用チームがアカウント B内のEC2、S3、CloudWatchなど複数サービスを管理する。アカウント B側で運用権限を一元管理したい。最も適切な基本設計はどれか。
B. アカウント BにクロスアカウントIAMロールを作成し、対象側の運用権限をそのロールへ集約する
C. AWS RAMで共有可能なリソースをアカウント Aへ共有し、それ以外はサービスごとに個別方式を設計する
D. アカウント Bに運用専用IAMユーザーを作成し、範囲を限定したアクセスキーをアカウント Aの認証情報保管先へ保管する
答えと解説
答え:B
複数サービスへ共通の対象側権限をまとめる要件ではクロスアカウントIAMロールが最も一貫した設計です。
アカウント Aのロールからアカウント BのProductionReadRoleを引き受けたい。アカウント Bの信頼ポリシーはアカウント Aのロールを既に信頼しているが、AssumeRoleがアクセス拒否になる。最初に確認すべきものはどれか。
sts:AssumeRole が許可されているかB.
ProductionReadRole の権限ポリシーに対象S3 アクションが許可されているかC.
ProductionReadRole の権限境界に対象サービスアクションが含まれているかD. 対象リソース側のリソースベースのポリシーが
ProductionReadRole を許可しているか答えと解説
答え:A
信頼ポリシーが送信元を信頼していても、送信元プリンシパル自身に対象ロールへの sts:AssumeRole 権限がなければロールセッションを開始できません。
アカウント Aのプリンシパルには対象ロールへのsts:AssumeRoleが許可されている。しかしアカウント Bのロールはアカウント Aを信頼していない。結果として正しいものはどれか。
sts:AssumeRole が許可なら信頼ポリシーに関係なくロールを引き受けられるB. 同一Organizations配下なら信頼ポリシーがなくてもロールを引き受けられる
C. 信頼ポリシーが許可していないためAssumeRoleできない
D. AssumeRole自体は成功するが、対象ロールのサービス権限だけがすべて拒否になる
答えと解説
答え:C
クロスアカウント AssumeRoleには送信元側権限と対象ロール側信頼の両方が必要です。
クロスアカウントロールの信頼ポリシーではアカウント Aを信頼している。ロール権限ポリシーはdynamodb:GetItemだけを許可している。アカウント Aのプリンシパルがロールを正常に引き受けた後、ec2:TerminateInstancesを実行した。結果として最も適切なのはどれか。
B. STS 認証情報なのでAdministratorAccessになる
C. 送信元プリンシパルの元権限が自動的に追加される
D. ロールセッションにEC2 権限がないため拒否される
答えと解説
答え:D
信頼ポリシーは「誰がロールを引き受けられるか」を決めます。引き受け後のAWS アクションはロール権限で決まります。
アカウント Aのアプリケーションから、アカウント Bの特定S3 バケットだけを読み取らせたい。対象側アイデンティティへ切り替える必要はなく、S3 バケットポリシーを利用できる。最も直接的な設計はどれか。
B. アカウント BにS3 アクセスポイントを作成し、アクセスポイントポリシーでアカウント A プリンシパルを許可する
C. アカウント Bのバケットポリシーでアカウント A プリンシパルを許可する
D. 必要オブジェクトをアカウント Aのバケットへレプリケーションして、アカウント A内だけで読み取る
答えと解説
答え:C
対象アイデンティティへ切り替える必要がなく、特定バケットを直接共有する要件ならバケットポリシーが最も直接的です。
アカウント Aのロールがアカウント BのSQS キューへ直接クロスアカウントアクセスする。アカウント Bのキューポリシーはアカウント Aのロールを許可しているが、アカウント Aのロールには対象キューへの操作権限がない。最も適切な判断はどれか。
B. 送信元側のアイデンティティベースの権限も確認する
C. 送信元側アイデンティティ権限があれば対象キューポリシーは不要
D. SQSのクロスアカウントアクセスは必ず対象アカウントのロールを引き受ける必要がある
答えと解説
答え:B
通常のクロスアカウントリソースアクセスでは送信元側アイデンティティベースの権限と対象側リソースベースの権限の双方を成立させます。
アカウント Aのプリンシパルがアカウント Bのロールを正常に引き受けた。次にAWS STSから受け取るものの説明として最も適切なのはどれか。
B. 対象アカウント用の長期アクセスキーが新規発行される
C. 対象ロールに対応するIAMユーザーのアクセスキーが一時的に作成される
D. 対象ロールセッション用の一時的なセキュリティ認証情報を受け取る
答えと解説
答え:D
AssumeRole は対象ロールセッション用の一時的なセキュリティ認証情報を返します。IAMユーザーの長期認証情報へ変換する処理ではありません。
要件は「アカウント Aのアプリケーションからアカウント Bの複数リソースを操作する。ただし対象サービスの一部はリソースベースのポリシーに対応していない」である。最も適切な設計はどれか。
B. リソースベースのポリシー対応サービスは直接共有し、非対応サービスにはアカウント Bの専用IAMユーザー認証情報を利用する
C. AWS RAMで共有可能なリソースを共有し、非対応サービスは送信元アカウント側アイデンティティポリシーだけで許可する
D. サービスごとに異なるリソースベースのポリシーや認証情報方式を個別設計する
答えと解説
答え:A
リソースベースのポリシー非対応サービスを含む複数リソース操作を対象側権限へまとめるならクロスアカウントロールが適しています。
ロール信頼ポリシーに次のプリンシパルが指定されている。arn:aws:iam::111111111111:root
最も正しい解釈はどれか。
B. アカウント 111111111111へロール利用の信頼を委譲している
C. AWS Organizationsのルート OUだけを信頼している
D. すべてのAWSアカウントを信頼している
答えと解説
答え:B
アカウント ARNの:rootは、そのアカウントのルートユーザーだけに限定する指定ではなく、そのAWSアカウントへ権限を委譲するアカウントプリンシパルの指定です。
クロスアカウントIAMロールとリソースベースのポリシーの使い分けについて正しいものを3つ選択してください。
B. リソースベースのポリシー対応の特定リソースを直接共有する場合は、ロールを使わない設計も可能
C. クロスアカウントロールではAWS STSの
AssumeRoleによって一時的な認証情報を取得するD. 複数サービスへの権限を対象側で集中管理する場合はクロスアカウントロールが適している
E. 信頼ポリシーはロールセッションが実行可能なS3やEC2 アクションを直接定義する
答えと解説
答え:B / C / D
直接共有できるリソースならリソースベースのポリシーを評価できます。一方、複数サービスやリソースベースのポリシー非対応サービスを含む場合はクロスアカウントロールが有力です。ロール方式ではSTSによる一時認証情報を利用します。
外部SaaS 提供側が多数の顧客 AWSアカウントを監視している。自社アカウントにも提供側が引き受けるIAMロールを作成するが、別顧客が自社ロール ARNを提供側へ指定することで、自社リソースへ誤ってアクセスされることを防ぎたい。
最も適切な設計はどれか。
B. ロールの権限ポリシーへ
sts:AssumeRole を追加するだけにするC. 提供側アカウント IDだけを信頼ポリシーへ指定し、条件は設定しない
D. 提供側が顧客を識別する外部IDを使用し、ロール信頼ポリシーの条件で要求する
答えと解説
答え:D
サードパーティが複数顧客を代理操作する場合、外部IDを信頼ポリシーの条件で要求することで混乱した代理問題への対策を行います。
アカウント Aのロールがアカウント Bの対象ロールを引き受けられるよう、送信元側の sts:AssumeRole、対象側信頼ポリシー、対象ロール権限ポリシーはすべて許可になっている。しかしOrganizationsのSCPが対象アクションを明示的に拒否している。最終結果として最も適切なのはどれか。
B. 信頼ポリシーが許可ならSCPの拒否は無視される
C. 明示的な拒否が最終結果へ影響するため実行できない
D. 一時的な認証情報を再発行すれば拒否を回避できる
答えと解説
答え:C
クロスアカウントアクセスでもSCP、権限境界、アイデンティティ/リソースポリシーなど適用されるポリシーの明示的な拒否は最終評価へ影響します。許可だけを確認して完了とは判断しません。