AWS SAA 無料サンプル

AWS SAA·SAA-C03AWS公式ドキュメントの出典リンク付き・AI作成の問題演習

登録なしで解ける良問。「正解・解説を見る」で解説とひっかけが開きます。

※ サンプルは実際の例題です。各問の「正解・解説を見る」を開くと、正解・詳細解説・ひっかけが表示されます。 全 30 問のうち 30 問を無料公開しています。
Q1クロスアカウントアクセス(IAMロール)難易度 標準無料

アカウントA(111111111111)の分析チームが、アカウントB(222222222222)が所有するS3バケットへプログラムから継続的にアクセスする必要がある。要件は次の3点である。

  • 長期のアクセスキーを発行・共有しない
  • 付与する権限は当該バケットへの読み取りのみに限定する(最小権限)
  • 誰が・いつアクセスしたかを CloudTrail で追跡できる

この要件を満たす設計として最も適切なものを選べ。(単一選択)

  1. AアカウントBに、対象バケットの読み取り専用ポリシーを付けたIAMロールを作成し、信頼ポリシーでアカウントAからの sts:AssumeRole を許可する。アカウントAはこのロールを引き受けて一時認証情報でアクセスする
  2. BアカウントBにアカウントA専用のIAMユーザーを作成し、そのアクセスキーIDとシークレットアクセスキーをアカウントAのチームへ共有して使わせる
  3. C対象のS3バケットをパブリック読み取り可能に設定し、アカウントAのアプリケーションが認証なしでオブジェクトを取得できるようにする
  4. DアカウントAとアカウントBの双方に同じ内容のIAMユーザーを個別に作成し、パスワードポリシーだけ統一して運用する
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

クロスアカウントで一時的かつ監査可能なアクセスを実現する標準パターンは、アカウントBにIAMロールを作成し、 そのロールの信頼ポリシー(trust policy)でアカウントA(またはアカウントA内の特定プリンシパル)を sts:AssumeRole できるプリンシパルとして許可することである。

  • ロールのアクセス許可ポリシーには、対象バケットへの s3:GetObject/s3:ListBucket のみを許可する最小権限のポリシーを付与する。
  • アカウントAのユーザー/アプリケーションは sts:AssumeRole を呼び出し、有効期限付きの一時的セキュリティ認証情報(アクセスキーID・シークレットキー・セッショントークン)を取得して利用する。
  • AssumeRole の呼び出し自体・および発行された一時認証情報でのAPI呼び出しはCloudTrailに記録され、誰がいつどのロールを引き受けてアクセスしたかを追跡できる。

これにより長期キーの管理・ローテーション負担を避けつつ、最小権限と監査性を同時に満たせる。

各誤答が違う理由
  • B長期のアクセスキーを発行・共有することになり、要件の「長期キーを共有しない」に反する。漏えい時の失効・ローテーションも運用負荷が高い。
  • C不特定多数からアクセス可能になり最小権限に反する。誰がアクセスしたかの主体識別もできず監査要件も満たさない。
  • Dアカウントをまたぐアクセスの委譲になっておらず、ユーザーの二重管理が発生する。長期認証情報の共有問題も解決しない。
ひっかけ: 「IAMユーザーを作ってアクセスキーを共有する(B)」という一見手早い方法は、長期認証情報の漏えいリスクとローテーション負担を抱える。 また「バケットを公開設定にする(C)」は要件の最小権限・監査性のいずれも満たさない。一時認証情報+ロール引き受け=クロスアカウントの定石であることを押さえる。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q2IAMポリシー評価ロジック(SCPとの関係)難易度 標準無料

IAMユーザー alice には、s3:* を対象バケットに対して許可するIAMポリシーがアタッチされている。一方、alice が所属するアカウントは AWS Organizations のあるOUに属しており、そのOUには次のSCPが適用されている。

{
  "Effect": "Deny",
  "Action": "s3:DeleteObject",
  "Resource": "*"
}

alice が対象バケットのオブジェクトを DeleteObject しようとした場合の結果として最も適切なものを選べ。(単一選択)

  1. AIAMポリシーで s3:* を許可しているため、DeleteObject は成功する。SCPはIAMユーザー個人には影響しない
  2. BSCPの明示的Denyにより DeleteObject は拒否される。IAMポリシー側でどれだけ広くAllowしていても、SCPの範囲外の操作は実行できない
  3. CSCPは管理アカウント(Organizationsの管理者アカウント)にのみ適用され、メンバーアカウントの alice には影響しないため DeleteObject は成功する
  4. DSCPが効くのは権限境界(permission boundary)を設定したIAMエンティティに対してだけなので、alice に権限境界が無ければ DeleteObject は成功する
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:BAI作成・独立検証済

解説

AWSのポリシー評価では、あらゆる形の明示的Deny(explicit deny)が最優先で効く。 評価対象になり得るポリシー(IAMアイデンティティベースポリシー、リソースベースポリシー、権限境界、SCP、セッションポリシー)のうち 1つでもDenyがあれば、他にAllowがいくつあっても最終結果はDenyになる。

SCPはAWS Organizationsの機能で、アカウント(メンバーアカウント)に対する権限の“上限(guardrail)”を定める。 SCPで s3:DeleteObject を明示的にDenyしているので、たとえ alice のIAMポリシーが s3:* を許可していても、 SCPの範囲内に収まらない操作は実行できない。結果、aliceDeleteObject 呼び出しは拒否される。

各誤答が違う理由
  • ASCPはメンバーアカウントに属するすべてのプリンシパル(IAMユーザー・ロール含む)に及ぶ。IAMのAllowより明示的Denyが優先されるため誤り。
  • C逆。SCPはメンバーアカウントに適用するための仕組みで、管理アカウント自体には適用されない。
  • DSCPと権限境界は別の仕組み。SCPは権限境界の有無に関わらず、対象アカウントの全プリンシパルの実効権限の上限になる。
ひっかけ: 「IAMポリシーで s3:* を許可しているのだから削除できるはず」という直感(A)が典型的なひっかけ。 SCPはIAMポリシーより上位のガードレールであり、明示的Denyは常にAllowに勝つ。 また「SCPは管理アカウントにのみ効く(C)」という誤解にも注意(SCPはメンバーアカウントに適用され、管理アカウント自体には適用されない)。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q3KMSによる暗号化(SSE-KMS・エンベロープ暗号化)難易度 標準無料

S3バケットのデフォルト暗号化を SSE-KMS(カスタマー管理CMK指定)に設定し、10GBのオブジェクトをアップロードした。このときS3とKMSの間で実際に行われる処理として最も適切なものを選べ。(単一選択)

  1. AS3はオブジェクト本体をそのままKMSへ送信し、KMSがCMKでオブジェクト全体を直接暗号化して返す
  2. BS3はCMKに対し GenerateDataKey を呼び出して一意なデータキーを取得し、そのデータキーでオブジェクト本体を暗号化する。暗号化済みデータキーはオブジェクトのメタデータとして保存され、プレーンテキストのデータキーは使用後に破棄される
  3. Cクライアント側であらかじめデータキーを生成してオブジェクトを暗号化し、そのデータキーをKMSに預けて管理してもらう必要がある
  4. DKMSのCMK(カスタマーマスターキー相当)そのものがオブジェクトごとに複製され、各オブジェクトが専用のCMKで暗号化される
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:BAI作成・独立検証済

解説

SSE-KMSエンベロープ暗号化(envelope encryption)の仕組みで動く。KMSはデータそのものを暗号化しない (KMSの暗号化APIには扱えるデータサイズに上限があり、GB単位のオブジェクトを直接暗号化する用途には使わない)。

  • S3は、指定されたCMKに対して kms:GenerateDataKey を呼び出し、一意なデータキー(プレーンテキスト版+暗号化版のペア)を取得する。
  • プレーンテキストのデータキーでオブジェクト本体をS3側がAES-256で暗号化し、暗号化が終わったらプレーンテキストのデータキーはメモリから破棄する。
  • 暗号化されたデータキーはオブジェクトのメタデータとして一緒に保存される。
  • 復号時はメタデータ中の暗号化データキーをKMSの kms:Decrypt でCMKを使って復号し、得られたプレーンテキストのデータキーでオブジェクトを復号する。

この方式により、大きなオブジェクトでもKMSの呼び出し回数を抑えつつ(1オブジェクトにつきキー生成1回)、CMK自体はデータキーの保護のためだけに使われる。

各誤答が違う理由
  • AKMSの暗号化APIには扱えるデータ量の上限があり、オブジェクト本体を直接暗号化する用途には使われない。実際はデータキーだけをKMSが扱う。
  • Cそれはクライアント側暗号化(KMS暗号化SDK等)やSSE-Cの考え方。SSE-KMSはS3側が透過的にエンベロープ暗号化を行い、クライアントはデータキーを意識しない。
  • DCMKは複製されない。オブジェクトごとに生成・使い捨てされるのはデータキーであり、CMK自体はデータキーの暗号化/復号にのみ使われる。
ひっかけ: 「KMSがオブジェクト本体を直接暗号化している(A)」という誤解が最頻出。KMSが暗号化するのはデータキーだけで、オブジェクト本体の暗号化はS3側がデータキーを使って行う。 また「クライアント側でデータキーを管理する必要がある(C)」はSSE-C/クライアント側暗号化との混同。SSE-KMSはS3が透過的にエンベロープ暗号化を行う。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q4KMSによる暗号化(SSE-S3とSSE-KMSの比較)難易度 標準無料

金融系のワークロードで、S3に保存する機密データの暗号化方式として SSE-S3(Amazon S3管理キー)ではなく SSE-KMS(カスタマー管理CMK)を採用することにした。SSE-KMS を選ぶ利点として正しいものを2つ選べ

  1. ACMKへの GenerateDataKey/Decrypt 呼び出しがCloudTrailに記録されるため、誰がいつそのキーでデータにアクセスしたかを個別に監査できる
  2. BKMSのAPIコール課金が発生しない分、SSE-S3 より一般的に安価に運用できる
  3. Cキーポリシー・IAMポリシーで利用者を細かく制御でき、キーの無効化・ローテーション・削除スケジュールなどライフサイクルを管理者側でコントロールできる
  4. DSSE-KMSを使うとS3オブジェクトへのIAM側のアクセス許可設定が一切不要になる
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

SSE-S3SSE-KMS はどちらもAWS側でオブジェクトを暗号化する点は同じだが、鍵の可視性・制御性・監査性が大きく異なる。

  • 監査性SSE-KMS はCMKに対する GenerateDataKey/Decrypt の呼び出しがCloudTrailに記録されるため、 誰がいつそのキーを使ってデータへアクセスしたかを個別に追跡できる。SSE-S3 のAWS管理キーではここまでの粒度の監査はできない。
  • 鍵のライフサイクル制御SSE-KMS のCMKはキーポリシー・IAMポリシーで誰が使えるかを細かく制御でき、 ローテーション・無効化(disable)・削除スケジュールなど鍵自体のライフサイクルを管理者が制御できる。SSE-S3 のキーはAWSが完全管理し利用者側では制御できない。

一方でコスト面は逆で、SSE-KMS はKMSのAPIコール(GenerateDataKey 等)に応じた課金が発生し、SSE-S3 より高くなる。

