AWS Organizations で何が出来るのかをまとめる
皆さん、こんにちは。技術開発グループのn-ozawanです。
ブログのデザインが変わりました!
本題です。
AWSを利用するには、AWSアカウントを作成する必要があります。複数のAWSアカウントを管理するのは大変です。AWS Organizationsは複数のAWSアカウントを一括管理するサービスです。今回はAWS Organizationsについてまとめてみました。
目次
AWS Organizations
何が出来るの?
AWS Organizationsでは主に以下のことが出来ます。
- AWSアカウントの作成・管理
- AWSアカウントへのポリシー設定
- 一括請求管理
- 他サービスとの連携
AWSアカウントの作成と管理
複数のAWSアカウントを作成することは良くあります。本番環境や検証環境などの環境毎にAWSアカウントを作成する場合や、マイクロサービス構成としてサービス毎にAWSアカウントを作成する場合などが考えられます。また、企業によっては部署毎や従業員毎にAWSアカウントを作成するところもあるでしょう。企業が保有するAWSアカウントの数が増えれば増えるほど、その管理に時間を要することになります。
AWS Organizations ではAWSアカウントの作成を簡略化します。AWSアカウントを作成する際はメールアドレスやクレジットカード番号などの各種認証を行う必要がありますが、AWS OrganizationsでAWSアカウントを作成すればそれらを省略することが出来ます。また、既に作成済みAWSアカウントを、AWS Organizationsの管理構成に招待することも出来ます。
AWS Organizations ではAWSアカウントを一括管理することが出来ます。管理する際は、AWSアカウントをOU(組織単位)で管理します。

AWSアカウントへのポリシー設定 (SCP)
SCP (サービスコントロールポリシー) は、OUやAWSアカウントに対して設定するポリシーです。SCPを設定することにより、AWSアカウント毎に利用可能なサービスを制限することが出来ます。
SCPを有効にした場合、デフォルトではFullAWSAccessがアタッチされます。つまり、AWSが提供するすべてのサービスの利用を許可します。もし、OUに「S3への操作を拒否」するSCPをアタッチした場合、そのOUに所属するすべてのOUまたはAWSアカウントはS3への操作が出来なくなります。

SCPは権限のフィルタです。フィルタは権限を通しますが、権限を付与するものではありません。SCPで勘違いしやすいは、「このサービスの使用を許可する」のであって、「このサービスを使うための権限を付与する」ことではありません。
上記の図を例にすると、末端のAWSアカウントはEC2とS3の操作が許可されていませんが、Lambda関数への操作は許可されています。だからと言って、AWSアカウントで作成した全てのIAMユーザーがLambda関数を利用できる訳ではありません。IAMユーザーにLambda関数への利用権限を付与して、初めてLambda関数が利用できるようになります。
一括請求管理 (コンソリデーティッドビリング)
AWSはAWSアカウント毎に料金を請求します。しかし、AWS Organizations を利用すれば、AWS Organizationsで登録しているAWSアカウントを一括請求の対象とすることが出来ます。これにより、請求書が1つとなり請求管理がシンプルになります。
また、複数のAWSアカウントの使用量を合計し割引を受けることも出来ます。例えば、S3の料金では50TB/月までは0.023USD/GBですが、次の450TB/月までは0.022USD/GBと、0.001USD/GB分安くなります。各々で請求されるよりかは、使用料を合計した方がお得になります。

AWS CloudFormation StackSets
AWS CloudFormation StackSetsは、複数リージョンや複数アカウントにスタックを作成して、スタックを管理することが出来ます。スタックとは複数のリソースの集まりです。つまり、AWS Organizationsと連携することにより、OU毎やAWSアカウント毎に複数のリソースを自動的に作成することが出来ます。
例えば、想定以上のコストが発生したら通知を送信したい場合、各AWSアカウントにコスト監視のリソースを構築する必要があります。AWS CloudFormation StackSetsを利用すれば、それらリソースを自動的に構築してくれるようになります。
AWS Resource Access Manager (RAM)
AWS Resource Access ManagerとAWS Organizationsが連携することにより、OUやAWSアカウント間で、リソースを共有することが出来ます。共有可能なリソースはVPCやSubnet、Transit Gateway、Route53 Resolver、EC2インスタンスなど様々です。企業全体でライセンス情報を共有したい場合や、共通のセキュリティを構築したい場合などに利用します。
おわりに
使用しているAWSアカウントが1つや2つぐらいなら、AWS Organizationsを使うメリットは無いと思います。ただし、AWSアカウントが10を超えてくるとAWS Organizationsで管理した方が良いでしょう。
AWS Organizationsと連携可能なサービスとしてAWS CloudFormationやAWS Resource Access Managerを紹介しましたが、他にもAWS Config(設定管理)やAWS CloudTrail(監査ログ・操作ログの取得)などの多くのサービスと連携することも可能です。色々と利便性が上がりますので、複数のAWSアカウントを保持しているのであれば、是非ご検討ください。
ではまた。