コンテンツにスキップ

サービス別トピック/AWS Organizations

本サイトは Classmethod Cloud Guidebook (CCG) のデモサイトです

デモサイトのため、実際の内容と相違がある点にご留意ください。
クラスメソッドメンバーズをご契約中のお客様は下記リンクからアクセスください。
Classmethod Cloud Guidebook

はじめに

AWS Organizations は複数のAWSアカウントを統制するためのサービスです。 以下のような機能を活用できます。

  • 組織単位(OU) を使ったAWSアカウント階層化
  • サービスコントロールポリシー(SCP) を使ったアクセス制御
  • AWS Organizations 連携サービス など

img

AWS Organizations についての詳しい解説は以下ブログを参照ください。

Organizations 利用開始方法について

クラスメソッドメンバーズでは 組織管理プラン にご加入いただくことで、AWS Organizations を利用開始できます。

ご利用を希望のお客様は、メンバーズポータルよりお問い合わせください。

オススメ設計

アカウント分割方針を決定する

OUやSCPなど、Organizationsの各種設計を進める前に、まずは「どのような基準でAWSアカウントを分割するか」を方針として決めておきましょう。

方針を決めるには以下要素を理解する必要があります。

  • アカウント分離に対する理解
    • アカウント分割によりリソースやセキュリティ、コストの境界線を簡単に分けられます
  • 自組織に対する理解
    • 稼働するワークロード
    • 保有するデータの重要度
    • 求められるセキュリティレベル
    • 開発〜稼働のライフサイクル
    • 開発〜稼働でAWSアカウントにアクセスする関係者 など

これら要素を把握したうえで、自組織におけるアカウント分割方針を策定します。

組織単位(OU)構成を決定する

組織単位(Organizational Units:OU)構成を決定します。 OUは AWS Organizaions の機能で、複数のAWSアカウントを階層化するためのコンテナです。 OU単位でアクセス制御やリソース展開などの統制が可能です。

ベーシックな OU構成のサンプルを以下に示します。

OU構成サンプル

img

Security OU にアカウント横断で統制を効かせるためのAWSアカウントを配置します。 例えば以下のようなAWSアカウントです。

  • セキュリティアカウント: アカウント横断でセキュリティ運用するためのAWSアカウント
  • ログアーカイブアカウント: アカウント横断でログを集中管理するためのAWSアカウント

Workloads OU に ステージ単位 × システム単位で AWSアカウントを配置しています。

(注記) MembersDefaultOU はクラスメソッドの設定済みOUです。 このOU配下にお客様のOUを作成いただきます。

また、以下AWSブログにOU設計のベストプラクティスが記載されています。

OU自体は課金無く利用でき、後から拡張可能です。 上記のようなブログは参考にしつつ、拡張性やスモールスタートを意識して 必要最小限のOU構成から始めるのが良いでしょう。

Organizations 連携サービスを活用して、効率良く統制する

AWS Organizations は様々なAWSサービスと連携しています。

より簡単にAWSアカウント横断でAWSサービスを活用・管理できるようになります。 代表的なAWSサービスを以下に記載します。

AWSサービス Organizations連携でできるようになること 参考ブログ
AWS CloudFormation 組織全体もしくはOU単位でリソースを展開できます 【Organizations】組織単位で CloudFormation StackSetsを簡単にデプロイしてみる | DevelopersIO
AWS CloudTrail 組織全体で CloudTrail証跡を作成、集中管理できます 【Organizations】組織レベルで CloudTrailの証跡を有効化、S3バケットへ集約する | DevelopersIO
AWS Security Hub 組織全体で Security Hub を有効化、集中管理できます [アップデート]Security Hubが AWS Organizations と統合!組織内セキュリティチェック環境を簡単にセットアップ/管理できるようになりました | DevelopersIO
AWS IAM Identity Center(旧: AWS SSO) マルチアカウント環境のユーザー・アクセス管理を実現します AWS再入門ブログリレー2022 AWS Single Sign-on編 | DevelopersIO

メンバーアカウントへAWSサービスを委任して、権限を分散させる

委任先のメンバーアカウントで特定AWSサービスの組織全体の管理が可能になります。

Organizations の管理アカウントは他のメンバーアカウントを統率する、非常に権限の強いアカウントです。 最小権限の法則に従ってAWSサービスを利用する権限をメンバーアカウントへ委任します。

どのサービスを、どう委任させるかについては以下ブログが参考になります。

サービスコントロールポリシー(SCP)を活用して、予防的ガードレールを実装する

サービスコントロールポリシー (以降 SCP) は、アクセス制御の管理に使用できるポリシーの一種で、 OUまたはAWSアカウントに対してのアクセス制御を一元的に制御できます。

OUまたはアカウントに対して一元的に制御したいアクションを洗い出し、SCPを適用させます。 以下にSCPの用途として、よく使われるものをピックアップします。

用途 説明 実装例
ベースラインの保護 管理者が作成・整備したリソースを保護します ユーザーによる AWS Config の無効化またはルールの変更を禁止する | AWS Organizations
リージョン制限 使わないリージョン上でのAPI実行を拒否します [小ネタ]AWS OrganizationsのSCPで特定リージョンのみ使用できるようにする | DevelopersIO
セキュリティ向上 セキュリティベストプラクティスを強制します 【小ネタ】暗号化していない RDS DBの作成を拒否するポリシー | DevelopersIO

オススメ運用

新規メンバーアカウントの初期セットアップを効率化、自動化する

組織の管理者は、新規作成したAWSアカウントそれぞれに対して、適切なベースラインを作成する必要があります。 ベースライン作成の効率化、自動化は管理者の運用負荷軽減に繋がります。

以下に効率化、自動化できる技術を記載します。

サービス 使う機能/ソリューション 備考
AWS CLI(SDK) AssumeRole スイッチロールして構築する
AWS Step Functions,
AWS Lambda
Step Functions ワークフロー,
Lambda関数
アカウント作成イベントをトリガーに Step Functions や Lambda を起動する
AWS CloudFormation StackSets 複数アカウント/リージョンにスタックを展開する
AWS CDK Baseline Environment on AWS(BLEA) セキュアなベースラインを迅速に展開するCDKテンプレート
Terraform alias: Multiple Provider Configurations 複数のAWSプロバイダーを作成してクロスアカウントアクセス
AWS Control Tower Account Factory Customization(AFC),
Account Factory for Terraform (AFT)
CloudFormation や Terraform を使ってメンバーアカウントをカスタマイズ

まずは AWS CLI(SDK) や CloudFormationテンプレートを使って、初期設定を効率化することをおすすめします。

自動化では CloudFormation StackSets が手軽に扱えます。 共通して作成するリソースをテンプレート化して、OUレベルで展開します。 StackSet の作成方法については以下を参照ください。

検証用のOrganizations環境を用意する

追加でOrganizations環境を用意して、組織全体に関わる設定の検証として利用することを推奨します。

例えば以下のような項目です。これらは1つの組織内では事前にテストができない項目です。