各誤答が違う理由
  • B逆。SSE-KMSはKMSのAPIコール(GenerateDataKey等)に応じた追加課金が発生するため、一般にSSE-S3より高くなる。
  • D不要にはならない。S3自体のアクセス許可(バケットポリシー/IAM)に加え、CMKのキーポリシー・IAMポリシーの両方を整合させる必要がある。
ひっかけ:SSE-KMS の方が安い(B)」は。KMS APIコールの課金が乗る分、一般にSSE-S3より高コストになる。 また「IAM側の権限設定が不要になる(D)」も誤り。むしろキーポリシーとIAMポリシーの両方を意識した権限設計が必要になる(後続の設問参照)。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q5Secrets Manager vs Parameter Store難易度 標準無料

Amazon RDS for MySQLのマスターユーザー認証情報を、30日ごとに自動でローテーションさせ、アプリケーションはコード変更・再デプロイ無しに常に最新の認証情報を取得できるようにしたい。追加のLambda実装を極力書かずに実現する方法として最も適切なものを選べ。(単一選択)

  1. A認証情報をSystems Manager Parameter Storeの SecureString として保存し、KMSで暗号化しておけば自動的に30日ごとローテーションされる
  2. B認証情報をSecrets Managerに保存し、RDS向けの組み込みローテーションテンプレートを使ってローテーションを有効化する。ローテーション期間を30日に設定し、アプリケーションは実行時に GetSecretValue で常に最新の認証情報を取得する
  3. C認証情報をKMSで暗号化してS3オブジェクトとして保存し、S3のライフサイクルポリシーで30日ごとに新しい認証情報へ差し替える
  4. D認証情報をLambda関数の環境変数としてKMSで暗号化し、Lambdaのデプロイ時に手動で30日ごと更新する
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:BAI作成・独立検証済

解説

AWS Secrets Managerは、RDS(MySQL/PostgreSQL/Oracle等)・Redshift・DocumentDBなど主要データベース向けに 組み込みのローテーションLambdaテンプレートを提供しており、コンソールで有効化するだけで 指定した日数(例:30日)ごとに自動でDBパスワードをローテーションできる。

  • ローテーションされた新しい認証情報はSecretsManagerのシークレットとして保存され、アプリケーションは実行のたびに GetSecretValue で最新値を取得する設計にしておけば、ローテーション後も再デプロイ不要で追従できる。
  • 一方 Systems Manager Parameter StoreSecureString)はKMSで暗号化した値を保管する機能は持つが、 DB認証情報向けの組み込み自動ローテーション機構は持たない。ローテーションを実現するには自前でLambda・EventBridgeスケジュールを組む必要がある。

「DB認証情報を自動ローテーションしたい」という要件は、Secrets Managerがまさに設計目的とする領域である。

各誤答が違う理由
  • AParameter Storeは暗号化保管はできるが、DB認証情報向けの組み込み自動ローテーション機能は持たない。自動ローテーションが目的ならSecrets Managerが適する。
  • CS3のライフサイクルポリシーはオブジェクトの保管クラス移行・削除の機能であり、シークレットのローテーション(新しい値の生成・DB側への反映・整合性確保)を行う仕組みではない。
  • D手動デプロイでの更新は自動化要件を満たさず、認証情報が環境変数に固定されることで漏えい・追従漏れのリスクも高い。
ひっかけ: 「Parameter StoreのSecureStringも暗号化できるから同じことができる(A)」という思い込みが罠。暗号化保管の機能はあるが、 DB向け組み込みローテーションはSecrets Manager固有の機能であり、Parameter Storeには標準搭載されていない。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q6Cognito(ユーザープールとIDプール)難易度 標準無料

モバイルアプリで、ユーザーにメールアドレス/パスワードでサインアップ・サインインさせ、さらにサインイン後は一時的なAWS認証情報を発行して、モバイルSDKから直接S3バケットへ画像をアップロードできるようにしたい。この要件を満たす設計として最も適切なものを選べ。(単一選択)

  1. ACognitoユーザープールだけを使い、サインイン成功時に発行されるIDトークンをそのままS3へのアクセス認証情報として使う
  2. BCognitoユーザープールでメール/パスワード認証を行い、発行されたトークンをCognitoIDプールに連携して、認証済みユーザー用IAMロールの一時的なAWS認証情報を取得し、モバイルSDKからS3へ直接アクセスする
  3. CユーザーごとにIAMユーザーを作成し、そのアクセスキーをアプリに埋め込んでS3へアクセスさせる
  4. DCognitoIDプールだけを使い、メールアドレスとパスワードによる認証もIDプール側の機能で完結させる
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:BAI作成・独立検証済

解説

Amazon Cognitoの2つのコンポーネントは役割がはっきり分かれている

  • Cognitoユーザープール(User Pool):ユーザーディレクトリ機能。サインアップ・サインイン、パスワードポリシー、MFA、 外部IdP(Google/SAML等)連携を提供し、認証成功時にJWT(IDトークン・アクセストークン)を発行する。ユーザープール単体ではAWSリソースへの直接アクセス用の認証情報は発行しない
  • CognitoIDプール(Identity Pool / Federated Identities):ユーザープールなど各種IdPが発行したトークンを受け取り、 STSを介して一時的なAWS認証情報(IAMロールに基づく)に交換する。この一時認証情報を使ってモバイルSDKがS3等へ直接アクセスできる。

したがって「ユーザープールで認証 → 発行されたトークンをIDプールに連携し、認証済みユーザー用IAMロールの一時認証情報を取得してS3へ直接アクセス」という組み合わせが正解となる。

各誤答が違う理由
  • Aユーザープールが発行するのはJWT(IDトークン等)であり、S3等のAWS APIを直接呼び出せるAWS認証情報ではない。AWSリソースへのアクセスにはIDプールを介した交換が必要。
  • Cユーザー数分のIAMユーザー管理はスケールせず、長期アクセスキーをモバイルアプリに埋め込むのはベストプラクティスに反する(漏えいリスク・失効困難)。
  • DIDプール自体はメール/パスワードのようなユーザーディレクトリ認証機能を持たない。認証は外部IdP(ユーザープール等)に委ね、IDプールはそれを一時的なAWS認証情報に交換する役割。
ひっかけ: 「ユーザープールだけでAWS認証情報が取れる(A)」という誤解が頻出。認証(誰であるか)はユーザープール、 認可(AWSリソースへのアクセス権)はIDプールという役割分担を混同しないこと。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q7Organizations / SCP難易度 標準無料

コンプライアンス要件により、あるOU配下の全アカウントについて、東京リージョン(ap-northeast-1)以外でのリソース作成を、各アカウントの管理者権限を持つユーザーであっても一律に禁止したい。この要件を最も確実かつ予防的(preventive)に満たす方法を選べ。(単一選択)

  1. A各アカウントのIAM管理者に依頼し、リージョン制限を含むIAMポリシーを各アカウントのIAMユーザー/ロールへ個別にアタッチしてもらう
  2. BAWS Configルールで許可リージョン外のリソース作成を検知し、検知後にLambdaで自動的に削除する
  3. C対象OUに、aws:RequestedRegionap-northeast-1 以外の場合に主要なアクション(IAM/Organizations等グローバルサービスを除く)をDenyするSCPをアタッチする
  4. DS3バケットポリシーに aws:RequestedRegion 条件を追加し、S3バケットへのアクセスを東京リージョンからのみに制限する
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:CAI作成・独立検証済

解説

「管理者権限を持つユーザーであっても」「一律に」「予防的に」という要件は、IAMポリシーではなく AWS OrganizationsのSCP(サービスコントロールポリシー)で実現すべきシグナルである。SCPは対象OU/アカウントの 全プリンシパル(ルートユーザー・管理者含む)の実効権限の上限を定めるガードレールだからである。

具体的には、対象OUに次のようなSCPをアタッチする。

{
  "Effect": "Deny",
  "NotAction": [ "iam:*", "organizations:*", "route53:*", "cloudfront:*", ... ],
  "Resource": "*",
  "Condition": {
    "StringNotEquals": {
      "aws:RequestedRegion": ["ap-northeast-1"]
    }
  }
}

aws:RequestedRegion 条件キーで許可リージョンを絞ることで、そのOU配下のどのアカウントの誰が実行しても、 対象外リージョンでのリソース作成操作はDenyで拒否される(各アカウントのIAM側の設定に関わらず有効)。

各誤答が違う理由
  • A各アカウントの管理者が自分の権限でポリシーを変更・除外できてしまい、「管理者であっても一律に禁止」という予防的統制にならない。運用も各アカウントでバラつく。
  • Bこれは検知的(detective)統制であり、一時的にでもリソースが作成されてしまう。「作成自体を禁止する予防的統制」という要件に合わない。
  • DS3バケットポリシーはそのバケットへのアクセスだけを制御する話であり、OU配下の全アカウント・全サービスでのリソース作成をリージョン制限する要件をカバーしない。
ひっかけ: 「各アカウントに個別のIAMポリシーを設定する(A)」は、そのアカウントの管理者が自分でポリシーを外せてしまうため 予防的ガードレールにならない。「Config ruleで検知して是正(B)」は検知的(detective)統制であり、 作成自体を防ぐ予防的統制ではない点が問われている。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q8IDフェデレーション(SAML 2.0)難易度 標準無料

従業員500名の企業が、社内のオンプレミスActive Directory(AD FSでSAML 2.0対応済み)を使って、AWSマネジメントコンソールへのシングルサインオンを実現したい。従業員ごとにIAMユーザーを作成することは避けたい。この要件を満たす設計として最も適切なものを選べ。(単一選択)

  1. AIAMにSAML 2.0のIDプロバイダーとしてAD FSを登録し、そのIdPを信頼するIAMロールを作成する。従業員はAD FSで認証後、発行されたSAMLアサーションを使ってロールを引き受け、一時的なAWS認証情報でコンソールにサインインする
  2. B従業員500名分のIAMユーザーを作成し、ADのグループに合わせてIAMグループへ割り当てる。パスワードはAD側と別に管理する
  3. CAWSアカウントのルートユーザーの認証情報を複数の従業員で共有し、AD FSでの認証後にその認証情報を使わせる
  4. DCognitoユーザープールを作成し、SAMLのIdPとしてAD FSを連携させ、コンソールへのサインインをCognito経由にする
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

