こんにちは!エンタープライズクラウド部技術2課の日高です。
特定リージョン以外の操作をSCPで制限した場合、グローバルサービス(検証ではS3を利用しました)のマネジメントコンソールでの表示はどうなるのか気になったので調べてみました。
気になったこと
特定リージョン以外の操作をSCPで制限した場合、グローバルサービス(禁止されているリージョンのS3バケットなど)の表示はどのように表示されるのか)が気になりました。
S3を例にすると「操作はもちろんできないだろうが、そもそもすべてのリージョンのバケットが表示されないのか?それとも禁止しているリージョンのバケットのみ表示されないのか?」などと考えていました。

結論
特定リージョン以外の操作を、「*」で拒否するSCPを作成すると、グローバルサービスは表示できませんでした。
しかし、「NotAction」を使用することで特定リージョン以外での操作を制限しつつグローバルサービスを表示することができました。
方法は公式ドキュメントに記載していました.....
以下の公式ドキュメントをご覧ください。
検証内容
1.特定リージョン以外の操作を「*」で拒否するSCPの作成
以下のように、eu-central-1、eu-west-1以外での操作を拒否するSCPを作成しました。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenyAllOutsideEU",
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition": {
"StringNotEquals": {
"aws:RequestedRegion": [
"eu-central-1",
"eu-west-1"
]
}
}
}
]
}
2. 特定リージョン以外の操作を「*」で拒否するSCPの適用結果
1で作成したSCPとすべてのアクションを許可したSCP(FullAccess)を適用した際のグローバルサービス(今回はRoute53とS3を例にしています)の表示結果です。
※FullAccess
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
]
}
- Route53

- S3

上記のように、グローバルサービスのリソースは表示されませんでした。

当たり前ではありますが、上記のように「eu-west-1(制限していないリージョン)」でのEC2の表示はできました。
3. 特定リージョン以外での操作を制限しつつグローバルサービスを表示するSCPの作成
こちらのドキュメントを参考にして作成したSCPがこちらになります。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenyAllOutsideEU",
"Effect": "Deny",
"NotAction": [
"a4b:*",
"acm:*",
"aws-marketplace-management:*",
"aws-marketplace:*",
"aws-portal:*",
"budgets:*",
"ce:*",
"chime:*",
"cloudfront:*",
"config:*",
"cur:*",
"directconnect:*",
"ec2:DescribeRegions",
"ec2:DescribeTransitGateways",
"ec2:DescribeVpnGateways",
"fms:*",
"globalaccelerator:*",
"health:*",
"iam:*",
"importexport:*",
"kms:*",
"mobileanalytics:*",
"networkmanager:*",
"organizations:*",
"pricing:*",
"route53:*",
"route53domains:*",
"route53-recovery-cluster:*",
"route53-recovery-control-config:*",
"route53-recovery-readiness:*",
"s3:GetAccountPublic*",
"s3:ListAllMyBuckets",
"s3:ListMultiRegionAccessPoints",
"s3:PutAccountPublic*",
"shield:*",
"sts:*",
"support:*",
"trustedadvisor:*",
"waf-regional:*",
"waf:*",
"wafv2:*",
"wellarchitected:*"
],
"Resource": "*",
"Condition": {
"StringNotEquals": {
"aws:RequestedRegion": [
"eu-central-1",
"eu-west-1"
]
}
}
}
]
}
4. 特定リージョン以外での操作を制限しつつグローバルサービスを表示するSCPの適用結果
3で作成したSCPを適用した際のグローバルサービス(今回はRoute53とS3を例にしています)の表示結果です。
- Route53

- S3

上記のように、グローバルサービスのリソースを表示することができました。
ただ、S3では制限しているリージョンの情報はバケットの概要(AWSリージョン、ARN、作成日)以外はエラー表示になっていました。

まとめ
今回は簡単な検証でしたが、特定リージョン以外の操作を制限した状態で、マネジメントコンソールにグローバルサービスの表示ができるようなSCPについて学ぶことができてよかったです。
本記事が誰かの助けになれば幸いです。
日高 僚太(執筆記事の一覧)
表彰:2024 Japan AWS Jr. Champions / Japan AWS Jr. Champions of the Year 2024 / 2024-2025 Japan AWS All Certifications Engineers / 2025 Japan AWS Top Engineers (Services)
EC部クラウドコンサルティング課所属。2022年IT未経験でSWXへ新卒入社。
記事に関するお問い合わせや修正依頼⇒ hidaka@serverworks.co.jp