Amazon Web Services ブログ
AWS Organizations と AWS Control Tower を使ったマルチアカウント管理
これは、マルチアカウント管理に関するシリーズの 3 番目の投稿です。最初の記事「クラウドを展開する上で確立すべきガバナンス、リスク、コンプライアンス」では、クラウド環境での管理に関する設計上の考慮事項に焦点を当てています。2 番目の記事「AWS Organizations における組織単位のベストプラクティス」では、組織の作成時に運用可能な組織単位 (OU) 構造のガイダンスを提供しています。
お客様は、ワークロードの構築やデプロイを行う際に、セキュリティ、アクセス、請求の境界を設けるために、複数のアカウントを使用してリソースを分離することがあります。この方法には次のようなメリットがあります。
- さまざまな要件を伴う迅速なイノベーション: アカウントはチーム、ワークロード、または製品に割り当てることができます。個別のアカウントは、カスタム環境を提供し、チームごとに異なるセキュリティニーズに対応できます。
- 請求の簡素化: 複数のアカウントを使用すると、AWS コストの割り当て方法が簡素化されます。これらの情報を使用して、AWS の料金に責任があるプロジェクトまたはサービスを特定できます。
- 柔軟なセキュリティ制御: 特定のアカウントが HIPAA や PCI DSS などのコンプライアンス要件を満たしていることを確認するグループ化のメカニズムを作成できます。
- ビジネスプロセスへの容易な適応: 複数のアカウントを使用することで、ビジネスプロセスや要件のニーズを反映した方法で IT インフラストラクチャをセットアップできます。
1 つの AWS アカウントの利用から複数のアカウントの利用へとスケールすることについて、AWS は組織内のクラウド環境を管理するのに役立つサービスとツールを提供しています。組織は、1つの管理アカウントによって管理される AWS アカウントのグループを定義します。
この記事では、 AWS でランディングゾーンとも呼ばれる、実践的なマルチアカウント環境を AWS 上に構築する方法を説明します。具体的には、マルチアカウント管理で使用する AWS サービスについて説明した後、権限管理、セキュリティ、アカウントプロビジョニングの実装に関する推奨事項を紹介します。
マルチアカウント環境の構築を支援するサービス
マルチアカウント環境の構築と管理に使用する AWS サービスを以下に示します。
AWS Organizations では、複数のアカウントを一元的に管理するための機能を提供します。組織内のアカウントの作成と整理、コストの統合、カスタム環境へのポリシーの適用が可能になります。他の AWS サービスと組み合わせることで、環境の保護、リソースの作成と共有、アクセス権限の一元管理を行うことができます。
マネジメントコンソール、SDK、または AWS CLI を使用して組織を作成することで、AWS Organizations の利用を開始できます。その後、同様の手段で、アカウントの追加や他の AWS サービスが AWS Organizations と連携するための設定を行います。AWS Organizations は料金がかかりません。AWS Organizations と統合されているサービスの利用料は、AWS Organizations を介さずに個々のアカウントで有効化した場合と同程度となります。AWS Organizations を使用すると、環境を構築し、サービスを段階的に採用できる柔軟性が得られます。
AWS Control Tower は、マルチアカウント管理の環境を構築するのに必要な多くの手順を自動化します。事前に構築されたマルチアカウント環境のフレームワークが提供されているため、数回のクリックで環境を構築できます。AWS Control Tower は、マルチアカウント環境の設定や統制に関わる AWS サービス群を抽象化して提供します。たとえば、AWS Control Tower は事前に定義されたルールに則って OU、AWS アカウントを自動作成します。それらのアカウント上にはマルチアカウント管理に役立つリソースが自動で作成され、マルチアカウント環境の統制を実現するガードレールと呼ばれるルール群も適用されます。これは、AWS Organizations、AWS Service Catalog、AWS Config によって構成されています。さらに、1 つのダッシュボードから AWS 環境を可視化できます。AWS Control Tower の使用には料金がかかりませんが、AWS Control Tower で環境を管理するために使用される AWS サービス (AWS Service Catalog、AWS CloudTrail、AWS Config など) に関連する料金が発生します。
新しいマルチアカウント環境の構築または移行を検討している場合は、AWS Control Tower と AWS Organizations の2つのサービスについて理解しておくことをお勧めします。AWS Control Tower は、他の AWS サービスを使用してプロビジョニング手順の多くを自動化および簡素化し、クラウド対応のガバナンスモデルを提供することで、時間と労力を節約します。AWS Control Tower が要件を満たしていない場合は、AWS Organizations を使用して環境を段階的に構築し、お客様の設計に基づいて機能やサービスを採用できます。AWS Control Tower と AWS Organizations の2つのサービスは相互運用が可能です。AWS Control Tower を使用するお客様は、AWS Organizations の機能を使用して、サービスの有効化を一元的に実行したり、独自のサービスコントロールポリシー (SCP) を適用できます。同様に、AWS Organizations を使用しているお客様は、AWS Control Tower で管理する環境にアカウントまたは組織単位 (OU) を招待することで、AWS Control Tower のガバナンスを拡張できます。
以降のセクションでは、マルチアカウント環境における代表的な3つの関心事: 権限管理、セキュリティ、アカウントプロビジョニングの実装例を紹介します。
権限管理
ワークロードやサービスの分離という観点において、アカウントはセキュリティの境界線となります。効果的なマルチアカウント環境には、必要なユーザーにアクセスの権限を提供し、そうでないユーザーのアクセスを制限する権限管理の戦略が含まれます。
AWS Single Sign-On (AWS SSO) は、AWS Organizations で管理されるアカウントや、アカウント内のアプリケーションに対するアクセス権限の設定を容易にするサービスです。AWS SSO を使用するには、AWS Organizations の組織を作成した後、管理アカウントのコンソールにサインインして SSO を有効にします。次に、アクセスが必要な既存のユーザーおよびグループを AWS SSO が認識できるように、ID ソースを選択できます。AWS SSO はユーザーとグループを管理するために、クラウドネイティブなアイデンティティストアをデフォルトで提供しますが、Okta、Microsoft、Azure Active Directory などの既存の外部 ID ソースに接続することもできます。アイデンティティストアに接続した後、ユーザーグループを作成するか、アカウントをユーザーに割り当てることによって、組織内のアカウントへの SSO アクセスを設定できます。
AWS SSO は、アカウント間でアクセスの境界を提供します。ただし、クラウド環境でユーザーが何を実行できるかを規定するガイダンスを企業内で持っているケースは多くあります。通常、このような仕組みを迅速に拡張してゆくためには、ガイドラインをプログラミングによって実装することが重要です。これに対して、AWS は SCP を提供しています。SCP を使用すると、アカウントで実行できるサービスアクションに対して、高度にカスタマイズ可能なプログラムの境界を提供できます。たとえば、特定の AWS リージョンでのみ運用する必要がある場合は、承認された AWS リージョンにのみリソースがデプロイされるようにする SCP を設定できます。機密データが外部に共有されないようにするには、S3 バケットポリシーをプライベートに設定し、バケットポリシーの変更を防止する SCP を適用します。個々のアカウントや OU 単位、または組織全体に適用することが可能です。
AWS Control Tower を使用すると、AWS SSO が自動でセットアップされます。また、環境の管理を支援するために AWS サービスのための権限セット、AWSServiceCatalogAdminFullAccess や AWSOrganizationsFullAccess を作成します。さらに、AWSSecurityAuditors や AWSLogArchiveViewers などのユーザーグループも作成します。これらのユーザーグループは、セキュリティ管理や監査などのユーザーのロールに応じた権限の割り当てに使用でき、必要なアカウントやリソースへのアクセス管理を実現します。
クラウドでのアクションを管理するために、AWS Control Tower は AWS 環境の継続的なガバナンスを提供する高レベルのルールである、ガードレールを設定します。ガードレールには、次の 2 つのタイプがあります。
- 予防ガードレールは、ポリシーに基づいてアクションを制限する SCP です。
- 検出ガードレールは、AWS Lambda とペアになっている AWS Config 検出ルールで、非準拠のリソースを検出し、AWS Control Tower ダッシュボードによるアラートを提供します。
一部のガードレールは自動的に適用されますが、AWS Control Tower では、お客様が選択して適用できる、推奨ガードレールも提供しています。
セキュリティ
マルチアカウント環境を作成すると、多くのセキュリティ上の利点があります。アカウントは、あるワークロードで必要な一連のリソースを持つコンテナとして機能します。セキュリティ上の問題やリソースの誤った構成が発生した場合、影響範囲は 1 つのアカウントに留まります。AWS は、中央チームがセキュリティ基準を管理し、一貫して実施できるようにする機能を提供します。
最初のステップは、セキュリティチームが使用するアカウント群のための、専用の OU を作成することです。推奨されるセキュリティアカウントとその目的の詳細については、AWS Organizations における組織単位のベストプラクティスのブログ記事を参照してください。
ワークロード、サービス、サポートデータなどに該当するセキュリティおよび監査ツールをホストするセキュリティツール用のアカウントを作成することをお勧めします。下記の AWS サービスは委任管理者を設定する機能を提供しています。この機能により、組織内で指定されたアカウントが、セキュリティおよび監査に関わる AWS サービスを一元的に管理することが可能です。
- AWS Audit Manager は、クラウドサービス利用を監査するのに役立つ証拠の継続的な収集を自動化します。
- AWS Config は、誤って構成されたリソースを検出し、対応策の推奨事項を提供します。
- Amazon GuardDuty は、AWS 環境における予期せぬ潜在的で不正なアクティビティや悪意のあるアクティビティを検出します。
- Amazon Macie は、お客様のコンテンツを継続的に評価し、ビジネスクリティカルなデータや機密データを特定します。
- AWS Trusted Advisor は、安定性の向上、コストの節約、またはセキュリティギャップの解消に役立つ機会を特定します。
- AWS IAM Access Analyzer は、外部エンティティと共有されているリソースまたはデータを特定するのに役立ちます。
- AWS Securty Hub は、組織全体のセキュリティチェックと推奨事項を提供します。
アカウントを設定してサービスを委任すると、セキュリティチームまたはユーザーは組織全体のセキュリティイベントを一元的に表示および管理できます。
AWS Control Tower を使用して組織をセットアップすると、セキュリティ OU の作成、AWS CloudTrail の有効化、2つの AWS アカウント作成が実施されます。作成される1つ目の AWS アカウントは AWS CloudTrail のデータを集約する LogArchive アカウントで、2つ目の AWS アカウントは監査やセキュリティオペレーションのための Audit アカウントです。
AWS Control Tower を使用して、その他の推奨セキュリティアカウントも作成できます。
セキュリティサービスをアクティブ化するには、組織の管理アカウントにアクセスして組織レベルでサービスを有効にし、AWS セキュリティサービスの管理を Audit アカウントに委任します。例については、Enabling Amazon GuardDuty in AWS Control Tower using Delegated Administrator のブログ記事を参照してください。
アカウント管理
スケールしやすい仕組みの導入にあたっては、新規アカウントの作成時に必要なオペレーションのパターンを特定することが重要です。通常、アカウントを作成した後は、アクセス許可、リソース、およびその他の構成を設定してアカウントを使用できるようにプロビジョニングする必要があります。
このプロセスを簡素化するために、AWS Organizations にはアカウントを作成するための機能があります。組織を作成したら、管理アカウントで CreateAccount
API を使用できます。この API は、提供した E メールアドレスに基づいて AWS アカウントを作成し、アカウントと請求情報を組織に関連付けます。既存の AWS アカウントを組織に参加するよう招待することもできます。
アカウントを作成または招待した後、そのアカウントの使用目的に基づいて OU に割り当てることができます。
組織内の OU は、お客様のポリシーに基づいたアカウントおよび組織の構造を編成するのに役立ちます。組織内に目的ごとの OU を作成することが可能です。たとえば、インフラストラクチャアカウントをホストするインフラストラクチャ OU、セキュリティアカウントのセキュリティ OU、AWS のサービスと機能をテストするためのサンドボックスアカウントのサンドボックス OU、ワークロードをホストするワークロード OU などです。また、各 OU にネストされた OU を作成して、テストアカウントと本番アカウントを分離することもできます。
アカウント構造の整理に加えて、OU レベルでポリシーを適用できます。たとえば、ユーザーが本番 OU で特定の変更を行わないようにする制限ポリシーを作成し、開発 OU のテストアカウントに対してより寛大なポリシーを提供できます。
アカウントを作成する際の一般的なユースケースは、新しいアカウントにリソースと権限を付与してプロビジョニングすることです。以下のサービスは AWS Organizations と統合されており、新しいアカウントを使用するための準備を整えるのに役立ちます。
- AWS Resource Access Manager (AWS RAM) は、EC2 キャパシティ予約、AWS Outposts、Amazon VPC エンドポイントなど、アカウント間でリソースを利用できるようにする機能を提供します。AWS RAM を使用してリソースを共有すると、組織内のアカウントがそれらのリソースにアクセスできます。
- AWS CloudFormation StackSets は組織全体で使用できるスタックを作成でき、適切なサービスやアクセス許可、ツールが設定済みの新しいアカウントをセットアップできます。これにより、クロスアカウント権限の設定が簡素化され、アカウントが組織に参加または組織から削除されたときに、リソースを自動的に作成および削除できるようになります。複数のスタックを管理し、スタックに 1 つの変更を加えるだけで対象アカウント群に一元的に変更を適用できます。
AWS Control Tower を有効化すると、サービスによって組織内に LogArchive と Audit の 2 つのアカウントが自動的に作成されます。これらのアカウントには AWS CloudFormation StackSets を使用して、リソースとアクセス権限を適用しています。
アカウントを追加する場合、AWS Control Tower にはアカウントの作成、および必要な初期設定を自動的に行う Account Factory という機能が用意されています。Account Factory は、新しく作成されたアカウントにリソースとロールを自動的に適用します。具体的には、まず Account Factory は AWS Organizations の CreateAccount API を使用してアカウントを作成します。次に、AWS CloudFormation StackSets を使用して、AWS CloudTrail、IAM ロール、Amazon CloudWatch Logs、ガードレール、および AWS Lambda などの、マルチアカウント管理に使用するリソースの作成および適用を行います。既存のアカウントをランディングゾーンに招待するには、AWS Control Tower に登録します。Account Factory を使用する権限を複数のユーザーに付与することが可能です。この権限は、AWS Service Catalog を使用する他の AWS アカウントと共有できます。
まとめ
このブログ記事では、複数のアカウントで AWS を管理することの利点について説明しました。また、複数のアカウントを管理する際に役立つ多くのサービスを紹介し、安全でスケーラブルなクラウド環境を管理するという目標を達成するためにこれらのサービスがどのように連携して機能するかを説明しました。より多くの先行作業が必要になるものの、あらゆる面を完全に制御した環境を AWS Organizations を使って一から構築することもできますし、AWS Control Tower の自動化機能とシンプルな UI を使用してすばやく環境を起動して実行することもできます。
マルチアカウントのベストプラクティスを実装するためには、AWS Organizations を使った環境で、各サービスがどのように有効化および管理されるかを理解することが重要です。クロスアカウントアクセスには AWS SSO が役立ちますし、セキュリティレベルの向上には、AWS セキュリティサービスが有効です。また、アカウントのプロビジョニングを簡素化するには、リソースの共有やアクセス権限に関する自動化の機能を組み合わせることが有効です。これらのサービスの利点と機能を理解することは、具体的な実装方法が違ったとしてもスケールしやすい AWS 環境の構築に役立ちます。
著者について
アンドリュー ブラックハム
アンドリュー ブラックハムは AWS Organizations のプロダクトマネージャです。彼は Amazon に7年以上勤めており、今は複数のアカウントを運用するためのベストプラクティスをお客様に伝え、スケールしやすい環境構築することに注力しています。
原文はこちら。翻訳は SA 加藤と桂井が担当しました。