オンプレミスの既存IdP(AD FS等)を使ってAWSコンソールへフェデレーションする標準パターンは、 IAMで SAML 2.0 のIDプロバイダー(IdP)をアイデンティティプロバイダーとして登録し、 そのIdPを信頼するIAMロールを作成することである。

  • 従業員はまず社内のAD FSで認証し、AD FSがSAMLアサーションを生成する。
  • そのSAMLアサーションをAWSのサインインエンドポイント(https://signin.aws.amazon.com/saml)へPOSTすると、 STSのAssumeRoleWithSAML相当の処理でロールが引き受けられ、一時的なAWS認証情報が発行されてコンソールにサインインできる。
  • ロールにアタッチする権限ポリシーで、部門やAD上のグループに応じた権限をマッピングできる。

これにより500名分のIAMユーザーを作成せず、既存のADによる認証基盤をそのままAWSコンソールアクセスの認証に使い回せる。

各誤答が違う理由
  • B避けたいとされている「従業員ごとにIAMユーザーを作成する」設計そのもの。ID管理が二重化しSSOにもならない。
  • Cルートユーザーの共有は最も避けるべきプラクティス。権限の分離・監査ができず、フェデレーションの仕組みでもない。
  • DCognitoユーザープールは主に自社アプリケーションのエンドユーザー認証向けの機能。企業の従業員をAWSコンソールへフェデレーションする標準手段はIAM SAML IDプロバイダー+ロールであり、Cognitoが必須ではない。
ひっかけ: 「従業員ごとにIAMユーザーを作る(B)」は今回避けたい設計そのもの。「Cognitoユーザープールを使う(D)」は アプリケーション(自社サービス)のエンドユーザー認証に向く機能であり、社内ADと連携した企業内コンソールアクセスのSSOにはIAM ID プロバイダー+ロールが本筋である点を区別する。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q9クロスアカウントアクセス(リソースベースポリシー vs ロール引き受け)難易度 高無料

アカウントA(111111111111)のEC2インスタンスには、インスタンスプロファイル経由でIAMロール AnalyticsRole がアタッチされている。アカウントB(222222222222)が所有するS3バケット reports-bucket へ、このEC2上のアプリケーションが追加のAPI呼び出し(AssumeRole等)を挟まず、既存の一時認証情報のまま GetObject できるようにしたい。この要件を実現する設計として最も適切なものを選べ。(単一選択)

  1. AアカウントBに新しいIAMロールを作成し、信頼ポリシーで AnalyticsRoleAssumeRole 可能にする。EC2アプリケーションはまずこの新ロールを引き受けてから GetObject を呼ぶ
  2. BアカウントBの reports-bucket のバケットポリシーで、プリンシパルに arn:aws:iam::111111111111:role/AnalyticsRole を指定して s3:GetObject を許可する。EC2アプリケーションは既存の AnalyticsRole の認証情報のまま追加の AssumeRole なしにアクセスできる
  3. CアカウントAとアカウントBを同一のOrganizationに参加させれば、それだけで自動的にS3への相互アクセスが許可される
  4. DアカウントBのS3バケットをパブリックアクセス可能に設定し、AnalyticsRole のARNをホワイトリストとしてアプリケーション側のコードに埋め込んでチェックする
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:BAI作成・独立検証済

解説

多くのAWSサービス(EC2、RDS等)はリソースベースポリシーを持たないため、クロスアカウントアクセスには ターゲット側にロールを作り、呼び出し元が sts:AssumeRole で引き受ける方式が基本になる。 しかしS3はバケットポリシーというリソースベースポリシーを持つ数少ないサービスの一つであり、これを使うと ロールを新たに引き受ける手順を挟まずに、呼び出し元が“自分自身の既存のIAMロールの認証情報のまま”クロスアカウントでアクセスできる

具体的には、アカウントBの reports-bucket のバケットポリシーで、 プリンシパルに arn:aws:iam::111111111111:role/AnalyticsRole を指定して s3:GetObject を許可する。 アカウントA側は追加のAssumeRole呼び出しをせず、EC2インスタンスが元々持つ AnalyticsRole の認証情報のままS3 APIを呼べる (リクエスト評価時にIAM側のAllow ∩ バケットポリシー側のAllowの両方が必要)。

これに対し、EC2やRDSのようにリソースベースポリシーを持たないサービスのリソースへアクセスする場合は、 ターゲットアカウント側にロールを作り明示的に AssumeRole するアプローチが必要になる。 なおLambdaはリソースベースポリシーを持つ側であり、関数のリソースベースポリシーで他アカウントのプリンシパルに lambda:InvokeFunction を直接委任できる(S3と同じくAssumeRoleを挟まない委任が可能)。「EC2とLambdaはどちらも委任できない」と一括りにしないこと。

各誤答が違う理由
  • A追加のAssumeRole呼び出しを挟むことになり、「追加のAPI呼び出しを挟まない」という要件を満たさない。S3ではこの手順を挟まない方式が使える。
  • C同一Organization配下であること自体はアクセス許可を自動生成しない。明示的なIAM/バケットポリシーでの許可が別途必要。
  • Dパブリック公開は最小権限・セキュリティの観点で不適切。ARNチェックをアプリコード側で行うのはAWS側のアクセス制御ではなく信頼できる境界にならない。
ひっかけ: 「クロスアカウントは常にロール引き受け(AssumeRole)が必要」という思い込みが罠。 S3などリソースベースポリシーをサポートするサービスは、バケットポリシー側でクロスアカウントの他社ロールを直接プリンシパル許可できるため、 呼び出し元は自分のロールの認証情報のまま(追加のAssumeRoleなしで)アクセスできる場合がある。この違いを混同しないこと。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q10KMSによる暗号化(キーポリシーとIAMポリシーの関係)難易度 高無料

IAMユーザー bob には kms:Decrypt をすべてのリソース("Resource": "*")に許可するIAMポリシーがアタッチされている。しかし bob が特定のCMK(alias/finance-key)を使って Decrypt を呼び出すと AccessDeniedException になる。このCMKのキーポリシーには、デフォルトで含まれる「IAMポリシーによるアカウントルートへの権限委任を有効化する」ステートメント(Enable IAM User Permissionsに相当するもの)が削除されて存在しない状態だった。この状況の説明として最も適切なものを選べ。(単一選択)

  1. AIAMポリシーで kms:DecryptResource: * で許可しているので、キーポリシーの内容に関わらず bob は復号できるはずである。AccessDeniedExceptionの原因は別にある
  2. Bキーポリシーから「IAMポリシーへの権限委任(アカウントルートを許可する既定ステートメント)」が削除されているため、キーポリシー側で bob(または関連ロール)を明示的に許可しない限り、IAMポリシーのAllowだけではそのCMKにアクセスできない
  3. CSCPが暗黙的にすべてのKMS操作をDenyしているため、キーポリシーやIAMポリシーの内容に関係なく拒否されている
  4. DCMKに対する Decrypt はキーポリシーでは制御できず、常にIAMポリシーのみで制御される仕様のため、今回の事象は起こり得ない(設定ミスの可能性は無い)
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:BAI作成・独立検証済

解説

KMSのCMKへのアクセス許可は、他のAWSリソースと異なり「キーポリシー」が常に評価に関与するという特殊なモデルを取る。

  • CMK作成時のデフォルトのキーポリシーには、通常 {"Effect":"Allow","Principal":{"AWS":"arn:aws:iam::<account>:root"},"Action":"kms:*","Resource":"*"} というアカウントルートへの許可ステートメントが含まれる。これがあることで初めて、IAMポリシー側の許可がそのCMKへのアクセスとして「有効」になる (IAMポリシーに実効力を持たせるための“扉”をキーポリシー側が開けている状態)。
  • この設問のようにそのステートメントが削除されている場合、IAMポリシーでどれだけ広く kms:Decrypt を許可していても、 キーポリシー側に bob(または彼が引き受けているロール)を明示的に許可するステートメントが無い限りアクセスは拒否される。
  • 解決には、キーポリシーに bob(または関連ロール)を許可するステートメントを追加するか、 削除されたルートへの委任ステートメントを復元してIAMポリシー側の管理に戻す必要がある。
各誤答が違う理由
  • AKMSはキーポリシーが常に評価に関与する特殊なリソース。「IAMに権限委任する」ステートメントが無いキーポリシーでは、IAMポリシー側のAllowだけでは不十分。
  • C設問はSCPの存在に触れておらず、これは論点のすり替え。原因はキーポリシーの権限委任ステートメントの欠如である。
  • D事実に反する。CMKはキーポリシーが必ず評価対象になり、キーポリシーの内容次第でIAMポリシーのAllowが無効化されうる。
ひっかけ: 「IAMポリシーでAllowしているのだから使えるはず」という直感(A)が典型的な誤り。KMSはキーポリシーが常に関与する特殊な評価モデルであり、 「IAMに権限委任するステートメント」が無いキーポリシーでは、IAMポリシーだけでは不十分。SCPの話(C)にすり替えるのも本問の論点ではない。
コマンド例と想定される挙動(未実行)
kms:Decrypt on alias/finance-key → AccessDeniedException
(IAMポリシーは Allow だが、キーポリシーに Enable IAM User Permissions 相当のステートメントが無く、
 かつ bob を明示的に許可するステートメントも無いため拒否される)
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q11IAM権限境界(Permission Boundary)とSCPの違い難易度 標準無料

IAMの「権限境界(permission boundary)」とOrganizationsの「SCP」はどちらも“権限の上限を定める”という点で似ているが、性質には明確な違いがある。正しい記述を2つ選べ

  1. A権限境界は特定のIAMユーザー/ロールに設定し、そのプリンシパルが持てる権限の上限を定める。SCPはOrganizationsの機能でアカウント/OU単位に上限を定める仕組みで、適用対象の粒度が異なる
  2. B権限境界もSCPも、それ単体では権限を付与しない。実際に使える権限は「アイデンティティベースポリシーのAllow」と「境界/SCPが許可する範囲」の共通部分になる
  3. CSCPはIAMユーザー/ロール単位できめ細かく設定でき、権限境界はアカウント全体にのみ適用できるという、逆の粒度を持つ
  4. D権限境界を設定すると、その分だけ対象ロールの実効権限を通常のIAMポリシーより拡張できる
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

両者はいずれも「権限を付与するものではなく、上限(フィルタ)を定めるもの」という共通点を持ちながら、適用対象が異なる。

  • 権限境界(permission boundary):IAMの機能で、特定のIAMユーザー/ロールにアタッチし、 そのプリンシパルが持てる権限の上限を定める。主に「権限委任された管理者が、自分より広い権限のロールを誤って作らないようにする」目的で使われる。
  • SCP:AWS Organizationsの機能で、アカウント/OU単位に適用し、その配下の全プリンシパル(管理者・ルートユーザー含む)の実効権限の上限を定める。
  • 実効権限は、いずれの仕組みでも 「アイデンティティベースポリシー(またはリソースベースポリシー)のAllow」と「境界/SCPが許可する範囲」の共通部分(AND) になる。境界やSCPだけでは何も権限を付与できない。
各誤答が違う理由
  • C適用対象が逆。権限境界がIAMユーザー/ロール単位、SCPがアカウント/OU単位である。
  • D権限境界は権限を拡張しない。あくまで上限(フィルタ)であり、実効権限を狭める方向にしか作用しない。
ひっかけ: 「SCPはIAMユーザー/ロール単位で細かく設定できる(C)」は適用対象の取り違え(SCPはアカウント/OU単位)。 「境界を設定すると実効権限が通常のIAMポリシーより広がる(D)」も誤り。境界・SCPはどちらも“権限を狭める方向にしか働かない”という性質を必ず押さえる。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q12Cognito(IDプールと最小権限の一時認証情報)難易度 標準無料

モバイルゲームアプリで、匿名ユーザー(未サインイン)にはランキング閲覧用に読み取り専用の限定権限を、サインイン済みユーザーには自分のセーブデータをS3へ書き込む権限を、それぞれ最小権限で一時的なAWS認証情報として付与したい。バックエンドサーバーを介さずモバイルSDKから直接S3へアクセスさせたい場合、最も適切な設計を選べ。(単一選択)

  1. ACognitoIDプールで未認証ロールと認証済みロールを別々に設定する。未認証ロールにはランキング閲覧用の読み取り専用権限のみ、認証済みロールには自分のCognito IDプレフィックス配下だけ読み書きできるポリシー変数付きの権限を付与する
  2. BS3へのアクセスはすべてバックエンドAPIサーバーを経由させ、モバイルアプリはS3の認証情報を一切扱わないようにする
  3. CCognitoIDプールに認証済みロールのみを1つ設定し、匿名ユーザーにも同じロールの認証情報を発行して運用を単純化する
  4. D全ユーザー(匿名含む)に対して s3:* を許可する単一のIAMロールをIDプールにアタッチし、アプリ側のロジックでアクセス範囲を制御する
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

CognitoIDプールは「認証済み(authenticated)」と「未認証(unauthenticated)」の2種類のロールを個別に設定できるのが特長である。

  • 未認証ロール:匿名ユーザー向けにアタッチするIAMロールで、ランキング読み取り専用など限定的な権限だけを持たせる。
  • 認証済みロール:サインイン済みユーザー向けにアタッチするIAMロールで、 ${cognito-identity.amazonaws.com:sub} のようなポリシー変数を使い、 自分のCognito IDに対応するプレフィックス配下のオブジェクトにだけ読み書きを許可するなど、ユーザーごとにスコープを絞れる。
  • いずれもSTSを介して発行される一時的なAWS認証情報であり、モバイルSDKはこれを使って直接S3を呼び出せる(バックエンドの都度プロキシは不要)。
各誤答が違う理由
  • B実現不可能ではないが、設問は「バックエンドサーバーを介さず直接アクセスさせたい」という要件を明示しており、これに反する設計。
  • C匿名ユーザーとサインイン済みユーザーの権限が同一になり、匿名ユーザーがセーブデータ書き込み権限を持ってしまうなど最小権限に反する。
  • Dアプリ側のロジックはクライアント側で改ざん可能であり信頼境界にならない。AWS側(IAMポリシー)で権限を絞ることが最小権限の実現に必須。
ひっかけ: 「1つのIAMロールで匿名・サインイン済み両方をまとめて扱う」という発想(C・D)は最小権限に反する。 IDプールは未認証ロールと認証済みロールを別々に設定できることが前提であり、権限を分離してこそ最小権限が成立する。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q13STS(AssumeRoleWithWebIdentity)難易度 標準無料

Cognitoの内部動作を理解したい。CognitoIDプールは、Cognitoユーザープールや外部OIDCプロバイダー(Google等)が発行したIDトークンを受け取り、最終的に一時的なAWS認証情報を発行する。この過程でIDプールが内部的に呼び出しているSTSのAPIとして最も適切なものを選べ。(単一選択)

  1. Asts:AssumeRole
  2. Bsts:AssumeRoleWithWebIdentity
  3. Csts:GetFederationToken
  4. Dsts:GetSessionToken
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:BAI作成・独立検証済

解説

CognitoIDプール(および、Cognitoを使わずに直接OIDC/OAuthのWebIDトークンでAWSアクセスを実現したい場合)が使うSTS APIは sts:AssumeRoleWithWebIdentityである。

  • このAPIは、Web IDフェデレーションプロバイダー(Google、Facebook、Amazon、または任意のOIDC互換IdP)が発行した OIDCトークンを受け取り、指定したIAMロールを引き受けて一時的なAWS認証情報を返す。
  • sts:AssumeRoleすでにAWSの認証情報(IAMユーザー/ロール)を持つ主体が別のロールへ切り替える場合に使う(クロスアカウントロール引き受け等)。外部Webトークンを直接渡す用途ではない。
  • sts:GetFederationTokenIAMユーザーの認証情報を使い、限定的な権限を持つ一時トークンを発行する古い方式で、外部IdPのトークンを受け取る仕組みではない。
  • sts:GetSessionTokenMFA保護されたAPI呼び出しのためにIAMユーザー自身が一時セッションを取得する用途であり、フェデレーションとは無関係。
各誤答が違う理由
  • AAssumeRoleは既存のAWS認証情報(IAMユーザー/ロール)を持つ主体が別のロールへ切り替える場合のAPI。外部Webトークンを直接入力にする用途ではない。
  • CIAMユーザーの認証情報を使って限定的な一時トークンを発行する古い方式であり、外部OIDCトークンを受け取る仕組みではない。
  • DIAMユーザー自身がMFA保護されたAPI呼び出し用に一時セッションを取得するAPIであり、外部IDフェデレーションとは無関係。
ひっかけ: AssumeRoleAssumeRoleWithWebIdentityAssumeRoleWithSAMLGetFederationTokenGetSessionToken使い分け(どの認証情報を入力として、どの認証情報を出力するか)を混同しないこと。外部OIDC/Webトークンが入力になるのは AssumeRoleWithWebIdentity だけ。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q14Secrets Manager(Lambdaローテーションの挙動)難易度 標準無料

AWS Secrets ManagerでRDS認証情報の自動ローテーションを有効化した。ローテーションの仕組みとアプリケーション側の設計について正しい記述を2つ選べ

  1. AローテーションLambdaは createSecret/setSecret/testSecret/finishSecret の4ステップで新しい認証情報の生成・設定・検証・確定を行う。RDS/Aurora/Redshift等向けにはAWS提供のローテーションテンプレートがあり、自前でこの4ステップを実装しなくてよい
  2. Bアプリケーションはローテーションのたびに必ず再デプロイし、新しい認証情報をコードへ焼き込み直す必要がある
  3. Cアプリケーションは実行時に GetSecretValue で都度シークレットを取得する設計にしておけば、裏側でローテーションされても再デプロイ無しに新しい認証情報へ追従できる
  4. DSystems Manager Parameter Storeの SecureString パラメータも、Secrets Managerと同じ組み込みのDB向けローテーションLambdaテンプレートをネイティブにサポートする
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

Secrets Managerのローテーションは、ローテーションLambda関数createSecretsetSecrettestSecretfinishSecret4ステップを実行して、 新しい認証情報の生成・DB側への設定・接続検証・確定(バージョンラベルの切り替え)を行う。 RDS/Aurora/Redshift/DocumentDB向けにはAWSが提供する組み込みのローテーションテンプレートがあり、これをそのまま使える。

アプリケーション側は、認証情報を起動時にキャッシュして固定するのではなく、 実行のたびに(あるいは適切な間隔でキャッシュしつつ)secretsmanager:GetSecretValue を呼び出す設計にしておけば、 裏側でローテーションが行われてもコードの変更・再デプロイ無しに新しい認証情報へ自然に追従できる。

各誤答が違う理由
  • BSecrets Managerを使う利点は、再デプロイ無しでローテーションに追従できる点。アプリが実行時にGetSecretValueを呼ぶ設計にしておけば再デプロイは不要。
  • DParameter Storeにはこの種の組み込みDB向けローテーション機構は無い。ローテーションが必要ならSecrets Managerを使うか、自前でLambda・スケジュールを実装する必要がある。
ひっかけ: 「ローテーションのたびに再デプロイが必要(B)」は、Secrets Managerを使う目的(無停止・無変更でのローテーション)を理解していないと誤答しやすい。 また「Parameter StoreもSecrets Managerと同じ組み込みローテーションテンプレートをネイティブに持つ(D)」も頻出の誤解。 DB向け組み込みローテーションテンプレートはSecrets Manager固有の機能である。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q15KMSによる暗号化(マルチリージョンキー)難易度 高無料

ap-northeast-1で暗号化されたデータを、ディザスタリカバリ(DR)先のap-northeast-3でも、ap-northeast-1のKMSエンドポイントへ依存せずローカルに復号できるようにしたい。つまりap-northeast-1がリージョン障害で使えない状況でも、ap-northeast-3側だけで復号を完結させたい。この要件を満たす設計として最も適切なものを選べ。(単一選択)

  1. A単一リージョンのCMKのまま、IAMポリシーでap-northeast-3のプリンシパルにも kms:Decrypt を許可すれば、ap-northeast-1への依存なく復号できる
  2. Bap-northeast-1にマルチリージョンのプライマリキーを作成し、ap-northeast-3にレプリカキーを作成する。両者は同じキーマテリアルを共有するため、プライマリで暗号化した暗号文をap-northeast-3のレプリカキーで直接(ap-northeast-1への依存なく)復号できる
  3. CCMKのキーマテリアルをエクスポートし、ap-northeast-3で同一マテリアルのCMKを手動で作成する
  4. Dデータキーをリージョンごとに個別に生成し、暗号文とは別の場所に保管しておけば、リージョンをまたいで復号できるようになる
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:BAI作成・独立検証済

解説

KMSマルチリージョンキー(multi-Region keys)を使うと、この要件を満たせる。

  • ap-northeast-1でプライマリキーmrk-接頭辞のキーID)を作成し、 CreateReplicaKeyでap-northeast-3にレプリカキーを作成する。
  • プライマリとレプリカは同一のキーマテリアル・キーID(リージョン部分を除く)を共有する独立したKMSキーとして振る舞う。
  • そのため、プライマリ(ap-northeast-1)で暗号化した暗号文を、レプリカ(ap-northeast-3)のエンドポイントに対して直接 Decrypt を呼ぶだけで復号できる。 リージョンをまたぐAPI呼び出しやap-northeast-1への依存は発生しない。

