AWS Organizations入門:GCPとAzureの比較で学ぶマルチアカウント設計

AWS Organizations
AWS Organizations

AWSの利用が複数のシステムや部門へ広がると、一つのアカウントに権限、ログ、請求を集めたままでは、誰が何を管理するのか分かりにくくなります。

AWS Organizationsは、複数のAWSアカウントを組織としてまとめ、階層とポリシーを使って管理するためのサービスです。

設計では、現在の組織図をそのまま写すのではなく、責任範囲、変更の影響、監査、費用管理の単位を基準にアカウントを分けます。本記事では、その考え方をGoogle CloudとAzureの階層に照らして整理します。

最初に押さえる設計原則

  • 管理用アカウントと業務システムを動かすアカウントを分ける
  • 本番環境と開発、検証環境を分け、変更の影響範囲を限定する
  • SCPは権限を与える仕組みではなく、メンバーアカウントで利用できる権限の上限として扱う
  • ログ、セキュリティ監視、請求の集約先と担当者を先に決める
  • OUは人事組織よりも、共通の管理ルールと責任境界に合わせて設計する

AWS Organizationsの構成要素

AWS Organizationsでは、組織全体の階層を作り、AWSアカウントを適切な位置へ配置します。ここでいう「Root」はOrganizations階層の最上位ノードであり、各AWSアカウントのrootユーザーとは別の概念です。

AWS Organizationsの主な構成要素
構成要素 役割 設計時の注意
Organization 複数のAWSアカウントを束ねる組織全体 SCPを使うには、組織で全機能を有効にする必要があります。
Management account 組織、アカウント、請求を管理するアカウント SCPの制限対象ではありません。通常の業務ワークロードを置かず、アクセスを厳しく管理します。
Member account 組織に参加する通常のAWSアカウント 業務システム、環境、責任範囲などに応じて分けます。
Root OUとメンバーアカウントを含む階層の最上位 Rootに付けたSCPは配下のメンバーアカウントへ影響します。管理アカウントには適用されません。
OU 共通のルールを適用するアカウントのまとまり 組織改編のたびに作り直さずに済むよう、管理目的で分けます。

AWS Organizations自体には追加料金がありません。ただし、メンバーアカウントで利用する各AWSサービスの料金は通常どおり発生し、管理アカウント側が組織の利用分を支払います。

AWS、Google Cloud、Azureの階層を比較する

三つのクラウドには、上位の管理単位から下位へポリシーやアクセス設定を継承する考え方があります。ただし、名称が似ていても、請求、ID、ポリシー評価の仕組みまで同一ではありません。対応表は設計会話の出発点として使い、最終判断は各クラウドの仕様に基づいて行います。

三つのクラウドにおける主な管理階層の比較
設計上の役割 AWS Google Cloud Azure
組織全体の管理範囲 OrganizationとRoot Organization Microsoft Entraテナント内のRoot management group
中間のグループ OU Folder Management group
ワークロードの主な分離単位 Account Project Subscription
日常的なアクセス制御 IAMポリシー IAMのAllow/Denyポリシー Azure RBAC
組織レベルの統制 SCPなどの組織ポリシー Organization Policy Azure Policy

AWSのアカウント、Google Cloudのプロジェクト、Azureのサブスクリプションは、いずれもワークロードを分ける主要単位として使えます。一方で、IDの所属先や請求との結び付きは異なるため、「同じもの」として機械的に置き換えることはできません。

サービス選定そのものを比較したい場合は、中小企業向けクラウド比較も判断材料になります。

SCPとIAMポリシーの違い

Service Control Policy(SCP)は、OUやメンバーアカウントで利用できる権限の上限を定める仕組みです。SCPである操作を許可しても、その操作権限が利用者へ付与されるわけではありません。

実際に操作できるのは、SCPの範囲内で、IAMポリシーなどが利用者やロールへ権限を与えている場合です。反対に、IAMポリシーが許可していても、上位のSCPで明示的に拒否されている操作は実行できません。IAMの基礎は、AWS IAMの基礎と権限設計で詳しく解説しています。

SCPで制限できない範囲

SCPはメンバーアカウントのIAMユーザー、IAMロール、rootユーザーに影響しますが、管理アカウントの操作には影響しません。サービスリンクロールなど、SCPで制限されない対象もあります。

したがって、管理アカウントをSCPだけで守る設計は成立しません。管理アカウントでは、アクセス経路、認証、監視、利用目的を別途制限します。

リージョン制限は単純な拒否ルールにしない

aws:RequestedRegionを条件に使うと、指定外リージョンの操作を制限できます。ただし、IAMやRoute 53などのグローバルサービスは、単一のエンドポイントを通じて動作する場合があります。

例外を考慮せずに全操作を拒否すると、必要な管理操作まで止めるおそれがあります。利用サービス、グローバルサービス、例外となる管理操作を洗い出し、検証用OUでテストしてから適用範囲を広げます。

責任境界からアカウントを分ける

アカウントを分ける目的は、見た目の整理ではなく、変更や障害の影響範囲を狭め、担当者と管理ルールを明確にすることです。次の問いに対する答えが異なるワークロードは、別アカウントにする候補です。

  • 誰が変更を承認し、誰が運用を担当するか
  • 本番障害が発生したとき、どこまで影響を切り離したいか
  • どのログを誰が閲覧し、どれだけ保護するか
  • 費用をどの事業、製品、環境へ割り当てるか
  • 同じセキュリティ基準と利用リージョンを適用できるか
  • ワークロードの廃止や移管を独立して判断できるか

