タグを使う属性ベースのアクセス制御

属性ベースのアクセス制御(ABAC)では、主体とリソースのタグが一致する条件で許可する。プロジェクトが増えてもタグを付けるだけで同じポリシーを使える。タグの付け替えを制限する設計も合わせる。 SCPは権限の上限を定めるが許可を与えない。管理者権限の付与は最小権限に反し、同じリージョン内のプロジェクトも区別できない。 監査は事後の追跡であり、他プロジェクトのインスタンスを止める操作自体を防げない。最小権限に反する。 個別のリソースIDを列挙する方式はプロジェクトや台数の増加に合わせて保守が増え、本問の運用負荷を減らす要件に合わない。

数十のプロジェクトが同じアカウントでEC2を使う。プロジェクトが増えるたびにIAMポリシーを書き足さず、開発者が自分のプロジェクトのインスタンスだけを停止・起動できるようにしたい。開発者のロールのセッションにはProjectタグが付与される。

最も適切なものを1つ選択してください。

出典AWS非公式・オリジナル問題
ア
SCPでプロジェクト名ごとにリージョンを分け、開発者には管理者権限を付与する
イ
全開発者へec2:StopInstancesとStartInstancesを全リソースに許可し、CloudTrailで事後に操作を確認する
ウ
ec2:ResourceTag/Projectとaws:PrincipalTag/Projectが一致する場合だけ操作を許可する条件を書く
エ
プロジェクトごとにIAMロールを作り、インスタンスIDを列挙したポリシーを毎回更新する