一方、通常の単一リージョンCMKでIAMポリシー側だけをクロスリージョンで許可しても、暗号文の復号はそのキーが存在するリージョンのKMSエンドポイントを呼び出す必要があるため、 ap-northeast-1への依存自体は解消されない(DRの目的である「原リージョン障害時の独立性」を満たせない)。

各誤答が違う理由
  • A権限を許可しても、そのキーはap-northeast-1にしか存在しないため復号のAPI呼び出し先はap-northeast-1のKMSエンドポイントのままになる。ap-northeast-1障害時の独立性は得られない。
  • CAWSが管理するキーマテリアル(標準のCMK)は通常エクスポートできない。この操作自体が成立しない。
  • Dデータキーを個別生成しただけではCMKのリージョン依存の問題は解決しない。マルチリージョンキーのようにキー自体を各リージョンに独立して存在させる仕組みが必要。
ひっかけ: 「IAMポリシーでクロスリージョンのDecryptを許可すればよい(A)」という発想は罠。権限の許可そのキーがどのリージョンに存在するか(呼び出し先エンドポイント)は別の話であり、 単一リージョンキーである限りDR先からもap-northeast-1のKMSを呼びに行く依存関係は消えない。またCMK(AWS管理のキーマテリアル)は通常エクスポートできない(C)点も要確認。
公式ドキュメント・関連AWS KMS Developer Guide ― Multi-Region keys
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q16Organizations / SCP(セキュリティガードレール)難易度 標準無料

