AWS SSO を設定し AWS Organizations 管理のメンバーアカウントへサインインするまでの全体の流れを把握してみる

2022.04.03

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWS SSO の設定を有効化し AWS Organizations 管理しているメンバーアカウントへサインインまでの流れを整理しました。

本記事で学べること

以下の設定手順を画面キャプチャをベースに設定の流れを把握できるように紹介します。

  • AWS SSO の標準の ID ストアでサインインするユーザーの管理
  • サインインするユーザーには MFA デバイスの登録を強制
  • ユーザー、グループの作成
  • アクセス許可セットの概要
  • AWS Organizations の管理下のメンバーアカウントへのサインイン・アクセス権限設定

基本設定

AWS SSO を有効化します。AWS SSO 標準の ID ストアを使ってユーザー管理を行い、合わせてユーザーが初回ログイン時に MFA デバイス登録を必須にするべく MFA 強制設定を追加します。

AWS SSO の有効化

AWS SSO の有効化をクリック。

AWS SSO のダッシュボードを確認できるようになりました。

AWS SSO の ID ストアを利用する分には追加の設定は不要です。AzureADや、外部 ID プロバイダーの利用はオプショナルで追加設定が必要です。デフォルト設定の ID ストアでユーザーを管理したいため本ブログでは詳細に触れません。

By default, you get an AWS SSO store for quick and easy user management.

引用: Choose your identity source - AWS Single Sign-On

MFA デバイス登録強制設定の追加

ユーザーが初回ログイン時に MFA デバイスの登録するように強制する設定を入れます。以下のエントリを参考に進めます。当時から Web UI に変更があったようで現時点のキャプチャを残すことにしました。

ネットワークとセキュリティタブから設定をクリックします。

デフォルト設定は「サインインコンテキストが変更された場合のみ(コンテキスト対応)」にチェックが入っていました。サインインごとに MFA デバイスを使用させることにしました。目的は「サインイン時に MFA デバイスを登録するよう要求する」にチェックを入れることでした。デフォルトの設定と比べると2箇所変更したことになります。

参考までにサインイン時に MFA デバイスを登録するよう要求するにチェックを入れるとユーザーが初回のサインイン時に以下の画面が表示され MFA デバイスの登録が求められるようになります。

ユーザー・グループ作成

ユーザーを所属させるグループをさきに作成します。ユーザー作成してからグループを作成しても変わりませんので、順番はお好みで問題ありません。

グループを作成をクリックします。

ここでは管理者用のグループを作成します。グループ名など必要情報を入力します。

グループ作成は以上です。次はユーザーを追加します。

ユーザーを追加をクリックします。

メールアドレスなどのユーザー情報を入力します。

さきほど作成した管理者グループに追加しました。

グループに参加したユーザーが追加されました。

ユーザー作成時に設定したメールアドレスへ招待メールが届きます。Accept invitationをクリックすると AWS SSO ユーザーでサインインできるようになります。

パスワードの入力を要求されパスワード設定を行います。

MFA デバイスの登録が強制されているため、初回サインインのタイミング MFA デバイスの登録を行います。

パスワード設定、MFA デバイス登録が終わるとサインインできるようになります。

ユーザー・パスワード入力のあとに MFA コードを求められます。

AWS SSO にサインインしても、そこからサインイン先の AWS アカウントを設定していないためなにも表示されません。

設定済みだと以下の様に表示されます。次はその設定を入れます。

アクセス許可セットの設定

目新しい用語としてアクセス許可セットが登場します。

アクセス許可セットは英語でPermission Setsことなのですが、以前はアクセス権限セットと翻訳されていました。過去の情報を参考にするときはどちらもPermission Setsを指していると用語だとご認識ください。

アクセス許可セットとは?

AWS アカウント後にユーザーまたはグループに対して割り当てる権限設定のことです。図で雰囲気を掴んでから実際の設定を見てみると理解しやすいかと思います。

AWS SSO を利用したい理由の1つに複数あるアカウントへのサインインを簡略化したいというモチベーションがあるかと思います。

AWS SSO をはじめて設定するとき以下の2点が気になりませんか?

  • 各アカウントにサインインするための設定
  • 各アカウントに対してのユーザーに割り当てられる権限設定

