STS(AssumeRoleWithWebIdentity)難易度 標準無料
Cognitoの内部動作を理解したい。CognitoIDプールは、Cognitoユーザープールや外部OIDCプロバイダー(Google等)が発行したIDトークンを受け取り、最終的に一時的なAWS認証情報を発行する。この過程でIDプールが内部的に呼び出しているSTSのAPIとして最も適切なものを選べ。(単一選択)
- Asts:AssumeRole
- Bsts:AssumeRoleWithWebIdentity
- Csts:GetFederationToken
- 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:GetFederationTokenはIAMユーザーの認証情報を使い、限定的な権限を持つ一時トークンを発行する古い方式で、外部IdPのトークンを受け取る仕組みではない。sts:GetSessionTokenはMFA保護されたAPI呼び出しのためにIAMユーザー自身が一時セッションを取得する用途であり、フェデレーションとは無関係。
- A
AssumeRoleは既存のAWS認証情報(IAMユーザー/ロール)を持つ主体が別のロールへ切り替える場合のAPI。外部Webトークンを直接入力にする用途ではない。 - CIAMユーザーの認証情報を使って限定的な一時トークンを発行する古い方式であり、外部OIDCトークンを受け取る仕組みではない。
- DIAMユーザー自身がMFA保護されたAPI呼び出し用に一時セッションを取得するAPIであり、外部IDフェデレーションとは無関係。
ひっかけ:
AssumeRole・AssumeRoleWithWebIdentity・AssumeRoleWithSAML・GetFederationToken・GetSessionToken
の使い分け(どの認証情報を入力として、どの認証情報を出力するか)を混同しないこと。外部OIDC/Webトークンが入力になるのは AssumeRoleWithWebIdentity だけ。AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)