複数アカウント環境で、各メンバーアカウントの管理者であっても回避できないセキュリティガードレールをSCPで設けたい。正しい設計を2つ選べ

  1. A管理アカウント(Organizationsの管理者アカウント)を含む全アカウントに organizations:LeaveOrganization を拒否するSCPを適用すれば、管理アカウントも含め組織からの離脱を一律に防げる
  2. Bメンバーアカウントを含むOUに organizations:LeaveOrganization を明示的に拒否するSCPを適用すれば、各アカウントの管理者権限を持つIAMユーザーであっても組織からの離脱操作をブロックできる
  3. CルートOUに cloudtrail:StopLoggingcloudtrail:DeleteTrail を拒否するSCPを適用すれば、メンバーアカウントの管理者であっても証跡ログを無効化・削除できなくなる、多層防御のガードレールになる
  4. DSCPを設定すれば、対象アカウントのルートユーザーのパスワードやアクセスキーそのものを無効化でき、乗っ取りリスクを排除できる
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:BAI作成・独立検証済

解説

SCPはメンバーアカウントの全プリンシパル(そのアカウントの管理者・ルートユーザーも含む)に対する実効権限の上限になるため、 「悪意ある/誤った操作でガードレールを外されたくない」設定に向いている。代表的な2パターン:

  • 組織離脱の禁止:ルートOU(またはメンバーアカウントを含むOU)に organizations:LeaveOrganization を明示的にDenyするSCPを適用すると、 メンバーアカウントの管理者であっても組織から離脱する操作ができなくなる。
  • 証跡ログの無効化・削除の禁止cloudtrail:StopLogging/cloudtrail:DeleteTrail などをDenyするSCPを適用すると、 たとえアカウント内で管理者権限を奪取されても、監査証跡(CloudTrail)を止められない多層防御になる。

なおSCPは管理アカウント(Organizationsの管理者アカウント)自体には適用されない点、 またSCPはルートユーザーの認証情報そのものを無効化する機能ではない点(あくまでAPIアクションの許可/拒否を制御する)には注意が必要。

各誤答が違う理由
  • ASCPはメンバーアカウントに適用する仕組みであり、管理アカウント自体には適用されない。「管理アカウントも含め」が誤り。
  • DSCPはAPIアクションの許可/拒否を制御する仕組みであり、認証情報(パスワード・アクセスキー)のライフサイクルを管理・無効化する機能ではない。
ひっかけ: 「管理アカウントを含め一律に防げる(A)」がひっかけ。SCPは管理アカウントには適用されない(Organizationsの構造上の制約)。 「SCPでルートユーザーの認証情報を無効化できる(D)」も誤り。SCPはアクション単位の許可制御であり、認証情報のライフサイクル管理機能ではない。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q17最小権限のセキュアアーキテクチャ(S3 × VPCエンドポイント制限)難易度 高無料

機密データを保存するS3バケットへのアクセスを、社内VPC内のEC2からGateway型VPCエンドポイント(vpce-0123456789abcdef0)経由に限定し、正しい認証情報を持っていてもインターネット経由や他のネットワーク経路からのアクセスは拒否したい。この要件を満たすバケットポリシー設計として最も適切なものを選べ。(単一選択)

  1. AS3バケットにセキュリティグループをアタッチし、インバウンドルールでVPCエンドポイントのプライベートIPレンジのみを許可する
  2. Bバケットポリシーに、aws:SourceVpce が対象のVPCエンドポイントIDと一致しない場合に s3:* をDenyする条件付きステートメントを追加する
  3. CVPCのネットワークACLで、社内VPCのCIDR以外からのインバウンド443番ポートを拒否する
  4. DIAMポリシー側で s3:GetObject を許可しているユーザーだけが呼び出せるようにすれば、ネットワーク経路の制限は別途行わなくても十分安全である
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:BAI作成・独立検証済

解説

S3はマネージドサービスでセキュリティグループ/NACLをアタッチする対象ではないため、ネットワーク経路を条件にしたアクセス制御はバケットポリシーの条件キーで行う

  • バケットポリシーに、aws:SourceVpce 条件キーが指定のVPCエンドポイントIDと一致しない場合にDenyするステートメントを追加する。
  • Condition: { "StringNotEquals": { "aws:SourceVpce": "vpce-0123456789abcdef0" } } のようにすることで、 正しいIAM認証情報を持っていても、このVPCエンドポイントを経由しないリクエスト(インターネット経由・別VPC経由等)は明示的Denyで拒否される。
  • IAM側のポリシーでs3:GetObject等を許可していても、バケットポリシー側の明示的Denyが優先されるため、経路の強制が実現できる。
各誤答が違う理由
  • AS3はENIを持たないマネージドサービスであり、セキュリティグループを直接アタッチする対象ではない。
  • CNACLはVPC内のサブネット境界を制御するものであり、S3(AWSのパブリックサービスエンドポイント)へのアクセス経路そのものを、正規の認証情報を持つ他経路のリクエストから守る手段にはならない。
  • DIAMポリシーは「誰が」呼べるかを制御するが「どの経路から」呼べるかは制御しない。正しい認証情報があればインターネット経由でも呼べてしまうため、経路強制にはバケットポリシー側の条件キーが必要。
ひっかけ: 「セキュリティグループでS3へのアクセスを絞る(A)」は不可能。S3はENIを持たないマネージドサービスであり、SGを直接アタッチできない。 「IAMポリシーだけで十分(D)」も誤り。IAMポリシーの条件を絞らなければ、正しい認証情報があればインターネット経由でも呼べてしまうため、ネットワーク経路の強制にはリソースベース側の条件キーが要る。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q18最小権限のセキュアアーキテクチャ(IAM Access Analyzer)難易度 標準無料

セキュリティチームが、組織内のS3バケット・IAMロール・KMSキーなどのリソースについて、①組織外のアカウントへ意図せずアクセスを許可しているリソースベースポリシーを洗い出したい、②あわせて過去90日間使われていない過剰な権限(未使用のアクセス)を持つロールを見つけて最小権限化のヒントにしたい。これらを実現する最も適切なサービスを選べ。(単一選択)

  1. AAWS Trusted Advisorのセキュリティチェックを使えば、外部アクセスの検出と未使用アクセスの分析の両方を同等の粒度で行える
  2. BAWS CloudTrail Insightsを有効化し、異常なAPI呼び出しパターンを検出することで、外部アクセスの許可状況と未使用の権限を特定する
  3. CIAM Access Analyzerを使う。外部アクセスアナライザーでリソースベースポリシーが組織外に許可している箇所を検出し、未使用アクセスアナライザーで一定期間使われていない権限・ロールを検出して最小権限化の推奨を得る
  4. DAWS Config単体(追加のカスタムルール無し)で、外部アクセスの許可状況と未使用アクセスの両方を標準機能として分析できる
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:CAI作成・独立検証済

解説

この2つの要件はいずれもIAM Access Analyzerの機能領域である。

  • 外部アクセスの分析(external access analyzer):S3バケットポリシー、IAMロールの信頼ポリシー、KMSキーポリシー、SQSキューポリシーなど リソースベースポリシーを解析し、組織/アカウントの「ゾーン・オブ・トラスト」の外側にアクセスを許可している箇所を検出する。
  • 未使用アクセスの分析(unused access analyzer):過去の実際のCloudTrail利用状況から、 一定期間(追跡期間を設定可能)使われていない権限・ロール・アクセスキーを検出し、最小権限化の推奨を提示する。

Trusted Advisorは一般的なベストプラクティスチェック(例:S3バケットのパブリックアクセス有無の簡易チェック等)は行うが、 本問のようなリソース単位・ポリシー単位の詳細な外部アクセス分析や未使用アクセス分析には対応していない。CloudTrail Insightsは異常なAPI呼び出しパターンの検出であり権限分析ではない。

各誤答が違う理由
  • ATrusted Advisorは一般的なベストプラクティスの簡易チェックが中心で、リソースポリシー単位の外部アクセス検出や未使用アクセスの継続分析はカバーしない。
  • BCloudTrail Insightsは呼び出し頻度・パターンの異常検知が目的であり、ポリシー上どの権限が外部に開いているか・どの権限が未使用かを直接分析する機能ではない。
  • DAWS Config自体はリソース設定の変更履歴・コンプライアンス評価の基盤であり、本問のような外部アクセス分析・未使用アクセス分析を標準機能単体では提供しない(この用途にはIAM Access Analyzerが専用に設計されている)。
ひっかけ: 「Trusted Advisorでも同程度の分析ができる(A)」という誤解に注意。Trusted Advisorのセキュリティチェックはより一般的なベストプラクティス項目が中心で、 本問のようなポリシー単位での外部アクセス検出・未使用アクセスの継続分析はIAM Access Analyzer固有の機能である。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q19最小権限のセキュアアーキテクチャ(EC2インスタンスロール)難易度 標準無料

EC2上で稼働するアプリケーションがAWS APIを呼び出す際、IAMユーザーの長期アクセスキーをアプリケーションの設定ファイルに埋め込む代わりに、EC2インスタンスプロファイル経由のIAMロールを使うべき理由として正しいものを2つ選べ

  1. AインスタンスロールはEC2メタデータサービス経由で一時的な認証情報を自動配布・自動ローテーションするため、長期アクセスキーをアプリ設定に埋め込んで手動管理・手動ローテーションする必要がなくなる
  2. Bインスタンスロールを使えば、そのロールにIAMポリシーをアタッチしなくてもEC2上のアプリケーションは自動的にすべてのAWSリソースへフルアクセスできる
  3. C万一インスタンスが侵害されても、ロールの認証情報は自動的に定期更新される短期間の一時クレデンシャルであるため、長期アクセスキーが漏えいした場合に比べ悪用できる時間的な窓が限定される
  4. Dインスタンスロールの認証情報はローテーションされることが一切なく、インスタンスのライフタイム全体を通じて同一の認証情報が固定的に使われ続ける
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

EC2インスタンスロールは、Well-Architectedフレームワークのセキュリティの柱が推奨する「長期認証情報を避ける」ベストプラクティスの代表例である。

  • ロールの認証情報はインスタンスメタデータサービス(IMDS)経由で自動的に発行・定期的に自動ローテーションされる一時的なセキュリティ認証情報であり、 開発者が長期アクセスキーを設定ファイルへ埋め込んで手動管理・手動ローテーションする必要がなくなる。
  • この一時認証情報には有効期限があり自動的に更新され続けるため、万一インスタンスが侵害されても、 漏えいした認証情報が悪用できる時間的な窓は、失効しない長期アクセスキーが漏えいした場合に比べて限定的になる。

なお、ロールを使う場合でもアタッチする権限ポリシー自体は別途必要であり(自動的にフルアクセスになるわけではない)、 またロールの認証情報はローテーションされないわけではなく、定期的に自動更新されるという点を混同しないこと。

各誤答が違う理由
  • Bロールにも権限ポリシーを明示的にアタッチする必要がある。ロールを使うだけで自動的にフルアクセスになるわけではない。
  • D事実に反する。インスタンスロールの一時認証情報はIMDS経由で定期的に自動更新(ローテーション)される。固定的に使われ続けるのは長期アクセスキーの方の性質。
ひっかけ: 「ロールを使えばIAMポリシーの付与が不要になる(B)」「ロールの認証情報は一切ローテーションされない(D)」はいずれも典型的な誤解。 ロールにも権限ポリシーは必要であり、むしろロールの利点は認証情報が自動でローテーションされ続けることにある。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q20KMSによる暗号化(エンベロープ暗号化とデータキーキャッシング)難易度 高無料

