【正解】B
【0からの解説】
この問題のキーワードは「複数アカウントの一元管理」「SAML ベースの IdP でのフェデレーション」「60 分で失効する一時認証情報」「永続的な IAM ユーザー/アクセスキーをやめる」の 4 つです。
AWS IAM Identity Center(旧 AWS SSO)は、まさにこのユースケースのために設計されたサービスです。外部の SAML 2.0 / OIDC ベースの IdP(Okta、Azure AD/Entra ID など)と連携でき、組織内の各アカウントへ「許可セット」という形でアクセスを割り当てられます。ユーザーは IdP で 1 度ログインすれば、各アカウント用の一時認証情報(STS 経由)が自動で発行され、セッション有効期間(例: 1 時間)を中央で強制できます。AWS CLI でも `aws configure sso` により SSO 認証情報を取得できます。さらに各アカウントから永続的な IAM ユーザーとアクセスキーを削除すれば「すべてのアクセスを一時認証情報に統一」という要件も満たせます。
したがって B がすべての要件を 1 つの仕組みで満たす最適解です。
【誤りの選択肢】
A:get-session-token はあくまで既存の IAM ユーザー(長期のアクセスキー)を前提に一時トークンを発行するもので、SAML IdP によるフェデレーションを実現しません。また永続的な IAM ユーザー/キーが残り続け、要件「SAML ベースの IdP を使う」「IAM ユーザーを廃止する」を満たしません。
C:Cognito はモバイル/ウェブアプリのエンドユーザー向け ID 連携サービスであり、開発者/運用者が AWS アカウントの管理コンソールや CLI にアクセスする用途には適しません。Secrets Manager にシークレットを格納する発想自体が「一時認証情報への統一」という方針に反します。
D:IAM Roles Anywhere は、AWS の外(オンプレミスサーバーや CI など)の「ワークロード」が X.509 証明書を使って一時認証情報を得る仕組みであり、SAML IdP による「人間ユーザー」のフェデレーションには適しません。
【参考】
AWS IAM Identity Center とは許可セット(Permission sets)外部 IdP への接続