AWS認定資格 WEB問題集&徹底解説

ソリューションアーキテクト-プロフェッショナル

正解 C問題
要復習(もう一度解きたい問題) 1 2 3 4
合格に向けて、もっと深く学習する
豊富な問題と詳細なAWSサービス解説を、24時間無料でお試しいただけます
プレミアム会員機能を無料で試す ❯
問題文と選択肢
ある企業には、個々のビジネスグループが所有する多数の AWS アカウントがあります。そのアカウントのうちの 1 つが最近侵害されました。攻撃者が多数のインスタンスを起動したため、そのアカウントの請求額が高額になりました。

同社はセキュリティ侵害に対処しましたが、ソリューションアーキテクトは、すべてのアカウントで過剰な支出を防ぐソリューションを開発しなければなりません。各ビジネスグループは、各自の AWS アカウントで完全なコントロールを維持したいと考えています。

これらの要件を満たすために、ソリューションアーキテクトが推奨すべきソリューションはどれですか。
  • AWS Organizations を使用する。各 AWS アカウントを 1 つの組織に追加する。ec2:InstanceType 条件キーを使用する SCP を作成して、各アカウントで高コストのインスタンスタイプが起動されないようにする。
  • カスタマー管理型の新しい IAM ポリシーを、各アカウントの IAM グループに添付する。ec2:InstanceType 条件キーを使用するようにポリシーを設定し、高コストのインスタンスタイプが起動されないようにする。既存の IAM ユーザーをすべて各グループに配置する。
  • AWS アカウントごとに請求アラートをオンにする。アカウントが指定された支出しきい値を超えると必ず Amazon Simple Notification Service (Amazon SNS) 通知をアカウント管理者に送信する Amazon CloudWatch アラームを作成する。
  • 各アカウントで AWS Cost Explorer をオンにする。各アカウントの Cost Explorer レポートを定期的に確認して、支出が希望額を超えていないことを確認する。
解説 頻出度★★★★★
この問題は、「複数アカウントの過剰支出を抑える × 各ビジネスグループはアカウントの完全なコントロールを維持する」という 2 つの要件を同時に満たす手段を選べるかがポイント。権限を奪う予防的統制(SCP・IAM ポリシー)は後者の要件に真っ向から反するため、能動的に通知する発見的統制(請求アラート+CloudWatch アラーム+SNS)が残ります。

A. AWS Organizations を使用する。各 AWS アカウントを 1 つの組織に追加する。ec2:InstanceType 条件キーを使用する SCP を作成して、各アカウントで高コストのインスタンスタイプが起動されないようにする。

AWS Organizations と SCP による制限は、メンバーアカウントの実行可能なアクションを組織側から強制的に剥奪する予防的統制です。各ビジネスグループが「自分の AWS アカウントで完全なコントロールを維持したい」という要件に真っ向から反するため、この時点で不適です。
加えて、制限しているのは高コストなインスタンスタイプだけであり、今回の侵害のように安価なインスタンスを大量に起動されるケースの支出は止められません。「過剰な支出を防ぐ」という要件に対しても部分的な対策にとどまります。

B. カスタマー管理型の新しい IAM ポリシーを、各アカウントの IAM グループに添付する。ec2:InstanceType 条件キーを使用するようにポリシーを設定し、高コストのインスタンスタイプが起動されないようにする。既存の IAM ユーザーをすべて各グループに配置する。

IAM ポリシーで ec2:InstanceType を制限する案も、選択肢 A と同じくビジネスグループの操作権限を奪うため、完全なコントロールを維持する要件に反します。
さらに「既存の IAM ユーザーをすべてグループに配置する」という運用は、IAM ロール・フェデレーションユーザー・アカウントルートユーザー経由の起動を止められず、新規に作られるユーザーにも自動では効きません。抜け穴が多いうえ、こちらもインスタンス台数による支出増には無力です。

正解

C. AWS アカウントごとに請求アラートをオンにする。アカウントが指定された支出しきい値を超えると必ず Amazon Simple Notification Service (Amazon SNS) 通知をアカウント管理者に送信する Amazon CloudWatch アラームを作成する。

正解。各アカウントで請求アラートを有効化し、請求メトリクスに対する CloudWatch アラームで支出しきい値の超過を検知して Amazon SNS でアカウント管理者に通知します。これは権限を一切制限しない発見的統制であるため、各ビジネスグループはアカウントの完全なコントロールを維持したままでいられます。
しきい値超過を自動・能動的に知らせるので、インスタンスタイプの種類にも台数にもよらず「金額そのもの」を監視でき、異常な支出に対して迅速に対処できます。人が定期的に見に行く必要もありません。

D. 各アカウントで AWS Cost Explorer をオンにする。各アカウントの Cost Explorer レポートを定期的に確認して、支出が希望額を超えていないことを確認する。

Cost Explorer は費用の可視化・分析には有用ですが、人が定期的にレポートを確認しに行くことが前提の受動的な手段です。確認と確認の間に発生した急激な支出は見逃され、対処が遅れます。
アカウント数が多いほど個別確認の運用負荷も増大します。「過剰な支出を防ぐソリューション」として求められている自動的な検知・通知の仕組みが欠けているため不適です。