大量のログを毎秒数千件クライアント側で暗号化してから保存するアプリケーションがある。1件ごとに kms:GenerateDataKey を呼び出す実装にしたところ、ThrottlingException が多発し、KMSの呼び出し課金も無視できないコストになった。セキュリティ(1つのデータキーを使い回しすぎない)とスループット・コストのバランスを取りたい。最も適切な対処を選べ。(単一選択)

  1. AAWS Encryption SDKのデータキーキャッシングを導入し、最大メッセージ数・最大バイト数・最大有効時間などの上限を設定した上で、上限内は同一のデータキーを複数の暗号化操作で再利用する。上限に達したら新しいデータキーに切り替える
  2. BAWSサポートにKMSのGenerateDataKeyのリージョンデフォルトクォータの引き上げを依頼するだけで、アーキテクチャは変更しない
  3. Cクライアント側暗号化をやめてSSE-S3に切り替え、KMSの呼び出しを完全になくす
  4. D最初に生成した1つのデータキーを、有効期限や再利用回数の上限を設けずアプリケーションのライフタイム全体で使い回し続ける
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

この種の高スループットなクライアント側エンベロープ暗号化のユースケースには、 AWS Encryption SDKのデータキーキャッシング(data key caching)機能が設計されている。

  • データキーキャッシングは、生成したデータキーをローカルの暗号資料キャッシュ(cryptographic materials cache)に保持し、 一定の制限(最大メッセージ数・最大バイト数・最大有効時間などを設定可能)の範囲内であれば、 毎回KMSを呼ばず同じデータキーを複数の暗号化操作で再利用する。
  • これによりGenerateDataKeyの呼び出し回数・スロットリング・コストを大幅に削減しつつ、 設定した上限に達したら新しいデータキーへ切り替えるため、1つのデータキーが無制限に使われ続けることも防げる(露出範囲の限定)。

単にKMSのAPIクォータ引き上げをサポートに依頼するだけでは、根本のアーキテクチャ課題(呼び出し回数そのものの多さ・コスト)は解決しない。 またSSE-S3への切り替えはクライアント側暗号化を手放すことになり要件(クライアント側でのコントロール)にそぐわない場合が多く、 無期限にキャッシュし続ける設計はデータキーの露出範囲を限定するという安全上の目的を損なう。

各誤答が違う理由
  • Bクォータ引き上げは対症療法であり、呼び出し回数自体もコストも変わらない。根本的な設計改善(データキーの再利用)にはならない。
  • C「クライアント側で暗号化・鍵管理をコントロールしたい」という前提が失われる。KMSを使ったクライアント側暗号化の管理性・監査性を手放すことになり要件に合わない。
  • D上限を設けない使い回しは、1つのデータキーの露出範囲(暗号化されるデータ量・期間)を際限なく広げてしまい、データキーキャッシングが意図する“安全な再利用”の設計から外れる。
ひっかけ: 「クォータ引き上げだけで解決(B)」は対症療法であり、呼び出し回数自体は減らせずコストの根本解決にならない。 「無期限にキャッシュし続ける(D)」はデータキーキャッシングの“上限を設けて安全に再利用する”という設計思想を欠いており、 1つのキーの露出(利用範囲)が際限なく広がってしまう点で不適切。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q21サブネット/ルートテーブル/IGW/NATゲートウェイ難易度 標準無料

ある企業は VPC(10.0.0.0/16)内にプライベートサブネット(10.0.1.0/24)を作成し、そこに配置した EC2 インスタンス群からセキュリティパッチ配布サーバ(インターネット上)へ HTTPS でアクセスできるようにしたい。ただし、これらのインスタンスへインターネットから直接接続できてはならない(インバウンド接続は一切許可しない)。

この要件を満たす最も適切な設計を選べ。(単一選択)

  1. Aパブリックサブネットに NAT ゲートウェイ(Elastic IP 付き)を作成し、パブリックサブネットのルートテーブルに 0.0.0.0/0 → IGW、プライベートサブネットのルートテーブルに 0.0.0.0/0 → NAT ゲートウェイ を設定する
  2. Bプライベートサブネットに NAT ゲートウェイを作成し、プライベートサブネットのルートテーブルに 0.0.0.0/0 → NAT ゲートウェイ を設定する
  3. C各 EC2 インスタンスにパブリック IP を割り当て、プライベートサブネットのルートテーブルに直接 0.0.0.0/0 → IGW を設定する
  4. DVPC ピアリング接続を作成し、別 VPC 経由でインターネットへアクセスさせる
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

プライベートサブネットのインスタンスに「アウトバウンドのインターネットアクセスは必要だが、インバウンド接続は一切許可しない」という要件には、NAT ゲートウェイが最適解である。

  • NAT ゲートウェイはパブリックサブネットに配置し、Elastic IP を割り当てる。パブリックサブネットのルートテーブルには 0.0.0.0/0 → インターネットゲートウェイ(IGW) のルートが必要。
  • プライベートサブネットのルートテーブルには 0.0.0.0/0 → NAT ゲートウェイ ID を設定する。これによりプライベートサブネットのインスタンスはアウトバウンド通信(送信元アドレス変換=SNAT)でインターネットへ出られる。
  • NAT ゲートウェイは送信元からの接続に対する戻りの通信のみを通す(ステートフルな変換テーブルを保持)。インターネット側から新規にプライベートサブネットへ接続を開始することはできない=インバウンド接続を許可しない要件を自然に満たす。
各誤答が違う理由
  • Bインターネットへ出るための public NAT ゲートウェイはパブリックサブネットに作成し、Elastic IP の関連付けが必須であり、この構成では作れない。プライベートサブネットに作成できるのは private NAT ゲートウェイだが、こちらは Elastic IP を持てず、private NAT ゲートウェイから IGW へ向けたトラフィックは IGW 側で破棄されるため、いずれにせよインターネットへは抜けられない。
  • Cこの構成はインスタンスへインターネットから直接到達可能にしてしまい、インバウンド接続を禁止する要件に反する。また IGW への直接ルートを持つ時点でそのサブネットは事実上パブリックサブネットになる。
  • DVPC ピアリングは VPC 間のプライベート接続であり、インターネットへの出口を提供する仕組みではない(ピア先 VPC がインターネットゲートウェイを持っていても、ピアリング経由でその IGW を「借りる」ことはできない)。
ひっかけ: NAT ゲートウェイをプライベートサブネットに置くという誤り(B)が頻出。インターネット向けに使うなら NAT ゲートウェイ(public NAT ゲートウェイ)はパブリックサブネットに置くのが鉄則で、Elastic IP の関連付けも必須。なお「NAT ゲートウェイはプライベートサブネットに作れない」わけではない=オンプレミスや他 VPC 向けの private NAT ゲートウェイはプライベートサブネットに作るが、そこから IGW へ流したトラフィックは破棄されるためインターネットの出口にはならない。 また「パブリック IP を直接割り当てて IGW ルートを引く(C)」はインバウンドも開いてしまう設計であり、要件(インバウンド禁止)に反する。
公式ドキュメント・関連Amazon VPC User Guide ― NAT gateways
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q22セキュリティグループ vs ネットワークACL難易度 標準無料

ソリューションアーキテクトは、EC2 インスタンスのセキュリティグループのインバウンドルールにポート 443(HTTPS)を許可するルールのみを追加した。アウトバウンドルールは編集していない(デフォルトのまま)。クライアントからの HTTPS リクエストに対して、インスタンスは正常にレスポンスを返せている。

アウトバウンドルールを何も追加していないのに、レスポンス(戻りの通信)が正しく届く理由として最も適切なものを選べ。(単一選択)

  1. Aセキュリティグループはステートフルであり、インバウンドで許可された通信の戻りのレスポンスは自動的に許可されるため、対応するアウトバウンドルールを個別に追加する必要はない
  2. BセキュリティグループもネットワークACLと同様にステートレスであるが、デフォルトのアウトバウンドルールでポート 443 の戻り通信専用のルールが暗黙に用意されているため通る
  3. Cこのインスタンスが属するサブネットのネットワークACLがすべての通信を許可しているため、セキュリティグループの設定とは無関係にレスポンスが届いている
  4. DAWS は各セキュリティグループに対して、既知のウェルノウンポート(443 等)の戻り通信を自動生成して許可リストに追加するため
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

セキュリティグループはステートフルである。これが本問の核心。

  • インバウンドルールで許可した通信の戻りのレスポンスは、アウトバウンドルールの内容にかかわらず自動的に許可される(コネクション追跡により、往路が許可されれば復路も自動的に通す)。
  • セキュリティグループのデフォルトのアウトバウンドルールは「すべての送信を許可」であるため、仮に明示的なアウトバウンドルールを何も追加していなくても外向き通信自体は妨げられない。だが本問で問われている本質はステートフルな戻り通信の自動許可の性質である。
  • 対照的にネットワークACL(NACL)はステートレスであり、インバウンド/アウトバウンド双方を明示的に許可しなければならない(戻り通信にはエフェメラルポートのアウトバウンド許可が別途必要)。
各誤答が違う理由
  • Bセキュリティグループはステートレスではなくステートフル。また「443専用の暗黙ルール」という個別ポートに紐づく特別扱いは存在しない。戻り通信が通るのはステートフルな性質そのものによる。
  • CNACL の設定次第でレスポンスが届く/届かないは変わり得るが、本問が問うているのは「アウトバウンドルールを追加していないのに戻り通信が届く」理由であり、それはセキュリティグループのステートフルな性質による。NACL の設定如何にすり替える説明は本質を外している。
  • Dそのような「ウェルノウンポートの自動許可リスト生成」という仕組みは存在しない。戻り通信が通るのはコネクション追跡に基づくステートフルな挙動であり、ポート番号ごとの特別処理ではない。
ひっかけ: 「セキュリティグループもステートレスで、往復両方のルールが要る」という NACL との混同(B)が頻出。ステートフル=セキュリティグループ/ステートレス=NACL という対応を正確に覚える。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q23セキュリティグループ vs ネットワークACL難易度 高無料

プライベートサブネットのアプリケーションサーバから、インターネット上の外部 API(ポート 443)へ NAT ゲートウェイ経由でアウトバウンド接続を行っている。セキュリティグループの設定は問題ないと確認済みだが、外部 API からのレスポンスが届かず接続がタイムアウトする。サブネットのネットワークACL(NACL)の設定を確認したところ、次のようになっていた。

インバウンドルール:
100  ALL TRAFFIC  DENY

アウトバウンドルール:
100  TCP 443  0.0.0.0/0  ALLOW

タイムアウトの原因と、修正として最も適切なものを選べ。(単一選択)

  1. ANACL はステートフルなのでアウトバウンドの443許可だけで戻り通信も自動的に通るはずであり、原因は NACL 以外(セキュリティグループの再確認が必要)である
  2. Bインバウンドルールで、外部 API からの戻り通信を受けるためにエフェメラルポート範囲(例:1024-65535)を送信元 0.0.0.0/0 から TCP で許可する ALLOW ルールを、既存の DENY ルール(ルール番号100)より小さいルール番号で追加する
  3. Cアウトバウンドルールのポート指定を 443 から ALL TRAFFIC に変更すれば、ステートレスな NACL でも戻り通信を含めて許可される
  4. DNAT ゲートウェイを経由する通信は NACL の評価対象外となるため、原因は NAT ゲートウェイのルートテーブル設定にある
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:BAI作成・独立検証済

