AWS Organizations を利用して AssumeRole できる環境を構築する
はじめに
AWS Organizations を利用することでセキュリティ、リソース、請求の一元管理が無料で実現できます。また、AssumeRole機能を利用することで必要な権限を持ったアカウントへ簡単かつセキュアにSwitchRoleすることができます。
今回は GUI で SwitchRole できる環境を構築する方法をまとめます。
次回は 1password と sesstok というCLIツールを利用して CUI でも SwitchRole できるようにします。
AWS Organizations の作成
AWS Organizations の管理画面から 組織の作成
をクリックするとログインしているユーザーをマスターアカウントとする組織ができます。
アカウントの作成
今回はアカウントの追加 → アカウントの作成 を選択して新規にアカウントを作成します。
必要な項目は フルネーム
と Eメール
と IAM ロール名
です。
IAM ロール名は特に区別する必要がなければ OrganizationAccountAccessRole
が placeholder となっています。
AWS Organizations email verification request
というメールが来るのでリンクを踏んで諸々設定します。
AssumeRole 用の IAMポリシー の作成
AssumeRoleを利用することで ID/Password を入力することなく SwitchRole することができます。
AssumeRole を許可するIAMポリシーを作成します。
Resource で指定している Role はアカウントの作成時に指定したものを指定します。(上の例だとOrganizationAccountAccessRole
です)
{ "Version": "2012-10-17", "Statement": [ { "Sid": "StmtXXXXXXXXXX", "Effect": "Allow", "Action": [ "sts:AssumeRole" ], "Resource": [ "arn:aws:iam::*:role/OrganizationAccountAccessRole" ] } ] }
IAMユーザの作成
ルートユーザでは AssumeRole機能 を利用した SwitchRole ができないので IAMユーザを作成します。
上で作成したIAMポリシーをアタッチしておきます。
作成したユーザのcredentialはcsv等で保管しておきます。
SwitchRole
一度 AWSコンソールログアウトし先ほど作成したIAMユーザでログインします。
アカウントはマスターアカウントのアカウントIDで、ユーザー名/パスワードはIAMユーザの作成
で作成した IAMユーザのものです。
SwitchRole 先の設定
右上のアカウント情報のプルダウンメニューからスイッチロール
を選択します。
- アカウント:
AWS Organizations の作成
で作成したアカウントのアカウントIDを入力します。 - ロール:
アカウントの作成
で指定したIAM ロールを入力します。 - 表示名:任意の文字列です。コンソールからSwitchRoleする時にわかりやすいものを指定します。
- 色:任意の色を選択します。気が利いていますね。
ロールの切り替え を行うと実際にSwitchRoleすることができます。
まとめ
AWS Organizations を利用して AssumeRole できる環境を構築する方法をまとめました。
次回は moznion/sesstok と 1password を使って CLI でも AssumeRole できるようにします。