【AWSハンズオン】SSOログインの設定をしてみる【AWS Organization × IAM Identiry Center】
Background
知人とAWSを使って共同開発していこうという流れの中で、アカウント周りをスッキリと管理したくなった。IAMユーザーを作ってやっていく方法でも良いけれど、どうせならAWS OrganizationとIAM Identity Centerとを組み合わせてSSOログインを実現する手法の知見も得たかった。ので、SSOユーザーに適切な権限をつけてログインさせる方式を試すことにした。
最終的には、以下のように「IAM Identity Centerで発行した"ユーザー"にログインした人が、その"ユーザー"が使うことを許された"アカウント"を選択してAWSリソースを触ることができる」状態をめざす。
IAM Identity Centerでユーザーの追加
IAM Identity Center > ユーザー から「ユーザーを追加」。
「ユーザーの詳細を指定」して次へ進む。
グループへの追加ができるが、今回はスキップして次へ。
最終確認してユーザーを追加。
AWS Organizationsでアカウントの追加
ここまできたら、今度は AWS Organizations > AWS アカウント で「AWSアカウントを追加」する。
「AWSアカウントを作成」を選択し、先ほどIAM Identity Centerで入力したプライマリEメールアドレスを入力してアカウント作成する。
1分程度待つとアカウントが作成されて「組織」の下に追加される。
新規ユーザーにメールが3通届く
ここまでの操作で、新しいユーザーにはメールが3通届く。それぞれ以下のような件名になっているはず。
Invitation to join AWS IAM Identity Center (successor to AWS Single Sign-On)
アマゾンウェブサービス
Amazon Web Services アカウントの準備ができました - 今すぐ始めましょう
1通目の"Invitation to join..."にAccept Invitation
のようなボタンがあるはずなので、押下してAcceptしてもらう。遷移先でpasswordの設定等を済ますとログインできるようになるが、この段階ではログインしても"You do not have any applications."というセンテンスだけが表示された画面に遷移する。
許可セットの作成と割り当て
次に、新しいユーザーに割り当てるための「許可セット」を IAM Identity Center > 許可セット から作成していく。
今回は「事前定義された許可セット」からReadOnlyAccess
を選択して作っていく。
うまくいったら、一覧に新しく作った許可セットが表示される。
続いて許可セットを割り当てるためのグループを作る。
先ほど作成したユーザーを選択してグループ作成。
ここまでできたら、次は IAM Identity Center > AWSアカウント で「ユーザーまたはグループを割り当て」する。
先ほど作成したグループが選択できていることを確認したら、「許可セットを選択」でReadOnlyAccess
の許可セットを選ぶ。
ちゃんと設定できると、アカウント一覧でReadOnlyAccess
許可セットが与えられたことを確認できる。
新ユーザーがコンソールを閲覧できるように
ここまでできたら、新しいユーザーに再度ログインしてもらう。するとReadOnlyAccess
でのログインメニューが表示され、マネジメントコンソールへ入れるようになる。これにて設定完了!🙌
(軽く案内だけ) SSOユーザーがaws cliを使うにはどうすれば?
SSOユーザーがaws cliを使うには、まずログインメニューからCommand line or programmatic access
をクリックしてGet credentials for ReadOnlyAccess
というタイトルのモーダルを表示させる。するといくつかaws cliを使うにあたってのオプションが表示されるので、どれかを選んで設定するとaws cliが利用できるようになる。
ちなみにシーンによって複数のアカウントを使い分けるならawspを使ってサクサクとaws profileを切り替えるのが便利。
参考
Discussion