解説

ネットワークACL(NACL)はステートレスであり、往路と復路のルールをそれぞれ独立して明示的に許可しなければならない。

  • アウトバウンドでポート 443 を許可しているため、アプリケーションサーバから外部 API へのリクエスト自体は送出できる
  • しかし外部 API からのレスポンスは、クライアント側(アプリケーションサーバ)が接続時に使用した一時的な送信元ポート=エフェメラルポート(一般的に 1024〜65535)宛てに返ってくる。インバウンドルールが「ALL TRAFFIC DENY」のままでは、この戻りのレスポンスがブロックされる。
  • 修正には、インバウンドルールに送信元 0.0.0.0/0・プロトコル TCP・ポート範囲 1024-65535(OS のエフェメラルポート範囲に応じて調整)を許可する ALLOW ルールを、DENY ルールより小さいルール番号で追加する必要がある(NACL はルール番号の小さい順に評価し最初にマッチしたルールが適用される)。
各誤答が違う理由
  • ANACL はステートレスであり、往路の許可だけで復路が自動的に通ることはない。本問の原因はまさに NACL のインバウンド側にある。
  • Cアウトバウンド側をいくら緩めても、戻り通信は「インバウンド方向」の評価を受けるため、インバウンドルールで許可しない限り通らない。方向の取り違え。
  • DNAT ゲートウェイを経由していても、送信元/宛先のサブネットに関連付けられた NACL の評価は通常どおり行われる。NACL が評価対象外になることはない。
ひっかけ: 「セキュリティグループの443許可=双方向で通る(Aの発想)」との混同、および「NACLのアウトバウンド443許可だけで往復とも通る」という誤解が罠。NACL は方向ごとに別ルールが必要で、戻り通信はエフェメラルポート宛という点が最頻出のひっかけ。 またルール番号の評価順(若い番号が優先)を理解していないと、「ALLOW ルールを追加したのに DENY が先に評価されて効かない」という事故につながる(本問では番号を DENY(100) より小さくする必要がある)。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q24VPCエンドポイント(Gateway型)/S3難易度 標準無料

プライベートサブネットの EC2 インスタンス群が、日次バッチで大量のログファイルを Amazon S3 バケットへアップロードしている。現在は NAT ゲートウェイ経由でインターネットを介して S3 へ到達しており、NAT ゲートウェイのデータ処理料金が無視できないコストになっている。セキュリティ要件として、この通信はインターネットを経由させたくない

最もコスト効率が良く、要件を満たす設計を選べ。(単一選択)

  1. Aプライベートサブネットの VPC に S3 向けのゲートウェイ型 VPC エンドポイントを作成し、プライベートサブネットのルートテーブルにエンドポイント宛のルートを追加する
  2. BNAT ゲートウェイをさらに追加してマルチ AZ 構成にし、帯域とスループットを増強してコストと待ち時間を改善する
  3. CS3 向けのインターフェース型 VPC エンドポイント(PrivateLink)を作成し、ENI 経由でアクセスさせる
  4. DEC2 インスタンスに S3 バケットと同一の VPC ピアリング接続を設定する
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

S3 や DynamoDB のような AWS のリージョナルサービスへプライベートサブネットから到達させるにはゲートウェイ型 VPC エンドポイント(Gateway Endpoint)が最適。

  • ゲートウェイエンドポイントはルートテーブルにプレフィックスリスト経由のルートを追加するだけで機能し、ENI(インターフェース)を作成しない。追加の時間課金が発生しない(無料)のが大きな特長。
  • トラフィックはインターネット・NAT ゲートウェイを経由せず、AWS のネットワーク内で完結する。これにより NAT ゲートウェイのデータ処理料金を削減でき、セキュリティ要件(インターネット非経由)も満たす。
  • ゲートウェイエンドポイントはS3 と DynamoDB のみ対応。それ以外の多くの AWS サービスはインターフェース型エンドポイント(PrivateLink・ENI+課金あり)を使う。
各誤答が違う理由
  • BNAT ゲートウェイを増やしても、依然として NAT ゲートウェイのデータ処理料金が発生し続け、インターネット非経由という要件も満たさない。コスト削減にならない。
  • CS3 はゲートウェイ型エンドポイントが利用可能で無料である。わざわざ ENI 時間課金・データ処理課金が発生するインターフェース型を選ぶのはコスト効率の観点で最適ではない。
  • DS3 はマネージドサービスであり VPC 内にリソースとして存在しないため、VPC ピアリングの対象にはならない。
ひっかけ: S3 向けにインターフェースエンドポイント(C)を選んでしまう誤りが頻出。S3・DynamoDB はゲートウェイ型が使え、かつ無料であり、わざわざ課金が発生するインターフェース型を選ぶ必要はない(コスト効率の観点で誤り)。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q25VPCエンドポイント(Interface型)/PrivateLink難易度 標準無料

自社 VPC のアプリケーションから、パートナー企業が Network Load Balancer(NLB)の背後に構築・公開している SaaS API へプライベートに接続したい。パートナー企業の VPC の CIDR は自社 VPC の CIDR と重複しており、また自社側からパートナー側の VPC 全体へのルーティングを許可することはセキュリティ上避けたい(アクセスは特定のサービスだけに限定したい)。

この要件を満たす最も適切な接続方式を選べ。(単一選択)

  1. A自社 VPC とパートナー VPC の間で VPC ピアリング接続を確立する
  2. Bパートナー企業が NLB をサービスとして公開し(エンドポイントサービス)、自社 VPC 側にインターフェース型 VPC エンドポイントを作成して PrivateLink 経由で接続する
  3. CTransit Gateway を作成し、自社 VPC とパートナー VPC の両方をアタッチしてルーティングする
  4. DSite-to-Site VPN 接続をパートナー企業の VPC との間に構築する
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:BAI作成・独立検証済

解説

この要件(CIDR 重複あり/VPC 全体ではなく特定サービスだけへの限定的なアクセス)は、AWS PrivateLink(インターフェース型 VPC エンドポイント)の典型的なユースケースである。

  • パートナー企業(サービス提供側)は NLB をエンドポイントサービスとして公開し、自社(消費側)はそのサービスに対してインターフェース型 VPC エンドポイント(ENI)を自社 VPC 内に作成して接続する。
  • PrivateLink は片方向・一点集中型の接続であり、自社側は公開されたサービスにのみアクセスでき、パートナー側 VPC 全体のルーティングテーブルやサブネットへは一切到達できない。
  • ENI は自社 VPC 内のプライベート IP として現れるだけなので、双方の VPC CIDR が重複していても問題なく機能する(VPC ピアリングは CIDR 重複時に接続できないため、この点が VPC ピアリングとの決定的な違い)。
各誤答が違う理由
  • AVPC ピアリングは CIDR が重複していると確立できない。また確立できたとしてもルーティング次第で VPC 全体に到達し得るため、「特定サービスだけに限定したい」という要件にも合わない。
  • CTransit Gateway もアタッチする VPC 間で CIDR が重複しないことが前提であり、かつ VPC 全体のネットワークレベルでの接続になるため、アクセスを特定サービスだけに限定するという要件には過剰かつ不適合。
  • DSite-to-Site VPN は主にオンプレミス拠点と VPC を接続する用途であり、VPC 間・CIDR 重複時の限定的なサービス公開という要件には適さない。
ひっかけ: 「VPC 間接続=VPC ピアリング」という短絡が罠。VPC ピアリングはCIDR が重複していると確立できず、また接続するとルーティング次第で相手 VPC のネットワーク全体に到達しうる(アクセス範囲を1サービスに絞れない)。 「特定サービスへの限定公開・CIDR 重複可」の2条件がそろったら PrivateLink、と覚える。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q26VPCピアリング(非推移性)難易度 高無料

3つの VPC(VPC-A、VPC-B、VPC-C)があり、VPC-A と VPC-B の間、および VPC-B と VPC-C の間にそれぞれ VPC ピアリング接続を確立し、各ルートテーブルにも相手 VPC の CIDR へのルートを正しく追加した。VPC-A と VPC-C の間にはピアリング接続を作成していない

VPC-A のインスタンスから VPC-C のインスタンスへ ping を実行したところ到達できなかった。原因として最も適切なものを選べ。(単一選択)

  1. AVPC-B のルートテーブルに VPC-A および VPC-C 双方への CIDR ルートを追加していないことが原因であり、追加すれば VPC-B を経由して疎通する
  2. BVPC ピアリングは非推移的(non-transitive)であり、VPC-B を経由して VPC-A から VPC-C へ到達することはできない。到達させるには VPC-A と VPC-C の間に直接ピアリングを作成するか、Transit Gateway を利用する必要がある
  3. Cセキュリティグループのインバウンドルールで VPC-C 側の CIDR を許可していないことが原因である
  4. DVPC ピアリング接続は3つ以上の VPC を連結すると自動的に無効化される仕様のため、いずれか1本を削除する必要がある
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:BAI作成・独立検証済

解説

VPC ピアリング接続は推移性を持たない(non-transitive)。これが本問の核心。

  • VPC-A ⇄ VPC-B のピアリングと VPC-B ⇄ VPC-C のピアリングが存在していても、VPC-B を経由して VPC-A から VPC-C へ通信することはできない。ピアリングはあくまでピアとなった2つの VPC 間だけの直接接続であり、片方の VPC を中継点(トランジット)として使うことは設計上サポートされない。
  • VPC-A から VPC-C へ到達させるには、VPC-A と VPC-C の間に別途直接のピアリング接続を作成するか、あるいはTransit Gateway を導入して VPC-A・VPC-B・VPC-C を一括してアタッチし、ハブ&スポーク型で推移的なルーティングを実現する必要がある。
各誤答が違う理由
  • Aルートを追加しても解決しない。VPC ピアリングは非推移的であり、VPC-B を中継地点として使う設計はサポートされていない。
  • Cセキュリティグループの設定を仮に正しくしても、そもそもネットワーク経路(ルーティング)がピアリングの非推移性により存在しないため到達できない。原因の切り分けとして本質的でない。
  • Dそのような自動無効化の仕様はない。複数のピアリング接続を個別に持つこと自体は問題なく、単に推移的なルーティングがサポートされていないだけである。
ひっかけ: 「ルートテーブルの設定漏れ」だと決めつけて設定を疑う方向(A・C)に引っ張られやすいが、本問はルート設定の問題ではなくピアリングの非推移性という仕様上の制約が原因。設定を足しても解決しない点が重要(VPC-B のルートテーブルに VPC-A・VPC-C 双方の CIDR ルートを足しても、VPC-B が中継してくれるわけではない)。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q27Transit Gateway難易度 標準無料

ある企業は同一リージョン内に10個の VPC を運用しており、すべての VPC 間で相互に通信できるフルメッシュ接続が必要になった。現在は VPC ピアリングで個別に接続を管理しているが、VPC の数が増えるたびにピアリング接続数が急増し、ルートテーブルの管理が煩雑になっている(10 VPC のフルメッシュには最大45本のピアリング接続が必要)。