この設定に絡んでくるのがアクセス許可セットです。

アクセス許可セットは、ユーザーかグループと組み合わせて利用します。管理上、ユーザー個別に設定はせずグループに設定することが多いかと思います。

ユーザーでも、グループにも設定できのですが、ここではグループに対してアクセス許可セットを設定する前提で進めます。

各アカウントにサインインするためには、グループとアクセス許可セットを組み合わせを各アカウントに割り当てることで実現できます。

アクセス許可セットにはそのアカウントで必要な権限を設定します。下の図ではGroup-Aの所属ユーザーは、3つあるアカウントに対してそれぞれアクセス許可セットに権限違いにより、各アカウントでできることが変わってきます。Account-1に対しては自由にリソースを作成できるが、Account-2,3に対しては読み取り専用の権限しかありません。この権限の違いを実現しているのがアクセス許可セットです。

他には同じアカウント(Account-1)に対して、Group-A, Group-B, Group-C がそれぞれグループ毎にできることを制限した権限でサインインするにも、アクセス許可セットの設定内容が違いで実現できます。

最後に同じアカウント(Account-1)に対して、同じグループ(Group-A)でもアクセス許可セット違いで設定することもできます。普段は読み取り専用権限でサインインして、作業時は強い権限でサインインするといったことができます。

実際の AWS SSO にサインイン時の画面だと以下の様にSandboxアカウントに対して、AddmisotraoAccess(アクセス許可セット1個目)、ViewOnlyAccess(アクセス許可セット2個目)の2つ表示されます。対象のManagement consoleのリンクをクリックすると、その権限でSandoboxアカウントにサインインできるといった感じです。

次に実際のアクセス許可セットの設定を行います。

実際に設定していく

許可セットを作成をクリックします。

管理者権限でサインインできる設定を例として取り上げます。事前定義された許可セットを選択し、AdministratorAccessを選択しました。今回は AWS がデフォルトで用意している許可セットを利用しましたが、カスタム許可セットの方は JSON で自由に権限設定することができます。

そのまま次へ

作成をクリックします。

管理者用のアクセス許可セットが完成しました。ところでプロビジョニングされていませんとはなんでしょうか?

今作成したアクセス権限セットは AWS アカウントに割り当てて使用されます。アクセス許可セット作成時のデフォルト状態では AWS アカウントに割り当てられないため、プロビジョニングされていませんと表示されます。

By default, when you create a permission set, the permission set isn't provisioned (used in any AWS accounts). To provision a permission set in an AWS account, you must assign AWS SSO access to users and groups in the account, and then apply the permission set to those users and groups. For more information, see Single sign-on access.

引用: Create a permission set - AWS Single Sign-On

次は AWS アカウントにグループを割り当て、アクセス許可セットを設定します。

Sandboxアカウントに設定します。

ユーザーまたはグループを割り当てをクリックします。

グループを選択します。

アクセス許可セットを選択します。

送信します。Cancel, Previous からの並びで Submit だけ翻訳されていますね。決定ボタンは重要だからでしょうかね。

プロビジョニングされました。

ステータスがプロビジョン済みとなりました。AdminGroup のユーザーは AdministratorAceess 権限を持って、Sandboxアカウントへサインインできる状況になりました。

メンバーアカウントへサインイン

再び SSO でサインインしました。AWS Accountのアイコンが表示されるようになりました。

クリックして展開すると、対象の AWS アカウント名と、設定されているアクセス許可セットの名前を確認できます。Management consoleをクリックすると、AWS アカウントへサインインできます。

AWS SSO の ID ストアに登録されたユーザーでサインインし、メンバーアカウントへシングルサインオンができました。

以上が AWS SSO 設定からメンバーアカウントへサインインまでの一連の流れでした。ざっと概要は把握してもられたなら本望です。

概要を把握できたところでより詳しくアクセス許可セットについて知るには以下の記事がオススメです。理解が深まると思います。

おわりに

AWS SSO 基本的な設定の全体の流れを把握できるようにまとめてみました。アクセス許可セットは机上の勉強でピンとこない場合は一度手を動かしてみると理解しやすいので「やってみた」がオススメです。

参考