模擬問題集SCS-C03練習問題 4

SCS-C03 練習問題 4

AWS Security – Specialty・アイデンティティおよびアクセス管理・無料公開(全 100 問中 15 問を無料公開中)

問題
ある AWS アカウント管理者が IAM グループを作成し、各ユーザーが多要素認証(MFA)を使って認証することを必須とするため、次のマネージドポリシーを適用しました。このポリシーを適用した後、管理者は「ユーザーが AWS CLI を使って Amazon EC2 のコマンドを実行できない」という報告を受けました。 【図の内容(IAM マネージドポリシーの文字起こし)】 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:*", "Resource": "*" }, { "Sid": "BlockAnyAccessUnlessSignedInWithMFA", "Effect": "Deny", "Action": "ec2:*", "Resource": "*", "Condition": { "BoolIfExists": { "aws:MultiFactorAuthPresent": "false" } } } ] } MFA を引き続き強制しつつ、この問題を解決するには管理者は何をすべきですか?

選択肢と解説

  • 1
    aws:MultiFactorAuthPresent の値を true に変更する。
  • ユーザーに対し、aws sts get-session-token CLI コマンドを実行し、MFA の --serial-number と --token-code パラメータを渡すよう指示する。得られた値を使って API/CLI 呼び出しを行う。
  • 3
    SAML 2.0 を使ったフェデレーション API/CLI アクセスを実装し、ID プロバイダー側で MFA を強制するよう設定する。
  • 4
    ロールを作成しロールの信頼ポリシーで MFA を強制する。ユーザーに sts assume-role を実行させ --serial-number と --token-code を渡させ、得られた値を環境変数に保存する。ポリシーの NotAction に sts:AssumeRole を追加する。

解説

【正解】B

【0からの解説】
このポリシーは「MFA で認証されていない場合は ec2:* をすべて拒否する」という典型的な MFA 強制ポリシーです。ポイントは aws:MultiFactorAuthPresent がいつ true になるかです。
このキーは、リクエストを行う際の一時的な認証情報(セッション)が MFA を使って取得された場合にのみ true になります。AWS マネジメントコンソールは MFA でサインインすると自動的に MFA 付きセッションになりますが、AWS CLI で長期アクセスキー(アクセスキー ID とシークレットキー)をそのまま使うと、そのリクエストには MFA 情報が付かないため aws:MultiFactorAuthPresent は false 扱いになり、Deny に引っかかって EC2 操作ができません。

解決策は、CLI でも MFA 付きの一時セッションを取得することです。aws sts get-session-token を MFA デバイスのシリアル番号(--serial-number)とワンタイムコード(--token-code)付きで実行すると、MFA 認証済みの一時認証情報(アクセスキー・シークレット・セッショントークン)が返されます。これらを使って CLI を実行すれば aws:MultiFactorAuthPresent が true になり、Deny を回避しつつ MFA 強制を維持できます。

【誤りの選択肢】
A:aws:MultiFactorAuthPresent はリクエスト時に AWS が自動判定する条件キーであり、ポリシーで true に「書き換える」ものではありません。値を true に固定するとそもそも MFA 強制の意味がなくなります。
C:SAML フェデレーションに切り替えるのは大掛かりな構成変更で、既存の IAM ユーザー+CLI 運用を維持したいこの状況には過剰です。問題は MFA 付きセッションの取得方法であり、フェデレーション導入は不要です。
D:sts:AssumeRole を NotAction に入れると、その操作が MFA なしでも拒否されなくなり MFA 強制が緩みます。また assume-role 方式は別ロールへの切り替えが前提で構成が複雑になり、最小限の解決策としては不適切です。

【参考】
MFA で保護された API アクセスの設定
GetSessionToken(AWS STS)
← 練習問題 3練習問題 5
SCS-C03 の模擬問題集は全 100

本番形式の練習テスト 2 回を、試験モード/演習モードで受験できます。 全問に解説付き、ドメイン別の弱点分析にも対応。模試プラン(月額 ¥980)からご利用いただけます。

SCS-C03 の模試を受ける料金プランを見る

SCS-C03 の無料公開問題

問題 1問題 2問題 3問題 4問題 5問題 6問題 7問題 8問題 9問題 10問題 11問題 12問題 13問題 14問題 15