AWS Organizaionsで複数のアカウントを一元管理する

(2020-09-15)

AWS Organizationsは複数のAWSアカウントを一元管理する機能。 既存のアカウントを一元管理できるだけではなく新規アカウントを簡単に作成することができるので、 セキュリティの向上やコストの分離、クォータなどアカウント全体に及ぶ影響の局所化などのためにサービスや環境ごとにアカウントを分けるハードルが下がる。 引き続きアカウントごとのコストも確認できるが、請求は一括で行われるので支払いの管理が楽になるし、ボリュームディスカウントの使用量が合算されRIも共有できるのでコストの上でも不利にならない。

また、アカウントやそれをグルーピングしたOrganizational Unit(OU)およびOrganizaion全体に対して、 サービスやアカウントを制御するService control policies (SCPs)などのポリシーを設定することもできる。

Organizationを作成したアカウントがマスターアカウントとなる。変更するにはOrganizationを削除する必要があるため管理専用のアカウントを作成するのがおすすめらしい。 通常、新規アカウントを作成するには住所や支払い情報などを入れる必要があるが、 Organizationだとその辺りが省略されアカウント名とルートアカウントのメールアドレスだけで済む。 管理に用いられるIAMロール名を入れる項目もあるが何も入れなければデフォルトのOrganizationAccountAccessRoleになる。

新規アカウントの作成

新アカウントのルートユーザーのパスワードは発行されないので必要なら再発行することになるが、 マスターアカウントのIAMユーザーにアカウント作成時に入力したロールのsts:AssumeRole権限を与えれば 新アカウントの方にユーザーを作らなくてもコンソール上部のメニューからスイッチできる。

AWSのAssumeRole - sambaiz-net

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "arn:aws:iam::<new_account_id>:role/<role_name>"
        }
    ]
}

基本的にマスターアカウントのリソースの権限は必要ないと思われるが、MFAの権限はないと設定できないので追加する。

Switch Role

初回はアカウントIDとロール名を入力することになる。一度入力すると履歴に残るのでそこから選べる。

Swith Roleの入力項目

参考

20180214 AWS Black Belt Online Seminar AWS Organizations