1.概要
AWS Organizationsを試してみたのでまとめてみたいと思います。
AWS Organizationsにより複数のAWSアカウントを作成したり統合して管理可能になり、さらにOU(AWSアカウントをグルーピングしたようなもの)によるセキュリティポリシーの制御を行うことができるようになります。
AWS OrganizationsでAWSアカウントを新規作成したり、外部のAWSアカウントを招待して統合することができるようです。
AWSの管理部門がAWS Organizationsで社内のAWSアカウントを一括管理し、各部門やプロジェクトごとにアカウントを払い出すような使い方が一般的になりそうでしょうか。
2.利用方針
AWS Organizationsを使うにあたり、以下の方針でアカウント管理していきたいと思います。この構成方針で良さそうかは別途検証したいと思います。
利用ケースとしてはハイブリッドクラウド環境でAWS VPCとオンプレ間でVPN接続(VPCサブネットは同一にするが、それ以外のリソースを分離したい)する場合を想定しています。
- AWS Organizationsを適用するAWSアカウントは配下のAWSアカウントとポリシーの管理のみを行う。このAWSアカウントにはコンピュートリソースやマネージドサービスを立ち上げない。
- AWS Organizations配下のアカウントから共通的にアクセスされるリソースを管理するアカウント(VPCなど)にする。
(3からアクセスする場合には別AWSアカウントからVPCなどのアクセスできるようにする必要があり) - コンピュートリソースやマネージドサービスを稼働させるAWSアカウント。用途に応じて作成したりOUで階層化したりする。

3.設定
AWS Organizationsの設定手順を確認していきます。
既存のAWSアカウントにAWS Organizationsを有効化し、新規AWSアカウントを作成し管理できるようにします。
3-1.AWS Organizations有効化
- アカウントのメニューから「自分の組織」を選択。




AWS Organizationsを有効にすると「Consolidated Billing verification complete」の通知メールが届きますので確認しておきましょう。
3-2. OU作成
- AWS Organizations有効直後はOUはなくROOTしかないので、OUを作成していきます。

- アカウントの整理から、以下のようかかんじでツリー構造でOUを作成。ここで作成したOUに対して、アカウントを所属させたり、ポリシーを適用したりします。

3-3.サービスコントロールポリシーの設定
AWSアカウント内で操作できる権限をサービスとそのアクションを定義してポリシーとして管理することができます。このポリシーをOUにアタッチすることでAWSアカウントが実行できる操作を制御します。
- デフォルトポリシー(フルアクセスのみ)がありますが、必要に応じてポリシーを作成します。







ポリシーを作成しただけではOU/AWSアカウントに反映されません。OUへのアタッチが必要です。
3-4. サービスコントロールポリシーのOUへのアタッチ
1.作成したサービスコントロールポリシーをOUにアタッチします。アカウントの整理からOUを選択して、サービスコントロールポリシーを選択。
2.先ほど作成したサービスコントロールポリシーをアタッチします。
ROOTからフルアクセス可能なポリシーが継承されていますが、優先順位があるようで競合する場合はOUのポリシーが優先される。(もしくは拒否が優先?)
3-5. AWSアカウント新規作成
1.「アカウント」からアカウントの追加を選択。今回は新規にAWSアカウントを作成します。
2.フルネーム、Eメール、IAMロール名を指定します。新規AWSアカウントには、ここで指定したEメールでルートアカウントとしてログインします。
3.(情報消しているので見えませんが)AWSアカウントが作成されます。
4.作成直後はROOT直下にあるので、OU配下に移動します。アカウント名をチェックし、移動を選択。
5.OUを指定し移動を選択。
OUの配下にアカウントが移動しました。
3-6.AWSアカウントへのログイン
1.AWS Organizations上で作成したアカウントにコンソールログインします。(ルートアカウントでログインします、メールアドレスは作成時に指定したもの。パスワードが不明の場合にはいちどリセット。)
2.ログインするとメニューが表示されますが、請求ダッシュボードの一括請求を確認してみます。組織のメンバーという表示があり、AWS Organizationsの配下のアカウントであることが確認できる。
3.このAWSアカウントからAWS Organizationsを確認して見ると、ポリシー設定通りアクションが拒否されました。
参考ですがIAMロールを見てみるといくつかロールが作成されています。
あとはこのアカウント内で色々なサービスを動かしていたいと思います。
不要になったら、アカウントの設定からアカウントの解約を行います。解約するとAWS Organizationsのアカウント一覧でステータスが停止状態となります。
(AWS Organizationsからは削除できない)
4.まとめ
AWS Organizationsにて、自分が所有しているAWSアカウントの一元管理と、各アカウントが利用できるAWSサービスとアクションのポリシー設定を行えることを簡単にですが確認しました。
今回AWSアカウントを新規作成しただけなのでありがたみがわからないかもしれません。リソースのポリシー設定にて「指定したOU配下のAWSアカウント」...という使い方もできるか確認してみたいと思います。
単一のAWSアカウント内に存在するIAMロールの数が多くなってきたのでAWSアカウントを分離して管理できるかなと思い、設定を確認することにしました。(サービス用途に応じてロールを作ったり、EMRなどのサービスを稼働させたら自動作成されてロールがいっぱいに)
5.参考情報
AWS Organizations とは何ですか?
AWS Organizations詳細
AWS Organizations の用語と概念
チュートリアル : 組織の作成と設定