ある大規模テクノロジー企業が8,000名の従業員と750のAWSアカウントを保有しています。現在はAWS IAMユーザーをアカウントごとに個別管理しており、アクセス管理の複雑性とセキュリティリスクが問題になっています。以下の要件を満たすアクセス管理基盤を構築してください:(1)従業員はOkta(クラウドベースのIdP: Identity Provider、ユーザー認証情報を一元管理する外部システム)で管理されており、各ユーザープロファイルにcost-center・project-code・clearance-levelの属性が設定されている、(2)ABAC(Attribute-Based Access Control:ユーザーやリソースの属性をもとにアクセス権限を動的に決定する属性ベースの認可モデル)を実装し、従業員は自分のcost-centerとproject-codeに一致するタグが付いたAWSリソースのみにアクセス可能とする、(3)従業員のOkta属性変更(チーム異動等)が発生した場合、次回ログイン時から自動的に新しいアクセス権限が適用される、(4)すべてのAWSアクセスは従業員の実名(OktaユーザーID)でAWS CloudTrailに記録される。この要件を最も効果的に実現する組み合わせとして正しいものを2つ選んでください。
IAM Identity CenterにOktaを外部IdPとしてSAML 2.0で統合する。IAM Identity Centerの属性マッピング設定でOktaのcost-center・project-code属性をPrincipalTagセッションタグとして渡すよう設定する。ABACポリシーを含む権限セットを作成し、IAMポリシー条件にStringEquals aws:PrincipalTag/cost-center: ${aws:ResourceTag/cost-center}のような条件式を用いてリソースタグとユーザー属性を照合する、IAM Identity CenterでSCIMプロビジョニングを有効化してOktaと接続する。Oktaでユーザー属性が変更されると、SCIMプロビジョニングによりIAM Identity Centerに変更が自動伝播され、次回ログインセッションから更新された属性がPrincipalTagとして反映される。 IAM Identity CenterはSAML 2.0でOktaと統合し、属性マッピングでOktaの属性をAWSセッションタグ(PrincipalTag)として渡すことでABACを実現できます。CloudTrailにはIAM Identity CenterのユーザーIDが実名で記録されます。SCIMはOktaの属性変更をIAM Identity Centerへリアルタイムに同期し、次回セッションから新属性が適用されます。 選択肢BはアカウントごとのIAMユーザー管理で750アカウントへのスケールが不可能です。 選択肢DのCognitoはIAM Identity Centerの直接IdPバックエンドとして機能しません。 選択肢EはLambdaポーリングによる最大15分の同期遅延と複雑な実装が問題です。