ある企業はAWS OrganizationsでOU(組織単位)を使って本番環境アカウントを管理しています。セキュリティチームは「本番OUのアカウントでは、ap-northeast-1とus-east-1以外のリージョンへのAWSアクセスをSCPで禁止したい。ただし、IAM・STS・Route 53・CloudFrontなどのグローバルサービスは引き続き利用できる必要がある」という要件を持っています。最も適切なSCPの実装パターンはどれですか?
リージョン制限のSCPではNotAction+Denyパターンが推奨されます。IAM・STS・CloudFront・Route 53・Supportなどのグローバルサービスはリージョン固有のエンドポイントを持たないため、aws:RequestedRegion条件が期待どおりに評価されず、Action: "*" でDenyすると許可リージョン内であってもこれらのサービスがブロックされてしまいます。NotActionでグローバルサービスをDeny対象から除外することで、リージョン型サービスのみを制限でき、アカウント管理機能を維持したままリージョン制限を実現できます。 選択肢AはAction: "*" を使用するため、IAMやRoute 53などのグローバルサービス操作もブロックされ、アカウントの管理自体が不能になるリスクがあります。 選択肢Cでは、Effect: AllowのSCPにaws:RequestedRegionのStringEquals条件を使用した場合、グローバルサービスの呼び出し時にRequestedRegionが評価されず条件が不一致となりAllowが適用されないため、グローバルサービスへのアクセスが遮断される恐れがあります。 選択肢Dは個別IAMポリシーのアタッチ方式であり、新しいIAMエンティティが作成されるたびに手動でポリシーを付与する必要があり、漏れが発生しやすく組織全体への一元強制が困難です。