ある企業は単一の IAM ロール「DeveloperRole」を全開発者で共有しています。 各開発者は AWS IAM Identity Center 経由でこのロールを引き受け、セッションタグとして「username」が自動付与されます。 要件として「各開発者は自分の username タグと同じ値の username タグを持つ Amazon S3 バケットのみにアクセスできること」とします。 この ABAC(属性ベースのアクセス制御)を実現するための最も適切なポリシー条件はどれですか?
DeveloperRole のアクセス許可ポリシーに aws:PrincipalTag/username と aws:ResourceTag/username の値が一致する条件を追加する。 ABAC では、セッションタグ(aws:PrincipalTag/username)とリソースタグ(aws:ResourceTag/username)を条件として組み合わせることで動的なアクセス制御が可能です。IAM Identity Center はユーザー属性を自動的にセッションタグとして引き渡し、アクセス許可ポリシーの条件に `StringEquals: {aws:PrincipalTag/username: ${aws:ResourceTag/username}}` を設定することで実現できます。 選択肢Aは誤りです。信頼ポリシーの aws:RequestTag はロール引き受け時のリクエストタグを検証するものであり、引き受け後のリソースアクセス制御には使いません。 選択肢Cは数百人規模では管理が煩雑になります。ABAC はまさにこのスケーリング問題を解決するアプローチです。 選択肢Dは誤りです。Permission Boundary は権限の上限を設定するものであり、セッションタグに基づく動的なリソースフィルタリングには使用しません。