今後さらに VPC が増えることを見込み、管理コストを抑えつつスケーラブルに VPC 間接続を実現する設計として最も適切なものを選べ。(単一選択)

  1. A各 VPC をTransit Gateway にアタッチし、フルメッシュのピアリングをやめてハブ&スポーク型の接続に置き換える。VPC が増えても必要なアタッチメント数は VPC 数分で済み、推移的なルーティングも可能になる
  2. B10個の VPC すべての組み合わせでピアリング接続を漏れなく作成し、各ルートテーブルを手作業で最新に保つ運用を徹底する
  3. Cすべての VPC を1つの巨大な VPC に統合し、サブネットで分割して管理する
  4. D各 VPC 間に Site-to-Site VPN 接続を張り、VPN で相互接続する
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

多数の VPC(およびオンプレミス拠点)を相互接続する場合、Transit Gateway を使ったハブ&スポーク型設計が最もスケーラブルである。

  • 各 VPC を Transit Gateway にアタッチメントとして接続し、Transit Gateway 1つを中心(ハブ)に据える構成へ変更する。VPC の数が n 個でも、必要な接続(アタッチメント)は n 本で済み、VPC ピアリングのフルメッシュ(最大 n(n-1)/2 本)のような組み合わせ爆発が起きない。
  • Transit Gateway は推移的なルーティングをサポートする(VPC ピアリングとの決定的な違い)。VPC-A と VPC-B がそれぞれ Transit Gateway にアタッチされていれば、Transit Gateway 経由で相互に通信できる。
  • Transit Gateway ルートテーブルを使えば、VPC ごとにルーティングを個別制御し、必要に応じてセグメント化(例:本番と開発を分離)することも可能。
各誤答が違う理由
  • BVPC 数が増えるほど必要なピアリング数が組み合わせ的(n(n-1)/2)に増大し、運用負荷・ミスのリスクが跳ね上がる。今後の拡張を見込む要件に対してスケールしない。
  • C既存の VPC 群を1つに統合するのは大規模な再設計・移行を伴い、CIDR 設計のやり直しやアカウント境界の見直しなど現実的でないコストがかかる。VPC 間接続の課題に対する直接的な解決策ではない。
  • DSite-to-Site VPN は主にオンプレミスと VPC の接続に使う機能であり、多数の VPC 間の恒久的な高速相互接続には Transit Gateway の方が適し、VPN はインターネット経由となり帯域・レイテンシ面でも劣る。
ひっかけ: 「VPC ピアリングをさらに増やして頑張って管理する」方向に倒すのは規模が大きくなるほど非現実的(管理面・ルートテーブル上限の面)。本数のスケール(n vs n(n-1)/2)と推移的ルーティングの可否が Transit Gateway を選ぶ決め手であることを押さえる。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q28Direct Connect/Site-to-Site VPN難易度 標準無料

ある企業はオンプレミスのデータセンターと AWS VPC の間に、暗号化されたプライベート接続を今週中に確立したいと考えている。想定される通信量はそれほど多くなく、レイテンシに厳しい要件もない。専用線の敷設や AWS Direct Connect パートナーとの調整には数週間〜数ヶ月かかることが分かっている。

この状況で最も適切な接続方式を選べ。(単一選択)

  1. AAWS Direct Connect を発注し、専用線が開通するまで待つ
  2. BAWS Site-to-Site VPN を構築し、オンプレミスのカスタマーゲートウェイと VPC 側の仮想プライベートゲートウェイの間に IPsec トンネルを確立する
  3. CVPC ピアリングを使い、オンプレミスのデータセンターを VPC として登録して接続する
  4. Dオンプレミスサーバに Elastic IP を割り当て、AWS 側のセキュリティグループでそのグローバル IP からのアクセスのみを許可する
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:BAI作成・独立検証済

解説

「短納期(数日〜1週間程度)」「通信量・レイテンシ要件が厳しくない」という条件から、AWS Site-to-Site VPN が最適解となる。

  • Site-to-Site VPN は、オンプレミスのカスタマーゲートウェイと AWS 側の仮想プライベートゲートウェイ(または Transit Gateway)の間にIPsec による暗号化トンネルをインターネット経由で確立する。専用線の敷設が不要で、設定さえ整えば短時間(数分〜数時間)で構築できる。
  • 一方 AWS Direct Connect は、オンプレミスと AWS の間に専用の物理接続を確立するもので、一貫した帯域・低レイテンシ・高スループットが得られる利点があるが、物理的な敷設や Direct Connect パートナーとの調整に数週間〜数ヶ月の納期を要する。今回のような短納期要件には向かない。
  • 本問は「大容量データ移行」「一貫した低レイテンシが必須」といった Direct Connect が優位になる条件を提示していないため、迅速に構築できる VPN が適切という結論になる。
各誤答が違う理由
  • ADirect Connect の物理接続確立には数週間〜数ヶ月を要することが多く、「今週中に」という納期要件を満たせない。
  • CVPC ピアリングは AWS の VPC 同士を接続する機能であり、オンプレミスのデータセンターを「VPC として登録」することはできない。ハイブリッド接続の手段として不適切。
  • DElastic IP はオンプレミスサーバへ割り当てられる AWS のリソースではなく、通信はインターネット経由・非暗号化のままとなり「暗号化されたプライベート接続」という要件を満たさない。
ひっかけ: 「暗号化・プライベート接続=Direct Connect」という思い込みが罠。Direct Connect 自体は暗号化を提供する仕組みではなく(専用線そのものであり、暗号化が必要なら VPN と組み合わせる等の追加構成が要る)、また納期の長さという運用面の制約が本問の決め手になっている点に注意。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q29Direct Connect Gateway難易度 高無料

ある企業は東京の DX ロケーションに1本の AWS Direct Connect 接続を保有している。この接続1本を使い、ap-northeast-1(東京)と us-east-1(バージニア北部)両方のリージョンにある複数の VPC へ、オンプレミスから低レイテンシかつプライベートに到達できるようにしたい。

この要件を満たす最も適切な構成を選べ。(単一選択)

  1. A既存の Direct Connect 接続上にプライベート仮想インターフェース(Private VIF)を作成し、Direct Connect Gateway に関連付ける。Direct Connect Gateway に対して、ap-northeast-1us-east-1 両リージョンの VGW(または Transit Gateway)をそれぞれ関連付ける
  2. Bus-east-1 側にも新たに物理的な Direct Connect 接続を敷設し、リージョンごとに独立した接続を用意する
  3. CVPC ピアリングを使い、ap-northeast-1 の VPC と us-east-1 の VPC をピアリング接続する
  4. DDirect Connect のパブリック仮想インターフェース(Public VIF)を作成し、各リージョンの VPC のパブリック IP レンジへ直接ルーティングする
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

1本の Direct Connect 接続から、複数リージョンにまたがる複数の VPCへ到達させたい場合は、Direct Connect Gateway を使う。

  • オンプレミス側のルータと DX ロケーションの間に確立したプライベート仮想インターフェース(Private VIF)を、Direct Connect Gateway に関連付ける。
  • Direct Connect Gateway には、各リージョンの VPC に紐づく仮想プライベートゲートウェイ(VGW)またはTransit Gatewayを関連付けることができ、これにより1本の Direct Connect 接続から、リージョンをまたいだ複数の VPC へ到達できるようになる。
  • Direct Connect Gateway 自体はグローバル(リージョンに縛られない)なリソースであり、まさに「1つの物理接続を複数リージョンの複数 VPC で共有する」ユースケースのために設計されている。
各誤答が違う理由
  • B技術的には可能だが、追加の物理接続の敷設には時間とコストがかかり、Direct Connect Gateway を使えば既存の1本の接続を複数リージョンで共有できるため、この設問の要件に対しては最適ではない。
  • CVPC ピアリングは VPC 間の接続であり、オンプレミスの Direct Connect 接続をリージョンをまたいで共有するという要件を解決しない(リージョン間ピアリングを組み合わせても Direct Connect Gateway の代替にはならず構成が複雑化する)。
  • DPublic VIF は S3 など AWS のパブリックサービスエンドポイントへの到達に使うものであり、VPC 内部(プライベート IP 空間)への到達には使えない。VPC への接続には Private VIF が必要。
ひっかけ: 「Direct Connect は1つの VPC としか繋がらない/同一リージョン内でしか使えない」という誤解が罠。Direct Connect Gateway を介せばリージョンをまたいで複数 VPC に接続できる点が本問の核心。また「リージョンごとに別々の物理 Direct Connect 接続を新たに敷設する必要がある(過剰なコスト・納期)」という誤答へ誘導されやすい。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
Q30Direct Connect(冗長化・耐障害性)難易度 標準無料

ある企業は本番ワークロードのためにオンプレミスと AWS 間に AWS Direct Connect 接続を1本構築した。事業継続性の観点から、単一の障害点(SPOF)を減らし、Direct Connect のロケーションや機器レベルの障害に対しても接続を維持できるよう耐障害性を高めたい。

耐障害性を高める設計として適切なものを2つ選べ。(複数選択)

  1. A既存の Direct Connect と別のロケーションにもう1本の Direct Connect 接続を構築し、異なる物理経路・施設で冗長化する
  2. B既存の Direct Connect 接続に加えてSite-to-Site VPN をバックアップ経路として構成し、Direct Connect 障害時にフェイルオーバーできるようにする
  3. C同一の Direct Connect ロケーション内で、既存の接続に対しもう1本の仮想インターフェース(VIF)のみを追加する
  4. DDirect Connect の帯域幅(例:1Gbps → 10Gbps)をアップグレードすることで、障害耐性そのものも向上する
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

Direct Connect の耐障害性向上は、単一の物理接続・単一のロケーションに依存しない設計にすることが基本方針である。

  • 別の Direct Connect ロケーション(POP)に2本目の Direct Connect 接続を構築する。同一ロケーション内で機器や回線を二重化しても、そのロケーション自体(建物・電源・回線経路)に障害が起きれば両方とも影響を受ける。ロケーションを分けることで、施設単位の障害からも保護される。
  • Site-to-Site VPN をバックアップ経路として構成する。Direct Connect 経路に障害が起きた場合、インターネット経由の VPN 接続へフェイルオーバーすることで、帯域・レイテンシは落ちるものの接続断を防げる(BGP の経路優先度で通常時は Direct Connect を優先し、障害時に VPN 経路へ切り替わるよう設計する)。

AWS の Direct Connect Resiliency Toolkit でも、最高レベルの耐障害性(Max Resiliency)は複数ロケーション・複数デバイスにまたがる複数接続を推奨している。

各誤答が違う理由
  • C同一物理接続上に VIF を追加しても、その物理接続自体やロケーションに障害が起きれば両方の VIF が同時に失われる。物理接続そのものの冗長化にはならない。
  • D帯域幅の増強はスループット向上の施策であり、単一障害点の削減(耐障害性)には直接寄与しない。回線や機器・ロケーションが単一のままでは、太くしても切れる時は切れる。
ひっかけ: 「同じロケーション内で回線や機器を増やせば十分」という誤解(選択肢の1つ)が罠。ロケーション自体の障害(電源断・自然災害等)に対しては、同一ロケーション内の冗長化では防げない。耐障害性の議論では「どの階層(回線/機器/ロケーション/リージョン)の障害まで想定するか」を意識する。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)

無料サンプルはここまでです。全問に挑戦するには6ヶ月アクセスパス(1回払い・自動更新なし)をご利用ください。ログインすると、間違えた問題だけを集めて復習できます。

料金プランを見る