Slide 1

Slide 1 text

AWS Control Tower の リージョン拒否設定を深堀してみた 2025/09/17 クラウド⾷堂 #4 ~AWSカテゴリ指定LT会~

Slide 2

Slide 2 text

⽬次 ● AWS Control Tower とは ● リージョン拒否設定 とは ● 設定 (SCP) を⾒てみよう ○ よりセキュアにするには ● まとめ 2

Slide 3

Slide 3 text

AWS Control Tower とは

Slide 4

Slide 4 text

AWS Control Tower とは 4 ● セキュアなマルチアカウント環境を⾃動でセットアップするサービス ● 主な機能は4つ ○ シングルサインオン ■ IAM Identity Center を使⽤ ○ ログ集約 ■ CloudTrail 組織証跡、 Config レコーダーを使⽤ ○ ガードレール ■ コントロールを提供 ○ AWS アカウント作成 ■ Account Factory を提供 ※AWS Black Belt Online Seminar AWS Control Tower 基礎編 より引用

Slide 5

Slide 5 text

リージョン拒否設定 とは

Slide 6

Slide 6 text

リージョン拒否設定 とは 6 ● Control Tower(以降 CT と表記)をセットアップする際に 「リージョン拒否設定」を有効にするか選択可能 ● 「CT 管理対象外のリージョンに対して、AWS サービスのアクションを禁⽌する」 という設定

Slide 7

Slide 7 text

リージョン拒否設定 とは 7 ● Control Tower(以降 CT と表記)をセットアップする際に 「リージョン拒否設定」選択が可能 ● 「CT 管理対象外のリージョンに対して、AWS サービスのアクションを禁⽌する」 という設定 どのサービス/アクションが禁⽌されるの?

Slide 8

Slide 8 text

設定 (SCP) を⾒てみよう

Slide 9

Slide 9 text

