AWS認定資格 WEB問題集&徹底解説
ソリューションアーキテクト-プロフェッショナル
問題文と選択肢
ソリューションアーキテクトは、すべての AWS アカウントでの読み取り専用アクセスを必要とする、サードパーティーのモニタリングソリューションを統合しなければなりません。
モニタリングソリューションは、この組織には属さない独自の AWS アカウントで実行され、AWS API を呼び出して各アカウントのリソース情報を収集します。
運用負荷を最小限に抑えながら、モニタリングソリューションに必要なアクセス許可を与えるために、ソリューションアーキテクトは何をすべきですか。
- IAM Identity Center のディレクトリにユーザーを作成する。読み取り専用アクセス許可セットを ユーザーに割り当てる。モニタリングが必要なすべての AWS アカウントをユーザーに割り当てる。 サードパーティーのモニタリングソリューションに、ユーザー名とパスワードを指定する。
- 組織の管理アカウントに IAM ロールを作成する。サードパーティーのモニタリングソリューションの AWS アカウントにロールを引き受けることを許可する。
- サードパーティーのモニタリングソリューションの AWS アカウントを組織に招待する。 すべての機能を有効にする。
- サードパーティーのモニタリングソリューションの新しい IAM ロールを定義する AWS CloudFormation テンプレートを作成する。信頼ポリシーで、サードパーティーの モニタリングソリューションの AWS アカウントを指定する。スタックセットを使用して、 リンクされたすべての AWS アカウントで IAM ロールを作成する。
A. IAM Identity Center のディレクトリにユーザーを作成する。読み取り専用アクセス許可セットを ユーザーに割り当てる。モニタリングが必要なすべての AWS アカウントをユーザーに割り当てる。 サードパーティーのモニタリングソリューションに、ユーザー名とパスワードを指定する。
IAM Identity Center のユーザーは人間のサインイン用であり、外部システムにユーザー名とパスワードを渡す時点でセキュリティ設計として誤り。
サードパーティーの監視ツールが必要とするのは AWS API を呼ぶための認証情報であり、パスワードでは API 呼び出しはできない。
AWS では、システムに権限を渡す手段は常にロールの引き受け(AssumeRole)であって、人間用のサインイン資格情報の共有ではない。
B. 組織の管理アカウントに IAM ロールを作成する。サードパーティーのモニタリングソリューションの AWS アカウントにロールを引き受けることを許可する。
管理アカウントに作った IAM ロールで得られるのは管理アカウント内のリソースへのアクセス権限だけで、メンバーアカウントのリソースは読み取れない。
IAM の権限はアカウント境界を越えないため、「すべての AWS アカウントでの読み取り専用アクセス」という要件を満たせない。
各メンバーアカウント側にロールを用意しない限り成立しない、いかにも正しそうに見えて1 アカウント分しかカバーしていない選択肢。
C. サードパーティーのモニタリングソリューションの AWS アカウントを組織に招待する。 すべての機能を有効にする。
AWS Organizations への招待は請求の統合と統制(SCP など)のための仕組みで、アカウント間に権限を与えるものではない。組織に参加しても、サードパーティーのアカウントが他アカウントのリソースを読めるようにはならない。
むしろ外部ベンダーのアカウントを自社組織に取り込むことになり、統制上のリスクを持ち込むだけで要件を満たさない。
D. サードパーティーのモニタリングソリューションの新しい IAM ロールを定義する AWS CloudFormation テンプレートを作成する。信頼ポリシーで、サードパーティーの モニタリングソリューションの AWS アカウントを指定する。スタックセットを使用して、 リンクされたすべての AWS アカウントで IAM ロールを作成する。
各メンバーアカウントに読み取り専用ポリシーを持つ IAM ロールを作り、信頼ポリシーでサードパーティーのアカウントを指定すれば、監視ツールは sts:AssumeRole で一時的な認証情報を取得して各アカウントを読み取れる。
そのロールを CloudFormation のスタックセットで全アカウントに一括展開するため、アカウント数が増えても手作業が発生せず、運用負荷が最小になる(サービスマネージド型なら新規アカウントへの自動デプロイも可能)。
長期のアクセスキーを配らず、権限も読み取り専用に限定できるため、最小権限の原則にも合致する唯一の解。
構成図
管理アカウント(CloudFormation スタックセット) │ 読み取り専用 IAM ロール(信頼ポリシー: サードパーティーのアカウント)を一括展開 ▼ メンバーアカウント A / B / C ▲ │ sts:AssumeRole(一時的な認証情報) サードパーティーの AWS アカウント(組織外)
他アカウントへの権限付与はロールの引き受け。全アカウントに配るならスタックセット。
正解への思考ルート
問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。| 要件 | 判断ポイント |
|---|---|
| 監視ソリューションは組織外の独自 AWS アカウントで動く(システムからの API 呼び出し) | システムへの権限付与はクロスアカウントの IAM ロール引き受け。人間用のユーザー名/パスワード共有は論外 →選択肢(A)を消す |
| すべての AWS アカウントで読み取り専用アクセスが必要 | IAM 権限はアカウント境界を越えない。管理アカウントに 1 つロールを作るだけでは他アカウントを読めない →選択肢(B)を消す |
| サードパーティーにアクセス許可を「与える」必要がある | Organizations への参加は権限付与ではない(統制・請求統合の仕組み) →選択肢(C)を消す |
| 運用負荷を最小限に抑えつつ全アカウントへ同じロールを配る | CloudFormation スタックセットなら複数アカウント・複数リージョンへ一括展開でき、新規アカウントへの自動デプロイも可能 →選択肢(D)が正解 |
| 最小権限(読み取り専用に限定) | ロールに読み取り専用の権限ポリシー+信頼ポリシーで相手アカウントを限定すれば要件を満たす →選択肢(D)が正解 |
ひっかけポイント
- 選択肢 B は「IAM ロールを作り、相手アカウントに引き受けさせる」という正しい方向性を示すため選びやすいが、作る場所が管理アカウント 1 つだけ。「すべてのアカウント」という要件と照らすと足りない
- 「組織に招待してすべての機能を有効にする」は権限を与えているように錯覚させるが、Organizations は権限付与の仕組みではない(むしろ SCP は権限を「制限」する側)
- IAM Identity Center(旧 AWS SSO)は人間のシングルサインオン用。外部アプリに認証情報を渡す用途で登場したら、それは誤答の合図
- 「サードパーティー × クロスアカウント」の文脈では、実務上さらにExternal ID を信頼ポリシーに入れて混乱した代理(confused deputy)を防ぐのが定石。External ID が選択肢に出てきたら有力候補
出題バリエーション
同じ知識が本番では条件を変えて出題されます。| 問題文がこう変わったら | 正解はこう変わる |
|---|---|
| 「今後新しく追加されるアカウントにも自動でロールを作りたい」 | サービスマネージド型のスタックセット+自動デプロイ(OU 単位の展開)が正解軸に。 |
| 「サードパーティーによるなりすまし(混乱した代理)を防ぎたい」 | 信頼ポリシーの条件に sts:ExternalId を追加する選択肢が正解に。 |
| 「人間の管理者に全アカウントの読み取り権限を与えたい」 | IAM Identity Center の許可セットを全アカウントに割り当てるのが正解軸に(本問の A に近い形が正解になる)。 |
| 「対象が1 アカウントのみ」 | スタックセットは過剰。そのアカウントにクロスアカウントロールを 1 つ作れば十分。 |
| 「全アカウントのAPI 操作ログを 1 か所に集約したい」 | 組織の証跡(Organization Trail)や CloudWatch Logs のクロスアカウント配信が正解軸に。 |
ソリューションアーキテクトは、すべての AWS アカウントでの読み取り専用アクセスを必要とする、サードパーティーのモニタリングソリューションを統合しなければなりません。
モニタリングソリューションは、この組織には属さない独自の AWS アカウントで実行され、AWS API を呼び出して各アカウントのリソース情報を収集します。
運用負荷を最小限に抑えながら、モニタリングソリューションに必要なアクセス許可を与えるために、ソリューションアーキテクトは何をすべきですか。
- IAM Identity Center のディレクトリにユーザーを作成する。読み取り専用アクセス許可セットを ユーザーに割り当てる。モニタリングが必要なすべての AWS アカウントをユーザーに割り当てる。 サードパーティーのモニタリングソリューションに、ユーザー名とパスワードを指定する。
- 組織の管理アカウントに IAM ロールを作成する。サードパーティーのモニタリングソリューションの AWS アカウントにロールを引き受けることを許可する。
- サードパーティーのモニタリングソリューションの AWS アカウントを組織に招待する。 すべての機能を有効にする。
- サードパーティーのモニタリングソリューションの新しい IAM ロールを定義する AWS CloudFormation テンプレートを作成する。信頼ポリシーで、サードパーティーの モニタリングソリューションの AWS アカウントを指定する。スタックセットを使用して、 リンクされたすべての AWS アカウントで IAM ロールを作成する。