検証用にAWS Organizationsを設定してIAM Identity Centerでログインできるようにしてみた

開発技術部の柴田です。 前回のAWS Ambassador Global Summitに参加した記事で少しふれたのですが、Global Summitに参加していよいよAmazon Q Developerをしっかり学ぶぞと心に決めました。

Amazon Q Developerは無料でも使えるのですが、どうせならその能力を余すことなく体験したい思い、Amazon Q Developer Proを使うことにしました。 さらに、この機会に前から興味があった自分専用の検証用AWS Organizationsを作成することにしました。 OrganizationsのメンバーアカウントでAmazon Q Developer Proを設定することで、検証が終わったらアカウントごと消せるようにする想定です。

1回のブログで全行程を紹介したかったのですが、思いのほか長くなったので、今回はAWS Organizationsを設定してIAM Identity Centerでログインできるようにするところまでを紹介します。 次回以降、メンバーアカウントの取得やAmazon Q Developer Proのセットアップなどを紹介したいと思います。

今回のゴール

新しいAWSアカウントを取得し、AWS Organizationsを設定した後、IAM Identity Centerを利用してログインできるところまでを実施します。

なお、本記事の内容は検証用途のため、一部ベストプラクティスではない設定やセキュリティ上リスクのある設定があります。 補足はしていますが、実運用の環境を作成される場合は、AWSの公式ドキュメントやベストプラクスを参照の上判断してください。

Organizations管理アカウントの取得

Organizationsを管理するAWSアカウントを新規で取得します。 詳細は割愛しますが、取得手順はAWSのサイトで分かりやすくまとまっているので以下のサイトをみるのをおすすめします。

https://aws.amazon.com/jp/register-flow/

AWSアカウントが取得できたら、CloudTrailとAWS Budgetsの設定を設定します(手順は省略します)。

通常、作業にはルートユーザーを使用しないことが推奨されますが、この後IAM Identity Centerを設定し、以後はIAM Identity Center経由で利用する予定なので、ルートユーザーのまま作業をすすめます。

AWS Organizationsの作成

AWS Organizationsは複数のAWSアカウントを一元管理するための仕組みです。

自分専用のOrganizationsを作るメリットはあまりないのですが、AWS Organizationsがあると新しいAWSアカウントを取得するのが少し便利になります。 AWSのハンズオンをするときに、ハンズオン用にAWSアカウントを取得するというのがちょっと簡単になって嬉しいですよね。

なにより、AWS Organizationsの運用はなかなか仕事でも経験しづらいため、自分用のOrganizationsを作ると勉強になると思います。

さて、AWS Organizationsの作成は簡単です。 マネージメントコンソールで「AWS Organizations」にアクセスし、「組織を作成する」のボタンを押します。

AWS Organizationsのトップページ

組織を作成するうえでの考慮事項の説明がでますので、右下の「組織を作成する」のボタンを押します。

管理アカウント作成時の考慮事項

あっさりとOrganizationsが作成されます。

組織の作成が完了しました

AWS Organizationsを作った後は、Organizational Unit (OU)と呼ばれるグループを作りグループごとに管理をするのがベストプラクティスだと思います。 しかし、今回は使うのが自分だけなのと、メンバーアカウントを多数作る予定がないためOUは作らず管理することにしました。

OUは後から作成して、既存のAWSアカウントをOU配下に移すことが可能なので、必要になったときに作成する方針です。

AWS IAM Identity Centerの有効化

AWS IAM Identity Center(IIC)は複数のAWSアカウントへのシングルサインオン(SSO)を提供します。

IAM Identity Centerを使うと1つのユーザーで複数のAWSアカウントにログインができるようになります。何よりAWSアカウントにIAMユーザーを作る必要が無くなり管理が楽になるのが嬉しいですね。

マネージメントコンソールでIAM Identity Centerを検索してアクセスします、この時普段利用するリージョンになっているかを確認してください。 リージョンは画面の右上で確認できます。

日本で使う場合は東京リージョンで良いと思います。

「有効にする」ボタンをクリックし作成を開始します。

IAM Identity Centerのトップ

IAM Identity Centerのインスタンスを作成するリージョンが適切なものになっているかの確認がはいります。 適切なリージョンになっていれば「有効にする」ボタンをクリックします。

東京リージョンになっているかを確認します
少し待つとインスタンスが作成されましたと表示され、IAM Identity Centerのダッシュボード画面になります。 これでIAM Identity Centerが利用できるようになりました。

IAM Identity Centerのインスタンスが作成されました

AWS IAM Identity Centerの設定

IAM Identity Centerのダッシュボード右側の「設定に移動」ボタンか、左側のメニューの「設定」から設定画面に移動します。

ここではID強化セッションの有効化を行います。ID強化セッションはAmazon Q Developer Proを利用するのに必要です。 この機能を有効にすることで一時的な認証の情報にユーザーの情報が追加されます。

ダッシュボード中央にID強化セッションの情報がでていますので、右側の「有効にする」ボタンをクリックします。ダイアログがでてきますので再度「有効にする」ボタンをクリックします。

ID強化セッションを有効にします

次に、SSOを使ってログインするユーザーを作ります。ダッシュボード左のメニューにある「ユーザー」をクリックします。

ユーザーの一覧画面に移動するので「ユーザーを追加」ボタンをクリックします(中央と右上どちらでも良いです)。

SSOのログインに使うユーザーを作成します

