エンジニア

2022.07.28

AWS Organizations関連Tips①(SCPによるリージョン規制の落とし穴)

AWS Organizations関連Tips①(SCPによるリージョン規制の落とし穴)

こんにちは。AWS担当のもちです。
夜な夜な、暗い部屋でスプラトゥーンをやっています。

AWS Organizationsは触る人が少ないからかネット上の情報が少ないため、
はまったことをブログで発信したいと思います。

今回は、

SCP(サービスコントロールポリシー、以下SCP)によるリージョン規制(※)を既存アカウントに適用する際の落とし穴

をご説明します。
※使用できるリージョンを制限すること。

既存アカウントにリージョン規制をした場合、どのような落とし穴があるかご存知でしょうか?

まず結論ですが、
規制したリージョンで既に稼働中のサービスがある場合、APIは使用できなくなるがサービスは動いたまま
となります。

詳しくご説明します。
リージョン規制はAWS公式もSCPの例として挙げており、弊社も導入を進めております。
詳しい経緯は過去ブログを参照ください
今回は、未対応アカウントへの適用を進めている時に発覚した内容です。

検証環境で特定のリージョン以外は操作できなくなることを確認し、いざ既存アカウントに適用。
運用上問題ないことを確認して翌月になってみたら、AWS Securityhub(以下、Securityhub)のコストが削減できていません。

私の知識不足でした。
APIが叩けなくなっても、サービス自体は止まっていなかったのです。

SCPで禁止している以上、rootでもSecurityhubの停止ができません。
そこで、リージョン規制のSCPを一度デタッチしてからSecurityhubを停止し、再度SCPをアタッチする作業が必要となりました。

SCPでDenyを利用する場合、どのサービスがどのリージョンで使用されているか、アタッチ前に停止できているかを確認しましょう。

以下は、検証時の参考画面です。

SCP無しで、us-east-2(オハイオ)でSecurityhubが稼働している状態。

CLIも通ります。

マスターアカウントで、上記アカウントに以下のSCPをアタッチします。

test_RedundantRegionsProhibited

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyAllOutsideEU",
      "Effect": "Deny",
      "NotAction": [
        "a4b:*",
        "acm:*",
        "aws-marketplace-management:*",
        "aws-marketplace:*",
        "aws-portal:*",
        "awsbillingconsole:*",
        "budgets:*",
        "chatbot:*",
        "ce:*",
        "chime:*",
        "cloudfront:*",
        "config:*",
        "cur:*",
        "directconnect:*",
        "ec2:DescribeRegions",
        "ec2:DescribeTransitGateways",
        "ec2:DescribeVpnGateways",
        "fms:*",
        "globalaccelerator:*",
        "health:*",
        "iam:*",
        "importexport:*",
        "kms:*",
        "mobileanalytics:*",
        "networkmanager:*",
        "organizations:*",
        "pricing:*",
        "route53:*",
        "route53domains:*",
        "s3:GetAccountPublic*",
        "s3:ListAllMyBuckets",
        "s3:PutAccountPublic*",
        "shield:*",
        "sts:*",
        "support:*",
        "trustedadvisor:*",
        "waf-regional:*",
        "waf:*",
        "wafv2:*",
        "wellarchitected:*"
      ],
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "aws:RequestedRegion": [
            "us-east-1",
            "ap-northeast-1"
          ]
        },
        "ArnNotLike": {
          "aws:PrincipalARN": [
            "arn:aws:iam::*:role/aws-reserved/sso.amazonaws.com/AWSReservedSSO_AdministratorAccessWRR_*"
          ]
        }
      }
    }
  ]
}

us-east-2(オハイオ)のSecurityhubは表示されなくなりました。

もちろんCLIも通りません。

しかし、us-east-2のSecurityhubは動いたままです。SCPをデタッチすると、稼働したままであることがわかります。
もちろんアタッチしたまま停止できないので、前述の通り、SCPデタッチ・Securityhub停止・SCPアタッチが必要となります。

今回もニッチな情報でしたが、誰かのお役に立てると幸いです。
もうすぐスプラトゥーン3が発売されますね!
ではまた。

一覧に戻る