設定 (SCP) を⾒てみよう 9 ● リージョン拒否設定は SCP で実装 ○ Deny access to AWS based on the requested AWS Region - AWS Control Tower { (中略) "Effect": "Deny", "NotAction": [ "a4b:*", "access-analyzer:*", "account:*", "acm:*", "activate:*", "artifact:*", (中略) ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:RequestedRegion": [] }, "ArnNotLike": { "aws:PrincipalARN": [ "arn:aws:iam::*:role/AWSControlTowerExecution" ] } } } NotAction に記載がないアクションについて、 CT 管理対象リージョン外 かつ CT 管理ロール (AWSControlTowerExecution)以外だった場合に拒否する 例:東京リージョンが CT 管理対象リージョンの場合 ● オレゴンリージョンで⼀般ユーザーが EC2 起動 ○ 拒否 ● 東京リージョンで⼀般ユーザーが EC2 起動 ○ 拒否されない ● CT 管理ロールを使⽤して IAM ユーザー作成 ○ 拒否されない(NotAction に含まれるため) ● ⼀般ユーザーが IAM ユーザー作成 ○ 拒否されない(NotAction に含まれるため)

Slide 10

Slide 10 text

設定 (SCP) を⾒てみよう 10 ● リージョン拒否設定は SCP で実装 ○ Deny access to AWS based on the requested AWS Region - AWS Control Tower { (中略) "Effect": "Deny", "NotAction": [ "a4b:*", "access-analyzer:*", "account:*", "acm:*", "activate:*", "artifact:*", (中略) ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:RequestedRegion": [] }, "ArnNotLike": { "aws:PrincipalARN": [ "arn:aws:iam::*:role/AWSControlTowerExecution" ] } } } NotAction に記載がないアクションについて、 CT 管理対象リージョン外 かつ CT 管理ロール (AWSControlTowerExecution)以外だった場合に拒否する 例:東京リージョンが CT 管理対象リージョンの場合 ● オレゴンリージョンで⼀般ユーザーが EC2 起動 ○ 拒否 ● 東京リージョンで⼀般ユーザーが EC2 起動 ○ 拒否されない ● CT 管理ロールを使⽤して IAM ユーザー作成 ○ 拒否されない(NotAction に含まれるため) ● ⼀般ユーザーが IAM ユーザー作成 ○ 拒否されない(NotAction に含まれるため)

Slide 11

Slide 11 text

設定 (SCP) を⾒てみよう 11 ● リージョン拒否設定は SCP で実装 ○ Deny access to AWS based on the requested AWS Region - AWS Control Tower { (中略) "Effect": "Deny", "NotAction": [ "a4b:*", "access-analyzer:*", "account:*", "acm:*", "activate:*", "artifact:*", (中略) ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:RequestedRegion": [] }, "ArnNotLike": { "aws:PrincipalARN": [ "arn:aws:iam::*:role/AWSControlTowerExecution" ] } } } NotAction に記載がないアクションについて、 CT 管理対象リージョン外 かつ CT 管理ロール (AWSControlTowerExecution)以外だった場合に拒否する 例:東京リージョンが CT 管理対象リージョンの場合 ● オレゴンリージョンで⼀般ユーザーが EC2 起動 ○ 拒否 ● 東京リージョンで⼀般ユーザーが EC2 起動 ○ 拒否されない ● CT 管理ロールを使⽤して IAM ユーザー作成 ○ 拒否されない(NotAction に含まれるため) ● ⼀般ユーザーが IAM ユーザー作成 ○ 拒否されない(NotAction に含まれるため) ⼀般ユーザーが IAM ユーザー作成できちゃうの!?

Slide 12

Slide 12 text

設定 (SCP) を⾒てみよう 12 ● NotAction に記載があるアクションについては、CT 管理ロール以外でも拒否されない ● NotAction に記載がある AWS サービスは以下(1/3) 🌐 グローバルサービス ● IAM (Identity and Access Management) ● ACM (AWS Certificate Manager) ● CloudFront ● Route 53 / Route 53 Domains ● Route 53 Recovery (Cluster/Control Config/Readiness) ● WAF / WAF Regional / WAFv2 ● Shield ● Global Accelerator 💰 請求‧コスト管理 ● Billing ● Billing Conductor ● Budgets ● Cost Explorer (CE) ● Cost and Usage Reports (CUR) ● Free Tier ● Savings Plans ● Tax ● Payments ● Invoicing ● Consolidated Billing

Slide 13

Slide 13 text

設定 (SCP) を⾒てみよう 13 ● NotAction に記載がある AWS サービスは以下(2/3) 🏢 組織‧アカウント管理 ● Organizations ● SSO (Single Sign-On) ● Account ● AWS Portal 🔍 監査‧コンプライアンス ● Access Analyzer ● Config ● CloudTrail (LookupEventsのみ) ● Artifact ● Trusted Advisor 🛡 セキュリティ ● KMS (Key Management Service) ● FMS (Firewall Manager) ● STS (Security Token Service) 📊 分析‧最適化 ● Compute Optimizer ● Resource Explorer 🛒 マーケットプレイス ● AWS Marketplace ● AWS Marketplace Management ● Vendor Insights (ListEntitledSecurityProfilesのみ) 🪣 S3(特定のグローバル操作のみ) ● マルチリージョンアクセスポイント関連 ● アカウントレベルの設定 ● バケット⼀覧表⽰ ● Storage Lens関連

Slide 14

Slide 14 text

設定 (SCP) を⾒てみよう 14 ● NotAction に記載がある AWS サービスは以下(3/3) 💻 EC2(特定の情報取得のみ) ● DescribeRegions ● DescribeTransitGateways ● DescribeVpnGateways 📱 その他のサービス ● Chatbot ● Chime ● Data Pipeline (GetAccountLimitsのみ) ● Device Farm ● Direct Connect ● ECR Public ● Health ● License Manager (ListReceivedLicensesのみ) ● Lightsail (Getアクションのみ) ● Mobile Analytics ● Network Manager ● Notifications / Notifications Contacts ● QuickSight (DescribeAccountSubscriptionのみ) ● Support / Support App / Support Plans ● Sustainability ● Tag (GetResourcesのみ) ● IQ ● Activate ● Console App ● A4B (Alexa for Business) ● Import/Export

Slide 15

Slide 15 text

● NotAction に記載されている(=制限されていない)サービス/アクション、多くない? と思いましたよね ● しかし少し考えてみれば、制限するのは難しいか…と思うサービスが多いです 例: ● IAM、CloudFront、Route53 など ○ グローバルサービスのためリージョン制限できない ● Organizations、SSO ○ 組織管理に使⽤するためリージョン制限できない ● Config、CloudTrail ○ CT がガバナンス監視で使⽤するため制限できない ● KMS ○ リージョン横断で暗号化キーを管理するために制限できない ● S3 のグローバル操作 ○ バケット⼀覧表⽰など実施するために制限できない 設定 (SCP) を⾒てみよう 15

Slide 16

Slide 16 text

● NotAction に記載されている(=制限されていない)サービス/アクション、多くない? と思いましたよね ● しかし少し考えてみれば、制限するのは難しいか…と思うサービスが多いです 例: ● IAM、CloudFront、Route53 など ○ グローバルサービスのためリージョン制限できない ● Organizations、SSO ○ 組織管理に使⽤するためリージョン制限できない ● Config、CloudTrail ○ CT がガバナンス監視で使⽤するため制限できない ● KMS ○ リージョン横断で暗号化キーを管理するために制限できない ● S3 のグローバル操作 ○ バケット⼀覧表⽰など実施するために制限できない 設定 (SCP) を⾒てみよう 16

Slide 17

Slide 17 text

● NotAction に記載されている(=制限されていない)サービス/アクション、多くない? と思いましたよね ● しかし少し考えてみれば、制限するのは難しいか…と思うサービスが多いです 例: ● IAM、CloudFront、Route53 など ○ グローバルサービスのためリージョン制限できない ● Organizations、SSO ○ 組織管理に使⽤するためリージョン制限できない ● Config、CloudTrail ○ CT がガバナンス監視で使⽤するため制限できない ● KMS ○ リージョン横断で暗号化キーを管理するために制限できない ● S3 のグローバル操作 ○ バケット⼀覧表⽰など実施するために制限できない 設定 (SCP) を⾒てみよう 17 IAM のすべてのアクションが許可されているってことは… ⼀般ユーザーでもアクセスキー払い出しが 可能ってことか… 理由は理解できるけど、良い状態とは⾔い難いな…

Slide 18

Slide 18 text

よりセキュアにするには

Slide 19

Slide 19 text

よりセキュアにするには 19 ● SCP でアプローチできるか? ○ 「AWS Control Tower 管理対象リソースを変更または削除しないでください」 という注意書きがあるため (※1)、リージョン拒否設定の SCP の変更は推奨さ れない ○ カスタム SCP でグローバルサービスを制限してしまうと、Control Tower の挙 動に悪影響を及ぼす可能性がある ⇒ CT 環境下において、グローバルサービスを SCP で制限するのは適切ではなさそう ※1 How AWS Control Tower works - AWS Control Tower

Slide 20

Slide 20 text

よりセキュアにするには 20 ● SCP 以外のアプローチ ○ ⼀般ユーザーに対しては、最⼩権限の付与を実施 ○ 例:管理者/特権ユーザーのみに IAM 操作権限を付与し、 管理者/特権ユーザー以外には IAM 操作の権限を付与しない   (閲覧権限のみ付与する等) ⇒ CT はあくまで「ガードレール(予防的統制)」であるため、細かい権限制御は   IAM ポリシー側で実装することで、よりセキュアな AWS 環境を実装

Slide 21

Slide 21 text

まとめ

Slide 22

Slide 22 text

まとめ 22 ● CTのリージョン拒否設定は、どのユーザーでも多くのグローバルサービスが実⾏ できるようになっている ○ (グローバルサービスをデプロイしたりするから当たり前なのですが) ● リージョン拒否設定の対象外となっているグローバルサービスには IAM などセ キュリティを意識する必要があるサービスも含まれている ● 管理者/特権ユーザー以外に対しては最⼩限の権限だけを付与して、意図しない広 い権限を与えないように注意しましょう!

Slide 23

Slide 23 text

ありがとうございました!

Slide 24

Slide 24 text

No content