AWS Organizationsは何ができる?アカウント管理を効率化する仕組みを解説
AWSでは開発環境・ステージング環境・本番環境など、用途ごとにアカウントを分けるマルチアカウントでの運用を推奨しています。マルチアカウント化することでセキュリティやリソースの分離、課金管理、トラブル発生時の影響範囲の縮小などさまざまなメリットを得ることができる一方で、複数のアカウントをどのように管理していくかが大きな課題となります。その際に欠かせないサービスが、複数アカウントの一元管理ができる「AWS Organizations」です。
ここではAWS Organizationsについて、サービスの概要から仕組み、ユースケース、設定手順までをわかりやすく解説します。
INDEX[非表示]
- 1.AWS Organizationsでできること
- 1.1.複数のAWSアカウントの一元管理
- 1.2.新規アカウントの作成
- 1.3.請求・使用状況の一元管理
- 1.4.アカウント間でのリソースの共有
- 2.AWS Organizationsの仕組み
- 2.1.AWS Organizationsを構成する主な要素
- 2.1.1.組織
- 2.1.2.Organizational Unit(OU)
- 2.1.3.管理ルート
- 2.1.4.管理アカウント
- 2.1.5.メンバーアカウント
- 2.1.6.サービスコントロールポリシー(SCP)
- 3.AWS Organizationsのユースケース
- 4.AWS OrganizationsとIAMの違い
- 5.AWS Organizationsの料金
- 6.AWS Organizationsの設定手順
- 6.1.組織の作成
- 6.2.既存アカウントの招待
- 6.3.メンバーアカウントの新規作成
- 6.4.組織単位(OU)の作成
- 6.5.サービスコントロールポリシー(SCP)の作成
- 6.6.サービスコントロールポリシー(SCP)のアタッチ
- 7.AWS Organizationsを利用する際の注意点
- 8.まとめ
>>AWSのアカウント管理に関するお悩み・ご相談はこちら
AWS Organizationsとは?
AWS Organizationsは、複数のAWSアカウントをグループ化し組織として集中的に管理できるAWSのサービスです。
組織として統合したAWSアカウントは、組織全体の管理権限を持つ「管理アカウント(親アカウント)」とそれ以外の「メンバーアカウント(子アカウント)」に分かれます。管理アカウントは1つの組織に1つのみ存在し、グループごとにポリシー設定や請求管理をおこなうことができます。
AWS Organizationsでできること
AWS Organizationsを活用すると何ができるのか、どのように役立つかを具体的にご紹介していきます。
複数のAWSアカウントの一元管理
冒頭で記載したとおり、AWS Organizationsは複数のAWSアカウントをグループ化して一元管理することができます。
作成したグループはOrganizational Unit(OU)と呼ばれ、OUごとにサービスコントロールポリシー(SCP)を設定することで一元的なアカウント制御が可能になります。これにより1つ1つのアカウントを個別に管理する手間が省け、管理工数を大きく削減できます。各アカウントの設定状況は管理アカウントから簡単に確認することができます。
OU、SCPについてはこの記事の「AWS Organizationsを構成する主な要素」でも詳しく解説しています。
新規アカウントの作成
通常、AWSアカウントを新規作成する際は連絡先やクレジットカード情報の登録、SMSや音声電話による各種認証といった手順を踏む必要がありますが、AWS Organizationsを用いればメールアドレスのみで簡単に新規アカウントを作成できます。作成したアカウントは自動的に組織のメンバーアカウントとなるため、所属するOUを指定すれば既存のAWSアカウントと同様のポリシーを適用することも容易です。
また、別組織に属している既存のメンバーアカウントを自分の組織に招待することもできます。
請求・使用状況の一元管理
本来、AWSの利用料はアカウントごとに請求されますが、AWS Organizationsを用いると組織傘下のアカウントの請求を管理アカウントへまとめることができます。個別の処理が不要になり経理負担を削減できるほか、S3などのボリュームディスカウントが用意されているサービスには組織単位での利用量が適用されます。そのため単一アカウントよりもディカウント適用されやすく、費用面でもメリットが期待できます。
また、各アカウントの使用状況は管理アカウントから個別に確認できるため、アカウント単位での予実確認なども容易におこなえます。
アカウント間でのリソースの共有
AWSアカウントのリソースを任意のアカウントと共有できる機能を持つAWS Resource Access Manager(AWS RAM)を用いる際、AWS Organizationsを使用していれば組織全体やOU指定でのリソース共有が可能になります。これによりアカウントごとにリソースを管理する必要がなくなり、運用工数を削減できます。
共有できるリソースタイプはAWSのユーザーガイドをご参照ください。
AWS Organizationsの仕組み
上述してきたとおり、AWS Organizationsは管理アカウントを親として組織内のメンバーアカウントをグループ化し、それぞれにポリシーを適用することで組織全体・OU・アカウント単位での統制を実現します。関連する構成要素や機能を詳しく解説していきます。
AWS Organizationsを構成する主な要素
次の図は5つのAWSアカウントで構成された組織の一例です。4つのOUに分類されており、複数のポリシーが適用されています。
この構成を参照しながら、AWS Organizationsを使用するにあたり理解しておきたい主な要素を解説していきます。
参考:AWS「AWS Organizations の用語と概念」
組織
AWS Organizationsで一元管理する対象全体を指します。
Organizational Unit(OU)
組織内で管理するAWSアカウントのグループを指します。OUは他のOUに含むこともでき、ツリーのように階層化して管理することができます。
組織……企業全体、OU……部署単位のような切り分けで管理されているケースも多いです。
管理ルート
組織階層の開始点を指します。最上部にルートがあり、その下にOUが連なっていくイメージです。ルートにポリシーを適用した場合、組織内のすべてのOUとアカウントにそのポリシーが適用されます。
ルートは1つの組織につき1つのみ持つことができ、組織を作成した際に自動的に作成されるようになっています。
管理アカウント
冒頭で説明したとおり、管理アカウントは1つの組織に1つのみ存在し、管理アカウントを他のアカウントに変更することはできません。マスターアカウントあるいは親アカウントとも呼ばれます。
AWSのユーザーガイドでは主に以下の点が、できることとしてあげられています。
- 組織にアカウントを作成する
- 組織に他の既存のアカウントを招待する
- 組織からアカウントを削除する
- 委任管理者アカウントを指定する
- 招待を管理する
- 組織内のルート、OU、アカウントにポリシーを適用する
その他、組織内のすべてのアカウントで発生した料金の一括請求管理も管理アカウントでおこなえます。
メンバーアカウント
組織に所属するアカウントのうち、管理アカウント以外はすべてメンバーアカウントとなります。別の組織のメンバーアカウントを自分の組織に招待することもできますが、1つのアカウントが組織のメンバーになれるのは一度につき1つのみとなります。同時に複数の組織に所属することはできません。
サービスコントロールポリシー(SCP)
SCPは組織のアクセス権限管理に使用できる組織ポリシーの一種です。組織内のアカウントが利用できるAWSサービスとアクションを一元的に制御することができます。階層の上位OUにポリシーを設定すると、その配下にあるすべてのOUやアカウントにも同様のポリシーが適用されます。
AWS Organizationsのユースケース
AWS Organizationsを利用することで課題解決が期待できるケースをいくつかご紹介します。
複数部署でAWSを利用しており、セキュリティレベルが統一できていないケース
特定の基準でアカウントを分けるマルチアカウント戦略にともない、複数部署で個々にAWSを利用していると、アカウント管理が部署ごとになってしまい企業全体としてのセキュリティ統制が煩雑になるケースがあります。
各部署の設定を個別に把握して管理しようとすると非常に手間がかかりますが、AWS Organizationsを用いてSCPを適用すれば、「各アカウント共通してやってはいけないこと」などをアカウント横断で一括制御することができます。
複数のAWSアカウントのログを集中管理したいケース
「いつ誰が何をしたのか」をログ(証跡)として記録することができるサービス「AWS CloudTrail」は、AWS Organizationsとの連携が可能です。連携することで「組織の証跡」を作成でき、組織内の全アカウントのログを集中管理できるようになります。
情報漏洩対策においてもログの取得は大変重要です。AWS Organizationsの活用でログの取得漏れといったクリティカルなミスを回避することができます。
AWS OrganizationsとIAMの違い
IAMとは「AWS Identity and Access Managment」のことで、AWSの各サービスやリソースへのアクセス許可を細かく一元管理できるサービスです。この説明だけを見ると「Organizationsと何が違うの?」と感じる方もいるかもしれません。2つのサービス内容を簡単にまとめると以下のようになります。
- Organizations…AWSアカウント単位での権限設定
- IAM…AWSアカウント内部の権限設定
前述してきたようにOrganizationsは複数のAWSアカウントの一元管理が目的ですが、IAMの管理対象はAWSアカウント内に作成したユーザーであり、Organizationsよりもさらに細かい階層での権限管理となります。Organizations のほうが上位階層での制御となるため、OrganizationsのSCPで利用を制限したサービスは、たとえIAMポリシーでは制限していなくても利用できないことになります。
アカウント単位での大まかな制御はOrganizationsのポリシーで、特定のユーザーに対するより細かな制御はIAMのポリシーで設定……というように、2つのサービスを組み合わせることでより適切な権限管理の実現が可能です。
AWS Organizationsの料金
AWS OrganizationsはAWSユーザーであれば無料で利用することができます。追加料金もかからないため、AWSアカウントを複数管理している場合は導入することをおすすめします。
AWS Organizationsの設定手順
実際にAWS Organizationsの利用を開始する手順を解説していきます。
ここでは管理アカウントとなるAWSアカウントをあらかじめ作成していることが前提となります。
組織の作成
管理者となるアカウントでAWSにサインインし、マネジメントコンソールからAWS Organizationsを選択します。起動後、概要ページで「組織を作成する」を選択すると、AWSによって組織が作成されます。
AWSアカウントのメールアドレス認証が未実施の場合は、このタイミングでアカウントに紐づいたアドレスへ自動で検証用メールが届くので、確認して承認しましょう。
既存アカウントの招待
組織が作成されるとメンバーアカウントの入力が可能になります。
既存アカウントを自分の組織に招待する場合は、AWSアカウントページから「AWSアカウントの追加」を選択→「既存のAWSアカウントを招待する」を選択します。招待するアカウントの所有者のメールアドレス、あるいはAWSアカウントIDがわかっていればそちらを入力します。招待メールに含むメッセージをこの画面で入力できるので、あわせて入力します。
入力完了後に「招待の送信」を選択すればアカウント所有者へ招待メッセージが送信されるので、確認を依頼しましょう。
メンバーアカウントの新規作成
アカウントを新たに作成する場合は、「AWSアカウントの追加」を選択後に「AWSアカウントを作成」を選択します。アカウント名やメールアドレスを求められるのでそれぞれ入力し、ボックス下部にある「作成」をクリックします。
IAMロール名には独自の名前を付けられるほか、空欄でもデフォルトのロール名が自動で割り当てられます。
ページを更新してAWSアカウントに新しいアカウントが表示されれば作成は完了です(反映されるまで少し時間がかかる場合があります)。
組織単位(OU)の作成
次にOUを作成し、メンバーアカウントを配置していきます。
AWSアカウントページのアクションメニューから「組織単位」→「新規作成」を選択します。
「ルートに組織単位を作成」ページが開くので、「組織単位名」に任意のOU名称を入力し「作成」をクリックします。
これでOUが作成されたので、次にメンバーアカウントを移動させます。
今度は移動対象のメンバーアカウントを選択した状態でアクションメニューから「AWSアカウント」→「移動」を選択します。移動先となるOUのチェックボックスを選択し、「AWSアカウントを移動」をクリックします。
組織ページで該当のOU配下にメンバーアカウントが移動していることが確認できれば完了です。
サービスコントロールポリシー(SCP)の作成
次にルートやOUに適用するためのSCPを作成します。
AWSアカウントページの左サイドメニューから「ポリシー」→「サービスコントロールポリシー」を選択します。
次に「サービスコントロールポリシーを有効にする」を選択し、「ポリシーを作成」をクリックすると作成画面に移ります。ポリシー名、ポリシーの説明、権限設定を入力する必要があるので、自社に適切なポリシーを検討して設定しましょう。既存のポリシーがあれば流用も可能です。
ポリシーの記述はJSON形式となります。
サービスコントロールポリシー(SCP)のアタッチ
SCPの作成が完了したら「サービスコントロールポリシー」ページのアクションメニューから「ポリシーのアタッチ」を選択し、該当のOUのチェックボックスを選択し、「ポリシーのアタッチ」をクリックします。
これで選択したOUに対してポリシーが適用されるようになります。
以上が組織の作成からSCPの適用までの一通りの設定手順となります。
AWSのユーザーガイドではチュートリアルも公開されているので、参考にしながら一通り実践してみるのもおすすめです。
参考:AWS「AWS organizationsのチュートリアル」
AWS Organizationsを利用する際の注意点
AWS Organizationsはうまく活用すれば非常に効率的かつ便利なサービスですが、アカウントに対するポリシー適用が強力なぶん、設定ミスが起こった場合に影響範囲がかなり大きくなることが予想されます。そのため、どのようにOUを設計し、どのようなSCPを適用させるかを適切に検討することが重要です。
企業によってポリシーや方針は異なるため、一律で適用できる型があるわけではありません。自社の状況やプロジェクトの特性を十分理解したうえで、先を見据えた運用を心がけましょう。
AWSの公式サイトではベストプラクティスも掲載されています。こちらもぜひご参考ください。
参考:AWS「マルチアカウント管理のベストプラクティス」
設計に不安が残るようであれば、AWSの専門家に一度相談してみることをおすすめします。AWSに精通した経験豊富なメンバーが丁寧なヒアリングのもと、適切な運用管理をサポートします。
>>【AWSに精通した専門チーム】
アカウント管理にまつわるお悩みはエヌアイデイへお気軽にご相談ください
まとめ
ここではAWS Organizationsのサービス概要からできること、ユースケース、設定手順までを一通りご紹介してきました。マルチアカウント運用を推進していくにあたっては必要不可欠なサービスとなるため、利用メリットが十分に伝わっていたら幸いです。
AWS Organizationsをうまく活用して、効率的かつ安全なAWSアカウントの運用を目指していきましょう。