個人利用でAWS SSOを利用してみる

はじめに

本記事では個人でAWS Organizationを使ったAWSアカウント達にAWS SSOの機能を利用してログインを簡単に実施してみる、という記事となります。

AWS OrganizationもAWS SSOも個人利用は難しく、どうやって学習を進めれば良いのだろう、と考えているアナタと私向けの記事となります。

当然、個人利用なのでActiveDirectoryやOktaのようなID providerは存在しません。そのため、SSOのためのアカウントはAWS上でSSO用のアカウントを作成・利用していきます。

Organizationの利用方法についてはこちらの記事をご参考にして下さい。

こちらの記事はAWS Organizationを利用していること、を前提条件とさせて頂きます。

実施内容

AWS SSOの有効化

AWS SSOのページに移動して、AWS SSOの有効化をクリックしましょう。

AWS SSOの設定の流れと動作の補足

AWS SSOを有効化した時点で、設定を行ったAWSアカウントにアクセスするためのポータルサイトが作成されます。AWS SSOで作成したユーザーを利用したSSOを行う場合には、このポータルサイトに作成したユーザーでログインし、各AWSアカウントにアクセスする、という流れになります。

AWS SSOにおける「ユーザー」と「グループ」はAWSアカウント内のIAMのユーザーグループとIAMユーザーに近いものとお考え頂けると思います。

AWS SSOのユーザー作成

最初にユーザーを作成します。ユーザーのメニューをクリックして以下のページを表示し、「ユーザー」を追加をクリックします。

メールアドレスを含め、設定を行っていきます。設定可能な項目は多いですが、以下のみでも問題ありません。

グループは未だ作成していませんのでスキップします。(ここで作成頂いても問題ありません)

ユーザーの追加と確認のページで、ユーザーを追加をクリックして下さい。これでユーザーの作成は完了ですが、Eメールアドレスの認証を求められます。

登録を行ったメールアドレスに、no-reply@login.awsapps.comからメールが届いているかと思いますので、本文内にあるAccept Invitationをクリックして下さい。

SSOのログインページでパスワードの設定を求められますので、ここでパスワードを設定しておきます。

パスワード設定後にそのままログインを行うと、以下のようなユーザーポータルのページが表示されますが、AWSアカウントとの紐づけは行っておりませんので、何も表示されません。

MFAの設定

ここまででSSOのためのユーザーは作成しておりますが、これをAWSのアカウントと紐づける前に、MFAを設定しておきましょう。ユーザー名とパスワードだけで乗っ取られるようなアカウントをクラウドで利用してはいけません。

先ほどのユーザーポータルのページの画面右上にあるMFA Devicesをクリックします。以下のような画面が表示されますので、Register deviceをクリック。

私の場合はGoogle Authenticatorを利用していますので、認証アプリを選択。

指示に従ってMFAの設定を進めて下さい。IAMユーザーのMFA設定とほぼ同じ流れとなります。

ここまでで、SSOユーザーのMFA設定も完了です。

SSOのグループの作成

グループ作成のページから「グループの作成」をクリックします。

先ほど作成したユーザーを含めてグループを作成します。

これでグループの設定も完了となります。

AWSアカウントのアクセス権限セットの作成

次にAWSアカウントにアクセスした際のアクセス権の設定を行っていきます。AWSアカウントのページを開き、アカウント権限セットのタブをクリックします。

「アクセス権限セットを作成」のボタンがあるのでクリックして、作成していきます。

ここでは既存の職務機能ポリシーを選択します。

まずはViewOnlyAccessの権限を設定してきます。

タグの設定は任意です。私はスキップしました。最後に設定内容の確認が入りますので、このまま作成します。

同様に、SystemAdministratorの権限セットまで作成したのがこちらの状態です。

これで権限セットの作成も完了です。

AWSアカウントをSSOのユーザー(グループ)に割り当て

こちらが最後の作業となります。SSOのユーザー(グループ)に対して、アカウントへのアクセス権を設定していきます。

アクセスしたいAWSアカウントを選択し、「ユーザーの割り当て」ボタンをクリックして下さい。

こちらではどのSSOのユーザー(グループ)からのアクセス権を設定するか、を選択します。今回は作成したグループを選択しました。

その後、そのユーザー(グループ)に対して、どのアクセス権限セットを割り当てるかを設定します。ここで設定されたアクセス権限セットは、後にポータルにログインした際に、どちらの権限セットを利用するかを確認されます。

以下のように、2つ設定したからと言って、2つの権限を同時に持つことはありません。完了をクリックすることでSSOのユーザーの割り当ても完了となります。

完了すると、以下のような画面表示になります。

ここまでAWS SSOの設定は完了です。

動作確認

ポータルサイトのURLを確認するためにダッシュボードを開いてください。設定の概要の欄にユーザーポータルのURLが記載されていますので、こちらにアクセスして下さい。

AWS SSOで作成したユーザー名とパスワードを入力し、MFAによる認証の後、ログインすると先ほどは何も見えなかったページに、AWSのアカウントが見えるようになっています。

クリックしてみると、以下の通り、ログインしたいAWSアカウントを選択した後に、どの権限セットを利用するかを選択することが出来るようになっています。

これでコンソールに入ってみます。IAMのページを確認してみると、作成した権限セット毎にIAMロールが作成されており、実際に操作しているユーザーもIAMロールを利用していました。

以上でAWS SSOの利用方法の説明を終わりにします。

さいごに

本記事ではAWS SSOを使って、複数のAWSアカウントにログインする方法について説明しました。スイッチロールによるアカウントの切り替えも良いですが、スイッチロールの場合は、アクセス先のアカウントでIAMロールを予め設定する必要があること、また、SSOであればアクセス権をSSOのサービス側で一元管理できるので、組織が大きければ大きいほどSSOの魅力が生かされるのはないかと思います。

個人利用ですので、どうしてもAWSのユーザーアカウントによるSSOしか出来ませんでしたが、こちらの記事が皆様のAWSサービスの理解の一助になれば幸いです。