こんにちは!大崎です!
みなさんは使用しないリージョンの使用を禁止したいと考えたことはないでしょうか?
「Organization配下のアカウントにて使用しないリージョンの使用禁止設定がわからない…」
今回はそんな疑問にお答えします。
本記事でわかること
- SCPとは
- 使用しないリージョンを禁止するSCPの設定方法
- 動作検証
SCPとは
AWSのSCP(Service Control Policy)は、AWS Organizationsで利用できるポリシーの一種で、組織全体や特定のOU(組織単位)に対して、IAMポリシーの上限を定義する仕組みです。
つまり「何が許可されるか」ではなく、「何が許可されないか」を決めるための制御です。
特徴
- 適用範囲:AWS Organizationsに属するアカウント全体、またはOU単位です。
- 効果:IAMポリシーで許可されていても、SCPで拒否されている操作は実行できません。
- デフォルト:
FullAWSAccessというポリシーがあり、これを外すと制限がかかります。
ポイント
- SCPは「許可」ではなく「制限」を定義するものです。
- SCPで許可されていても、IAMポリシーで許可されていなければ操作できません。
- SCPはrootユーザーにも適用されるので、強力な制御が可能です。
使用しないリージョンを禁止するSCPの設定方法
以下の手順でSCP設定を行います。今回は東京リージョン以外使用禁止にしたいと思います。
①管理アカウントの「Organization」より「ポリシー」から「サービスコントロールポリシー」を選択します。

②「ポリシーを作成」を選択します。

③任意のポリシー名等を設定します。ポリシー内容は以下を設定します。設定後は「ポリシーを作成」を選択します。
※NotActionにてグローバルリソースを指定し禁止対象から除外しています。これは単に東京リージョン以外禁止とするとグローバルリソースまでも禁止になってしまうためです。使用するサービスに合わせてNotActionの内容は調整してください。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenyAllOutsideRequestedRegions",
"Effect": "Deny",
"NotAction": [
"iam:*",
"route53:*",
"trustedadvisor:*",
"access-analyzer:*",
"support:*",
"budgets:*",
"ce:*",
"organizations:*"
],
"Resource": "*",
"Condition": {
"StringNotEquals": {
"aws:RequestedRegion": [
"ap-northeast-1"
]
}
}
}
]
}
④管理アカウントの「Organization」より「AWSアカウント」からSCPを適用したいアカウントを選択します。

⑤「ポリシー」のタブを選択し、「アタッチ」を選択します。

⑥③で作成したポリシーを選択し、「ポリシーのアタッチ」を選択します。

動作検証
実際にSCP適用したうえで、対象アカウントで大阪リージョンに移動しサブネットを参照しようとしてみるとエラー表示となりました。想定通り、指定したリージョン以外の操作自体が禁止となりました。
【エラー文】
You are not authorized to perform this operation <ユーザ名> is not authorized to perform ec2:DescribeSubnets with an explicit deny in a service control policy arn:aws:organizations<ポリシー名>

まとめ
今回は、SCPによる東京リージョン以外使用禁止する方法についてご紹介しました。
上記の対応を行うことで、想定外のリージョンでの操作を防ぐことができ、無駄なコスト発生防止やセキュリティリスクの低減が可能になります。
運用やシステム構成に合わせて、ぜひこの仕組みを活用してみてください。



コメント