ユーザーの詳細を設定します。プライマリ情報にある項目は必須の情報になります。 必要情報を入力して、「次へ」ボタンをクリックします。

ユーザーの情報を入力します

次にグループへの追加になります。IAMグループと同様にグループを作成することで複数のユーザーの権限をまとめて管理できます。 今回は私1人しか使わないため、グループは利用しません。「次へ」をクリックします。

グループは作りません

レビュー画面で作成するユーザーの内容に誤りがないことを確認して「ユーザーを追加」をクリックします。

ユーザー情報に誤りがないか確認します

画面が遷移し、ユーザーが作成されます。 この時点でIAM Identity Centerのポータルにログインできるのですが、AWSアカウントにはまだログインできません。

続いてAWSアカウントへのログインを許可するための許可セットを作成します。許可セットはIAM Roleと考えて貰ってほぼ問題ないと考えます。

左側にあるメニューの「許可セット」をクリックします。

ユーザーが作成されました

「許可セットを作成」ボタンをクリックします。

許可セットを作成します

許可セットの作成では、事前定義された許可セットから割り当てるか、自分で許可セットを作成するかを選べます。 ベストプラクティスである最小権限を目指すのであれば、カスタム許可セットを選択して自分で許可セットを作成しますが、検証用のアカウントで自分しか使わないため今回は事前定義された許可セットを利用します。

最初に管理者権限が必要な作業に利用する、管理者用の許可セットを作リます。「AdministratorAccess」を選択して「次へ」ボタンをクリックします。

事前定義された許可セットからポリシーを選択します

許可セットの詳細を設定する画面になるのですが今回はデフォルトのままにします。「次へ」ボタンをクリックします。

詳細は変更せず作成します

画面が遷移して、「AdministratorAccess」という許可セットが追加されます。続いて普段使い用の許可セットを作るため再度「許可セットを作成」ボタンをクリックします。

AdministratorAccessの許可セットが作成されました

先ほどの処理と同じなので少し省略しますが、先ほど同様事前定義された許可セットから「PowerUserAccess」を選択します。許可セットの詳細を指定の画面で「セッション期間」を「8時間」に変更し作成します。

万が一セッション情報が流出するような場合を考えて、セキュリティ上はセッション時間を短くするのがベストプラクティスですが、何か作業をするときに1時間は意外と短いです。 1日ハンズオンを楽しむこともあるだろうということで、今回は8時間を選択しています。

セッション期間を8時間に変更します

PowerUserAccessの許可セットが作成されたら、AWSアカウントにログインできるように設定をしていきます。 左側のメニューから「AWSアカウント」を選択し、アクセス許可を設定したいアカウントを選択して「ユーザーまたはグループを割り当て」ボタンをクリックします。

AWSアカウントに許可セットを割り当てていきます

権限を設定したいユーザーやグループを選択します。ユーザーの一覧から先ほど作成したユーザーを選択して「次へ」ボタンをクリックします。

ユーザーを選択します

許可セットの選択画面では、ユーザーに割り当てる権限を設定します。今回は先ほど作った2つの権限両方を割り当てるために、両方の許可セットを選択して「次へ」ボタンをクリックします。

割り当てる許可セットを選択します

設定の確認画面が表示されますので、設定したい内容に誤りがないかを確認して「送信」ボタンをクリックします。

設定内容を確認します

許可セットの割り当てがはじまりますので、少し待ちます。

許可セットの割り当てはIAMの設定が変更されるので少し待ちます

ログインの確認

IAM Identity Centerを使ってログインできることを確認します。

IAM Identity Centerのユーザーを作成したときにメールが届いているので、メールの中の「Accept Invitation」をクリックします。

AWSからの招待メール

新規ユーザーのサインアップ画面になりますので、パスワードを設定します。

サインイン用のパスワードを設定します

パスワードを設定すると画面が遷移してログイン画面になるため、ユーザー名を入力して「次へ」をクリックします。

ユーザー名を入力します

先ほど設定したパスワードを入力して「サインイン」をクリックします。

パスワードを入力してサインインします

初回は多要素認証(MFA)の登録があります。複数の方式から選択できるのですが、今回は時間ベースのワンタイムパスワード(TOTP)を利用します。

TOTP対応のアプリケーションを設定し認証コードを入力した後、「MFAを割り当て」をクリックします。

TOTPのアプリケーションを設定します

アクセスポータルにつながり、アクセス許可セットを設定した設定したアカウントと、設定しているアクセス許可が閲覧できます。 「AdministratorAccess」等をクリックすると設定されている権限でAWSアカウントにアクセスができます。

サインインが成功するとSSOできるアカウントと許可セットの一覧が表示されます

まとめ

本当はメンバーアカウントを作成するところまでは一気に紹介したかったのですが、画像を入れながら書くと思いのほか長くなったので、今回はIAM Identity Centerの設定部分のみです。

冒頭にも記載しましたが、今回は検証目的の環境のため、最低限の設定にとどめています。

例えば実務で使うときは、ポリシーを管理しやすいようにAWS Organizationsを作るときにはOUを作成することが推奨されます。 OUを作ることでサービスコントロールポリシー(SCP)という機能を使い、各アカウントで利用できるサービスやリージョンを制限できます。 また、IAM Identity Centerを使うときはグループを作ることでグループのメンバーに対して一気にAWSアカウントへの許可セットを割り当てることができるようになります。

次回はAmazon Q Developer Proを利用するためのAWSアカウントを、組織の管理アカウントから作成する手順を紹介します。