2021/03/24

AWSで複数アカウント管理をするための最適な方法について解説

 
  

AWSとは?


AWSとはAmazon Web Servicesの略で、Amazonが提供しているクラウドコンピューティングサービスの総称のことです。

クラウドコンピューティングとは、サーバーやストレージ、データベース、ソフトウェアのようなサービスをインターネットを通じて利用することです。

インターネットに接続する環境があれば、サーバーやストレージ、データベース、ソフトウェアなど必要なサービスを必要な分だけ必要な時に利用できます。

AWSアカウントを複数に分ける理由


AWSアカウントは3種類の基準で分けることで効率的に運用することができます。そもそもAWSアカウントを複数に分けるというのは、1つの組織でAWSアカウントを複数使うという意味です。

3種類の基準とは、部署単位、コスト単位、環境単位の3種類です。

部署単位でアカウントを複数に分けることで、管理がしやすくなります。また各部署で求める機能が異なる場合、全体で統一の基準で管理してしまうことで各部署の運営を阻害してしまう要因にもなるでしょう。

コスト単位でアカウントを複数に分けることで、コストの可視化が容易になります。割り振られたアカウント毎にコスト管理が可能なので、それぞれにコストの責任を持たせることができます。

テスト環境や本番環境でアカウントを複数に分けることで、開発者が本番環境にアクセスしてオペレーションミスを起こしてしまうリスクなどを低減することができます。またテスト環境では雑な管理をしていても本番環境には影響しないので、開発に集中できます。

複数アカウントの管理方法


AWSには複数アカウントを一元管理する方法が用意されています。

規模の大きい組織になるとAWSアカウント数が100を超えることもありますが、そうなると手動で管理するには限界があるため、一元管理することで効率的に運用することができます。

AWS Organizations

AWS Organizationsを利用することで、複数のAWSアカウントを取りまとめる親アカウントを定めることができます。他のアカウントは子アカウントとして、親アカウントが管理する形になります。

各アカウントの利用料金は親アカウントにまとまるため、組織全体の利用料金の把握や支払いを簡単に行うことができます。またアカウントごとの明細も確認できるため、親アカウントで適切に仕分けを行うことが可能です。

なお、上述したようにAWS Organizationsを利用することで親子関係を構築することができますが、親となるアカウントは1つのみです。子アカウントは複数の親アカウントの子になることはできず、また子アカウントが孫アカウントにあたるアカウントを作ることはできません。

アカウントの自動構築

複数アカウントを作成するとなると、手動で各アカウントに対して初期設定をセットアップするのはかなりの手間がかかります。AWS Landing Zoneを用いると、複数アカウントの管理に必要なものが揃った環境を、自動でセットアップすることができます。

現在はAWS Control TowerでAWS Landing Zoneが提供されています。

AWS Control Tower

AWSコンソール上からAWS Control Towerを通すことで、AWS Landing Zoneの複数アカウントを自動でセットアップすることができます。以前はAWS Organizationsが既に作られている場合はAWS Control Towerを利用することができませんでしたが、可能になりました。

AWS Control Towerを通して新規アカウントを作成すると、AWS Control Towerの管理下に入ります。既存のアカウントは自動でAWS Control Towerの管理下には入らないため、管理下に入れる設定が必要です。

複数アカウントの利用制限


複数アカウントに分けることで効率的に運用することが可能になりますが、何でも自由にされると困ります。AWSには複数アカウントの各々に制限をかけて、管理をするための機能が用意されています。

Service Control Policies

AWS OrganizationsのService Control Policiesを利用して、アクセス許可の制限を行うことができます。AWS Organizationsは親アカウントは1つしか持てません。しかし、組織内アカウントで権限のような階層を作成することが可能です。

Organization Unitと呼ばれる単位で、Service Control Policiesを設定することができるため、Organization Unitに所属したAWSアカウントレベルの機能を制限することができます。

Organization Unitは階層構造を持つことができ、Service Control Policiesは子のOrganization Unitにも影響を与えます。

AWSアカウントが所属できるOrganization Unitは1つのみです。

アクセス制限はブラックリスト方式とホワイトリスト方式があります。ブラックリスト方式は警戒する必要のあるリストで、ホワイトリスト方式は警戒する必要がないリストです。

どちらが適切かは要件次第ですが、ホワイトリスト方式のほうがセキュアであると言えるでしょう。

IAM Permissions Boundary

Service Control Policiesで制限をして利用者は権限変更できないようにしても、運用上無理が生じます。

各アカウントの権限を誰でも柔軟に変更できるようにしたいけれど、何でもかんでも自由にされるのは困るという場面でIdentity and Access Management Permissions Boundaryを利用することができます。

まず、絶対に禁止したいものをService Control Policiesで定義します。各アカウントのIdentity and Access Management管理者がPermission Boundaryで利用者の権限範囲を定義することで、利用者はPermission Boundaryで定義された範囲のポリシーのみ利用することができます。

また、Service Control Policiesの管理者から各アカウントのIdentity and Access Management管理者へ権限管理の委任を行うことができます。

複数アカウントで同じ環境を使用する


AWS Organizationの組織内アカウントに共通の設定を入れることができます。共通で入れた設定は編集不可となっているため、個別アカウントで編集することはできません。

しかしすべてのサービスの設定をAWS Organizationでできるわけではなく、一部のサービスでのみ利用できます。

AWS Organizationsで設定できないサービスについては、CloudFormation StackSetsとService Control Policyを使うことで同様に共通の設定を入れることができます。

AWSで複数アカウント管理をするための最適な方法


AWSアカウントは複数に分けることで組織管理やコスト管理、開発環境のデバッグなど効率的に運用することが可能です。AWSには複数アカウントを一元管理する方法がいくつか用意されています。

AWS Organizationsを利用することで、複数のAWSアカウントを取りまとめる親アカウントを定めることができ、AWS Landing Zoneを用いて複数アカウント管理に必要なものが揃った環境を自動でセットアップすることができます。

AWSコンソール上からAWS Control Towerを通すことで、AWS Landing Zoneの複数アカウントを自動でセットアップすることもできるため、それぞれの組織に適した運用方法を採用すると良いでしょう。

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】