小規模構成の例

最初から多数のOUを作る必要はありません。たとえば、次の役割を基準に必要なアカウントから分離します。これは固定の正解ではなく、責任と運用を整理するための出発点です。

小規模なAWS組織で検討しやすい役割
役割 主な用途
management Organizationsと請求の管理。業務ワークロードは置かない。
security セキュリティ監視と必要な管理機能。
log-archive 監査ログの集約と保管。
shared-services ネットワークや共通の開発、運用基盤。
prod 本番ワークロード。
nonprod 開発、検証ワークロード。

システムやチームが増えたら、prodとnonprodを製品単位に分けます。同じSCPを適用するアカウントをOUにまとめれば、ルールの重複を減らせます。

ログ、セキュリティ、請求を設計する

ログは操作元と保管先を分ける

操作されるアカウントとログの保管先が同じでは、誤操作や侵害の影響が記録へ及ぶ可能性があります。ログ集約用アカウントを分け、収集対象、閲覧権限、保持方針、異常時の通知先を決めます。

API操作の記録についてはAWS CloudTrailの証跡設計、構成変更の追跡についてはAWS Configによる継続的な確認が参考になります。

請求の集約と費用配分を分けて考える

AWS Organizationsでは複数アカウントの請求と支払いを集約できます。ただし、請求書がOU構造をそのまま表すわけではありません。

費用を製品や部門へ配分するには、アカウントの用途を明確にし、必要に応じてコスト配分タグなどの管理方法を組み合わせます。アカウント名だけに頼らず、費用の確認担当と予算超過時の連絡先も決めておきます。

導入を安全に進める手順

  1. 現状を棚卸しする各アカウントの用途、責任者、環境、データ、ログ、請求先、外部連携を一覧にします。
  2. 分離する理由を決める

    本番と非本番、セキュリティ、ログ、共有基盤など、異なる管理ルールが必要な境界を特定します。

  3. 最小限のOUとアカウントを作る

    将来の完成形を一度に作らず、現在運用できる階層から始めます。

  4. SCPの目的を文章で定義する

    「誰のどの操作を、どの範囲で、なぜ制限するか」を明記してからポリシーへ落とします。

  5. 検証用OUで影響を確認する

    通常操作、緊急時の復旧、監視、デプロイ、サポート対応を試し、必要な例外を確認します。

  6. 少数のアカウントから段階的に適用する

    監査ログと問い合わせを確認しながら、対象OUを広げます。変更手順と戻し方も残します。

よくある失敗と回避策

マルチアカウント設計で起こりやすい失敗
失敗 起きる問題 回避策
OUを人事組織どおりに作る 組織改編のたびにアカウント移動とポリシー再評価が必要になる。 共通ルール、責任、環境の違いを基準にする。
管理アカウントで業務を動かす SCPで管理アカウントを制限できず、強い権限と日常作業が混在する。 管理用途に限定し、業務ワークロードをメンバーアカウントへ置く。
SCPを権限付与に使う SCPで許可したのに操作できないという誤解が生じる。 SCPは上限、IAMポリシーは権限付与と役割を分ける。
広い拒否をRootへ直ちに適用する 必要な管理操作やデプロイまで止まる可能性がある。 検証用OU、少数アカウント、段階展開の順で確認する。
アカウントを分けただけで監査が完了したと考える ログの収集漏れや閲覧権限の不備を見落とす。 収集、保管、監視、通知、定期確認を運用手順にする。

設計レビューで確認する項目

  • 管理アカウントに通常の業務ワークロードがない
  • 各アカウントの目的と責任者を説明できる
  • 本番環境と開発、検証環境の影響範囲が分かれている
  • OUごとに適用するルールと例外の理由が文書化されている
  • SCPとIAMポリシーの役割を運用担当者が区別できる
  • ログの送信先、閲覧者、保持方針、通知先が決まっている
  • 費用を確認する単位と担当者が決まっている
  • ポリシー変更の検証手順と戻し方がある
  • Google CloudやAzureにも同じ統制目的を適用する場合、各クラウド固有の差を確認している

まとめ

AWS Organizationsの設計では、アカウント数やOUの見た目よりも、責任、変更の影響、ログ、請求、適用するルールを明確にすることが先です。

SCPはメンバーアカウントの権限上限を定めますが、権限そのものを与えず、管理アカウントも制限しません。この境界を理解したうえで、小さなOUから検証し、運用記録を確認しながら広げると、統制と開発速度を両立しやすくなります。

Google CloudやAzureでも、上位の管理範囲、中間のグループ、ワークロードの分離単位という順に整理できます。ただし、対応関係は設計の補助線です。権限、請求、IDの違いは各クラウドの公式仕様で確かめます。

参考資料

この記事に関連する株式会社greedenの取り組み

複数クラウドの階層や権限設計は、サービス名の対応表だけでは決められません。株式会社greedenは、要件整理から設計、実装、テスト、保守運用まで一気通貫で支援し、クラウド移行を含むWebシステム開発を段階的に進めます。

投稿者 greeden

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)