Upgrade to Pro — share decks privately, control downloads, hide ads and more …

クラウド食堂 #4 ~AWSカテゴリ指定LT会~ AWS Control Tower のリージ...

Avatar for いたくら いたくら
September 17, 2025
93

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

クラウド食堂 #4 ~AWSカテゴリ指定LT会~
AWS Control Tower のリージョン拒否設定を深堀してみた
https://cloud-shokudo.connpass.com/event/359494/

Avatar for いたくら

いたくら

September 17, 2025
Tweet

Transcript

  1. ⽬次 • AWS Control Tower とは • リージョン拒否設定 とは •

    設定 (SCP) を⾒てみよう ◦ よりセキュアにするには • まとめ 2
  2. AWS Control Tower とは 4 • セキュアなマルチアカウント環境を⾃動でセットアップするサービス • 主な機能は4つ ◦

    シングルサインオン ▪ IAM Identity Center を使⽤ ◦ ログ集約 ▪ CloudTrail 組織証跡、 Config レコーダーを使⽤ ◦ ガードレール ▪ コントロールを提供 ◦ AWS アカウント作成 ▪ Account Factory を提供 ※AWS Black Belt Online Seminar AWS Control Tower 基礎編 より引用
  3. リージョン拒否設定 とは 6 • Control Tower(以降 CT と表記)をセットアップする際に 「リージョン拒否設定」を有効にするか選択可能 •

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

    「CT 管理対象外のリージョンに対して、AWS サービスのアクションを禁⽌する」 という設定 どのサービス/アクションが禁⽌されるの?
  5. 設定 (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 に含まれるため)
  6. 設定 (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 に含まれるため)
  7. 設定 (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 ユーザー作成できちゃうの!?
  8. 設定 (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
  9. 設定 (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関連
  10. 設定 (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
  11. • NotAction に記載されている(=制限されていない)サービス/アクション、多くない? と思いましたよね • しかし少し考えてみれば、制限するのは難しいか…と思うサービスが多いです 例: • IAM、CloudFront、Route53 など

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

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

    ◦ グローバルサービスのためリージョン制限できない • Organizations、SSO ◦ 組織管理に使⽤するためリージョン制限できない • Config、CloudTrail ◦ CT がガバナンス監視で使⽤するため制限できない • KMS ◦ リージョン横断で暗号化キーを管理するために制限できない • S3 のグローバル操作 ◦ バケット⼀覧表⽰など実施するために制限できない 設定 (SCP) を⾒てみよう 17 IAM のすべてのアクションが許可されているってことは… ⼀般ユーザーでもアクセスキー払い出しが 可能ってことか… 理由は理解できるけど、良い状態とは⾔い難いな…
  14. よりセキュアにするには 19 • SCP でアプローチできるか? ◦ 「AWS Control Tower 管理対象リソースを変更または削除しないでください」

    という注意書きがあるため (※1)、リージョン拒否設定の SCP の変更は推奨さ れない ◦ カスタム SCP でグローバルサービスを制限してしまうと、Control Tower の挙 動に悪影響を及ぼす可能性がある ⇒ CT 環境下において、グローバルサービスを SCP で制限するのは適切ではなさそう ※1 How AWS Control Tower works - AWS Control Tower
  15. よりセキュアにするには 20 • SCP 以外のアプローチ ◦ ⼀般ユーザーに対しては、最⼩権限の付与を実施 ◦ 例:管理者/特権ユーザーのみに IAM

    操作権限を付与し、 管理者/特権ユーザー以外には IAM 操作の権限を付与しない   (閲覧権限のみ付与する等) ⇒ CT はあくまで「ガードレール(予防的統制)」であるため、細かい権限制御は   IAM ポリシー側で実装することで、よりセキュアな AWS 環境を実装
  16. まとめ 22 • CTのリージョン拒否設定は、どのユーザーでも多くのグローバルサービスが実⾏ できるようになっている ◦ (グローバルサービスをデプロイしたりするから当たり前なのですが) • リージョン拒否設定の対象外となっているグローバルサービスには IAM

    などセ キュリティを意識する必要があるサービスも含まれている • 管理者/特権ユーザー以外に対しては最⼩限の権限だけを付与して、意図しない広 い権限を与えないように注意しましょう!