はじめに
普段、会社の業務でAWSを扱うときには、会社のアカウント(Organizations)でSSO(Single Sign-On)を使用しているのですが、プライベートで個人のアカウントを使用するときも合わせてみようと思い、AWS Organizationsを導入してみました。
AWS Organizationsの導入自体は無料です。
※複数アカウントを運用しない場合は不要かもしれません
今回はこちらの記事を参考にさせていただきました。ぜひご参照ください。
AWS Organizationsとは
AWS Organizationsとは、複数のAWSアカウントをまとめて一元管理するためのサービスのことです。
業務でAWSを使っている場合、プロジェクトごとに
・本番環境
・ステージング環境
・開発環境
のようにアカウントを分けるのがベストプラクティスとされていますが、実際にそれらを管理するのがこのサービスです。
特徴
-
AWS Organizations自体は無料(アカウント内で使用するAWSサービスは課金対象)
-
すべてのアカウントの料金をまとめて管理できる
-
OU(Organizational Unit)でアカウントをグループ化できる
→グループ単位でルールを適用させたり、管理がしやすくなります -
Service Control Policy(SCP)で「何ができるか」を統制できる
→IAMより上位の制御でセキュリティをコントロールすることができます
詳しくは公式ドキュメントをご参照ください。
今回のゴール
以下のようなマルチアカウントを構成していきたいと思います。
1. 組織を作成する
普段個人で使用しているAWSアカウントにadminユーザーでサインインします。
※組織を作成する権限を持つユーザーが存在しない場合は、ルートユーザーで行います。結果は同じになります。
AWS Organizationsの画面に移動し、組織を作成するを押します。
「管理アカウントに関する考慮事項」を読み、問題なければ組織を作成するを押します。
以下が、現在の状態です。
2. OU(組織単位)を作成する
続いて、「Security OU」と「Development OU」を作成していきます。
①「Root」にチェックを入れます
②アクションタブを開きます
③新規作成を押します。
①「組織単位名」にSecurityと入力します
②組織単位の作成を押します
無事に「Security OU」が作成されました。
同様に「Development OU」も作成すると、以下のような状態になるかと思います。
3. メンバーアカウントを作成する
最後に、「Security OU」にメンバーアカウントsecurity-management-accountを、
「Development OU」にメンバーアカウントproject-a-dev, project-a-stg, project-a-prodをそれぞれ作成(追加)していきます。
画面右上のAWS アカウントを追加を押します。
①AWS アカウントを作成を選択します
②「AWS アカウント名」を入力します
③「アカウント所有者の E メールアドレス」を入力します
※エイリアスを使うのがおすすめです
④「IAM ロール名」はデフォルトのものを使用します
⑤AWS アカウントを作成を押します
組織内にAWSアカウントを作成するリクエストが送信されますので、作成が完了するまでしばらく待ちます。
2分ほどで画面をリロードしたら、以下のように作成されていました。
デフォルトではRoot直下に作成されるため、OUへ移動させます。
①「security-management-account」にチェックを入れます
②アクションタブを開きます
③移動を押します。
①「移動先」で「Security(OU)」にを選択します
②AWS アカウントを移動を押します
無事に移動が完了しました。
現在の状態です。
あとは同様の手順で、
「Development OU」にメンバーアカウントproject-a-dev, project-a-stg, project-a-prodをそれぞれ作成(移動/追加)すればゴールです!
このままだと、作成したアカウントごとにIAMユーザーを作成してサインインすることになってしまうので、次にIAM Identity Centerを導入していきます。
長くなってしまうので、後半はこちらの記事をご参照ください。
















