ある企業の開発者 IAM ロールには以下の権限が付与されています: - ec2:RunInstances(EC2 インスタンスの起動) - iam:PassRole(全ての IAM ロールを対象に許可、Resource: "*") セキュリティチームは開発者による「IAM ロールを経由した権限昇格(Privilege Escalation)」を防ぐため、iam:PassRole に制限を追加したいと考えています。 最も効果的な対策として正しいものを 2 つ選択してください。
IAM ロールを経由した権限昇格とは、開発者が自分より強力な IAM ロールを EC2 などのサービスに渡し、そのサービスを通じて高い権限の操作を行う攻撃です。 iam:PassRole のリソースを特定の ARN のみに制限することで、開発者は承認されたロールのみを渡せるようになります。これが最も直接的な権限昇格防止策です。 iam:PassedToService: ec2.amazonaws.com 条件を追加することで、渡せるサービスを EC2 のみに制限でき、同じロールを Lambda や ECS など他サービスに渡して権限昇格することを防ぎます。 選択肢CのIAM ListRoles 権限を削除する方法は誤りです。ロールの ARN を事前に知っていれば ListRoles 権限がなくても PassRole で渡せます。セキュリティはあいまい性に依存すべきではありません。 選択肢Dの ec2:RunInstances にリージョン制限を追加する方法は誤りです。リージョン制限は権限昇格とは無関係であり、高権限ロールを渡す問題を解決しません。