これだけ覚える(記憶フック)
「各自が完全なコントロールを維持」と書かれたら SCP と IAM の制限は即死。残るのは通知。
正解への思考ルート 問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。
要件 判断ポイント
各ビジネスグループが AWS アカウントの完全なコントロールを維持したい 権限を制限する統制(SCP・IAM ポリシー)は使えない。この一文が最大の絞り込み条件
→選択肢(A・B)を消す
侵害により多数のインスタンスが起動され請求額が高額化した 問題はインスタンスタイプではなく金額(台数×時間)。インスタンスタイプ制限では防げない
→選択肢(A・B)を消す
すべてのアカウントで過剰な支出を防ぐ 金額そのものをしきい値で監視し、自動で通知する仕組みが要る。請求アラート+CloudWatch アラーム+SNS が定石
→選択肢(C)が正解
ソリューションとして継続的に機能すること 人手による定期確認は見逃しと運用負荷が避けられず、ソリューションとは呼べない
→選択肢(D)を消す。選択肢(C)は自動通知のため残る
ひっかけポイント
  • マルチアカウント+ガバナンスと聞くと反射的に AWS Organizations の SCP を選びたくなるが、本問は「各グループが完全なコントロールを維持する」と明記されている。SCP はまさにそのコントロールを奪う仕組みであり、ここでは真っ先に消える
  • 選択肢 A・B が制限しているのは ec2:InstanceType(インスタンスの種類)だけ。問題文は「攻撃者が多数のインスタンスを起動した」と書いており、安価なタイプを大量に起動されれば同じことが起きる。要件と対策がずれている
  • 選択肢 B の「既存の IAM ユーザーをすべて各グループに配置する」は網羅的に見えるが、ロール・フェデレーション・今後作られるユーザーには効かない。「既存の〜すべて」という言い回しは抜け穴のサイン
  • 「アラートは支出を防止できないのでは?」と迷いやすいが、選択肢に AWS Budgets のような他の手段が無い以上、要件(完全なコントロール維持)を壊さずに過剰支出へ対処できる唯一の案が正解になる。消去法で確定させる
出題バリエーション 同じ知識が本番では条件を変えて出題されます。
問題文がこう変わったら 正解はこう変わる
「各ビジネスグループのコントロール維持」という条件が無くなり、「組織として確実に高コストなインスタンス起動を禁止したい」に変わったら 予防的統制が求められるため、AWS Organizations + SCP(選択肢 A 相当)が正解に変わる。
「予算額に対する予測を含めてしきい値超過を通知したい」「アカウント単位・タグ単位で予算を管理したい」 AWS Budgets(予算アラート)が正解軸に。CloudWatch の請求アラームより高機能な選択肢として登場する。
「しきい値超過時に通知だけでなく自動的にインスタンスを停止したい」 AWS Budgets のBudget Actionsや、SNS → AWS Lambda による自動修復が正解軸に。
「複数アカウントのコストを一元的に可視化・配賦したい」 AWS Organizations の一括請求(Consolidated Billing)とコスト配分タグ・Cost Explorerが正解軸に。組織全体の分析なら Cost Explorer は有効。
関連サービスの解説 Amazon CloudWatch
Amazon EC2
Amazon Simple Notification Service (Amazon SNS)
AWS Cost Explorer
AWS Organizations
+ 質問 / コメント
解答・解説に疑問がある場合や、よりよい解説がある場合など、お気軽にコメントください。ただし、短文コメントは表示されません。また、中傷などコメントの内容によっては、会員機能を停止させて頂きます。教え学び合える場になれば嬉しいです。(コメント投稿にはログインが必要です)
正答率 57%
No.1 解説
ある企業には、個々のビジネスグループが所有する多数の AWS アカウントがあります。そのアカウントのうちの 1 つが最近侵害されました。攻撃者が多数のインスタンスを起動したため、そのアカウントの請求額が高額になりました。

同社はセキュリティ侵害に対処しましたが、ソリューションアーキテクトは、すべてのアカウントで過剰な支出を防ぐソリューションを開発しなければなりません。各ビジネスグループは、各自の AWS アカウントで完全なコントロールを維持したいと考えています。

これらの要件を満たすために、ソリューションアーキテクトが推奨すべきソリューションはどれですか。
  • AWS Organizations を使用する。各 AWS アカウントを 1 つの組織に追加する。ec2:InstanceType 条件キーを使用する SCP を作成して、各アカウントで高コストのインスタンスタイプが起動されないようにする。
  • カスタマー管理型の新しい IAM ポリシーを、各アカウントの IAM グループに添付する。ec2:InstanceType 条件キーを使用するようにポリシーを設定し、高コストのインスタンスタイプが起動されないようにする。既存の IAM ユーザーをすべて各グループに配置する。
  • AWS アカウントごとに請求アラートをオンにする。アカウントが指定された支出しきい値を超えると必ず Amazon Simple Notification Service (Amazon SNS) 通知をアカウント管理者に送信する Amazon CloudWatch アラームを作成する。
  • 各アカウントで AWS Cost Explorer をオンにする。各アカウントの Cost Explorer レポートを定期的に確認して、支出が希望額を超えていないことを確認する。

(会員限定)当問題の評価をお願いします。改善に活用します。