Skip to main content

AWS Organizations で SCP を設定して利用を制限する

AWS Organizations 配下の AWS アカウントまたは Organization unit に対して、SCP (Service Control Policy) を設定して利用できるサービス等を制限することができます。

https://docs.aws.amazon.com/ja_jp/organizations/latest/userguide/orgs_manage_policies_scps.html

設定方法

Organization の管理アカウントで、以下の手順で SCP を設定します。

  1. 管理コンソール > AWS Organizations
  2. 制限をおこなう AWS アカウントまたは Organization unit をクリック
  3. 「Policies」タブ
  4. 「アタッチ」
  5. 「ポリシーを作成」
  6. 以下を入力して「ポリシーを作成」
    • ポリシー名: (任意)
    • ポリシーを入力 (後述)
  7. 作成したポリシーをチェックして「ポリシーのアタッチ」

サービスを制限する

AWS アカウントまたは Organization unit に対して、利用できるサービス (API) を制限します。

以下のように利用できないようにする API を指定します。

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": [
"snowball:*"
],
"Resource": "*"
}
]
}

リージョンを制限する

AWS アカウントまたは Organization unit に対して、利用できるリージョンを制限します。IAM や Amazon CloudFront などのグローバルサービスを使用するには、us-east-1 リージョンは必須となります。

例: us-east-1 リージョンのみ利用可能とする

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition": {
"StringNotEquals": {
"aws:RequestedRegion": [
"us-east-1"
]
}
}
}
]
}

例: us-east-1, ap-northeast-1 リージョンと AWS Chatbot を利用可能とする

AWS Chatbot を使用するには us-east-2 リージョンが必要なようです。us-east-1, ap-northeast-1 での全サービスと、us-east-2 の AWS Chatbot だけ利用できるようにしたいとします。

ポリシーの記述には優先順を指定することができず Deny が最優先となる(Allow で一部を除外することはできない)ため、Deny ルールを組み合わせて指定する必要があります。例えば以下のようにします。

us-east-1, ap-northeast-1 リージョンと AWS Chatbot を利用可能とする

  1. ap-northeast-1, us-east-1 以外のリージョンかつ AWS Chatbot 以外のサービスを拒否
  2. ap-northeast-1, us-east-1, us-east-2 以外のリージョンにおける全サービスを拒否
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"NotAction": "chatbot:*",
"Resource": "*",
"Condition": {
"StringNotEquals": {
"aws:RequestedRegion": [
"us-east-1",
"ap-northeast-1"
]
}
}
},
{
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition": {
"StringNotEquals": {
"aws:RequestedRegion": [
"us-east-1",
"us-east-2",
"ap-northeast-1"
]
}
}
}
]
}