0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS Certified Security - Specialty問題の復習

Last updated at Posted at 2025-10-04

この記事でわかること

 ▪️AWS Certified Security - Specialty問題にて、以下のポリシーの違いを説明しています。
  ▫️信頼ポリシー
  ▫️S3バケットポリシー
  ▫️セッションポリシー
  ▫️アクセス許可ポリシー

 ▪️本試験では上記のポリシー詳細な違いを突いてくる問題が出題されます。
 その時、又は業務でポリシーを説明する際に迷わない様にこの記事を書きました。

問題と解答の理解手順の流れ

以下は、この記事で解説する手順です。
 手順1_問題文の意図をイメージする(問題の解き方の考え有り)
  ↓
 手順2_重要なキーワードに注目する
  ↓
 手順3_正解の分割解説
  ↓
 手順4_不正解の解説

 AWS Certified Security - Specialty問題
 企業には、アカウント A とアカウント B の 2 つの AWS アカウントがあります。
 アカウント A には、アカウント B の IAM ユーザーが
アカウント A の Amazon S3 バケットに機密文書をアップロードする必要があるときに
想定される IAM ロールがあります。

 新しい要件は、ユーザーが多要素認証 (MFA) で認証されている場合にのみ、
そのロールを引き受けることを義務付けています。
セキュリティエンジニアは、最小限のリスクと労力でこの要件を満たすソリューションを
推奨する必要があります。
推奨する最適なソリューションを選択してください。


A(正解)
aws:MultiFactorAuthPresent 条件をロールの信頼ポリシーに追加します。

B
aws:MultiFactorAuthPresent 条件を S3 バケットポリシーに追加します。

C
aws:MultiFactorAuthPresent 条件をセッションポリシーに追加します。

D
aws:MultiFactorAuthPresent 条件をロールのアクセス許可ポリシーに追加します。

手順1_問題文の意図をイメージする

 ▪️別のAWSアカウントからS3バケットにアクセスさせるとき、
  MFAを使ったセキュリティ強化をどう実現するか?

 ▪️例え話
  あなたは本社のセキュリティ担当です。
 隣の支社のスタッフ(アカウントBのIAMユーザー)が、
 本社(アカウントA)の保管庫(S3バケット)に重要書類を提出する必要があります。
 ただし、最近セキュリティを見直した結果、
 「セキュリティカード(MFAデバイス)を持っていないスタッフは入室禁止」
 というルールを導入したい状況です。

 ▪️解決方法
  ロールの信頼ポリシーに条件を追加することです。
 つまり、「このロールはMFAで認証されたユーザーだけが引き受けられる」という
 条件(aws:MultiFactorAuthPresent)を追加します。

 ▪️IAMコンソール画面上のデフォルトの信頼ポリシー
スクリーンショット 2025-03-21 21.10.52.jpeg

手順2_重要なキーワードに注目する②

 ▪️アカウントAにはIAMロールが存在
 → 他のアカウント(アカウントB)から引き受け可能な設定になっています。

 ▪️MFA認証されたユーザーだけに引き受けを許可する必要がある
 → 信頼性の高いユーザーだけにアクセスを制限する要件が加わっています。

 ▪️求められるのは最小限のリスクと労力での実装
 → 複雑な構成変更や追加リソースなしで実現できる方法がベストです。

 ▪️aws:MultiFactorAuthPresent
 → ユーザーがMFA認証を行ったかどうかを確認するための条件キーです。
  このキーを使って 信頼ポリシー(AssumeRole時の条件)に追加することで、
  MFA認証済みユーザーのみにロール引き受けを許可できます。

手順3_正解の分割解説③

「A:aws:MultiFactorAuthPresent 条件をロールの信頼ポリシーに追加する」
 ▪️IAMロールを引き受ける権限は信頼ポリシーで制御
 → 他アカウントのユーザーがAssumeRoleできるかどうかを決める設定します。

 ▪️MFAを条件とするには aws:MultiFactorAuthPresent を使用
 → true を指定することで、MFA認証済みユーザーに限定可能です。

 ▪️最小の労力で実装できる
 → 既存のロールの信頼ポリシーに条件を追加するだけです。

信頼ポリシーの例
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {"AWS": "arn:aws:iam::アカウントBのアカウントID:root"},
      "Action": "sts:AssumeRole",
      "Condition": {"Bool": {"aws:MultiFactorAuthPresent": true}}
    }
  ]
}

※補足
 Principal: アカウントBのIAMユーザー。
 Action: IAMロールを引き受ける操作(sts:AssumeRole)。
 Condition: MFAが有効である場合にのみ許可。

 ▪️信頼ポリシー修正後のIAMコンソール画面
スクリーンショット 2025-03-21 21.11.27.jpeg

手順4_不正解の解説

 ▪️B:S3バケットポリシーに追加する
 → S3バケットポリシーでは「バケットアクセスの可否」は制御できても、
 「ロール引き受けの可否」は制御できないです。

 ▪️C:セッションポリシーに追加する
 → セッションポリシーでは、ロール引き受け後の権限を制限するもので、
 MFA条件をロール引き受け時に適用できません。

 ▪️D:アクセス許可ポリシーに追加する
 → アクセス許可ポリシー(IAMポリシー)はロール引き受け後に
 「何をできるか」を決めるもので、「ロールを引き受けるかどうか」は
 信頼ポリシーで決めます。

参考文献

 ▪️信頼ポリシー参考サイト
  ▫️参考部分
   1. アカウント間の信頼関係の確立にて、「ロール信頼ポリシーを以下に示します。」

 ▪️S3バケットポリシー参考サイト
  ▫️参考部分
   Amazon S3 バケットポリシーを使用すると、
   バケット内のオブジェクトへのアクセスを保護して、
   適切な権限を持つユーザーだけがアクセスできるようにすることができます。

 ▪️セッションポリシー参考サイト
  ▫️参考部分
   アクセス許可は、リソースベースのポリシーから取得することもできます。
   これらのポリシーのいずれかで明示的に拒否すると、許可が上書きされます。

 ▪️アクセス許可ポリシー参考サイト
  ▫️参考部分
   AWS でのアクセスを管理するには、ポリシーを作成し、
   IAM アイデンティティ (ユーザー、ユーザーのグループ、ロール) または
   AWS リソースにアタッチします。

この記事を書いた理由

 これまで以下のAWS資格を取得し、2024年12月から2社目のIT会社に転職成功。
更に「AWS Certified Security - Specialty」を最近取得し、
その内容の復習とアウトプットを兼ねて作成しました。
AWS試験取得を行なっている方に少しでも役立てば幸いです。

既に合格済のAWS資格

 2024年04月11日「AWS Certified Cloud Practitioner」
 2024年06月27日「AWS Certified Solutions Architect - Associate」
 2024年08月13日「AWS Certified Sysops Administrator - Associate」
 2024年11月19日「AWS Certified Solutions Architect - Professional」
 2025年03月01日「AWS Certified Security - Specialty」

最後まで読んでいただきありがとうございます!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?