ある企業には200名の開発者が10チームに分かれており、各チームが自チームのEC2インスタンスを管理しています。セキュリティチームは、開発者によるEC2の起動・停止・終了操作を自チームのリソースのみに制限したいと考えています。チーム数や人員が増えてもポリシーの追加変更なしに自動的に適切なアクセス権が付与される、最もスケーラブルな実装方法はどれですか?
ABAC(Attribute-Based Access Control)は、IAMプリンシパルに付与されたタグ(プリンシパルタグ)とAWSリソースのタグ(リソースタグ)を動的に照合してアクセスを制御する手法です。IAM Identity Centerを使用すると、外部IDプロバイダー(Active Directory、Okta等)のユーザー属性(所属チーム等)を自動的にIAMセッションのプリンシパルタグとして引き継ぐことができます。 `"StringEquals": {"aws:ResourceTag/Team": "${aws:PrincipalTag/Team}"}`という条件を含む単一の許可セットを作成するだけで、チーム数が増えてもポリシー変更は不要です。新メンバーがIDプロバイダーのチームグループに追加されれば、自動的に正しいプリンシパルタグが付与されアクセス権が有効になります。 選択肢AのIAMグループは、チームや人員が増えるたびに手動でのグループ追加と管理が必要となりスケーラビリティに欠ける。 選択肢CのAWS Organizations SCPsはDenyベースのガードレールとして機能するが、開発者へのアクセスを許可する機能はなく、IAMポリシーとの組み合わせが必要な上に管理者にも影響するため、主要なABAC手段としては適切でない。 選択肢Dの個別IAMロールは、EC2インスタンスが増えるたびにポリシーのARN列挙を更新する必要があり、新メンバー追加にも手動対応が必要でスケーラブルではない。