AWSの部屋

AWS学習者向けのブログです

SAML による AWS へのシングルサインオン

はじめに

AWS アカウントに IAM ユーザーを作成しログインする代わりに、ID プロバイダー(IdP)を使⽤しシングルサインオンすることができます。これは、組織に独⾃のID 基盤がある場合や、複数の AWS アカウントを使⽤している場合に便利です。今回は AWS 認定ソリューションアーキテクト - プロフェッショナル試験に向けて、SAML を使った AWS へのシングルサインオンに挑戦してみようと思います。

シングルサインオンとは

1度のユーザー認証によって複数のシステム(業務アプリケーションやクラウドサービスなど)の利用が可能になる仕組みを指します。

シングルサインオンに必要な要素

要素 説明 本エントリーで活用するサービス
アイデンティティストア IDプロバイダー(IdP)のユーザ管理 GMOトラスト・ログイン
IDプロバイダー(IdP) ユーザー・アカウントを管理するサービス GMOトラスト・ログイン
サービスプロバイダー なんらかのサービスを提供する企業または組織 AWS

AWSにおけるシングルサインオンのイメージ

手順

  1. IDプロバイダーの設定1
  2. サービスプロバイダーの設定
  3. IAM ロールの作成
  4. IDプロバイダーの設定2
  5. アイデンティティストアのユーザの作成
  6. 動作確認

1. IDプロバイダーの設定1

アカウントの登録後、ID プロバイダー情報のメタデータをダウンロードします。アプリの登録はせずにこのまま次の手順に進みます。

管理者画面に遷移します。

アプリの追加ボタンを押します。

AWS IAM(SAML) をクリックします。

ID プロバイダー情報のメタデータをダウンロードします。

2. サービスプロバイダーの設定

IAM管理画面で「プロバイダを追加」をクリックします。

前工程でダウンロードしたメタデータを選択し、プロバイダーの追加をします。

プロバイダのARNを控えておきます。

3. IAM ロールの作成

先ほど作成したプロバイダを選択し、以下のようにロールを作成します(アタッチするポリシーやロール名は適当でOK)。

ロールの ARN を控えておきます。

4. IDプロバイダーの設定2

「サービスプロバイダーの設定」の「SAML属性の設定」に控えておいた「ロールの ARN」と「プロバイダの ARN」を「,」で区切った「ロールのARN,プロバイダのARN」の形式で入力し、アプリの登録を行います。

例:arn:aws:iam::000000000000:role/saml-role, arn:aws:iam::000000000000:saml-provider/sanvarie_test

5. アイデンティティストアのユーザの作成

このようにユーザを二つ作成しました。

6. 動作確認

ログインができている場合、画面の上部にロール名/ユーザー名@アカウントIDが表記されます。

一人目のユーザでログイン

二人目のユーザでログイン

さいごに

何となくでしかシングルサインオンの仕組みを理解していなかったのですが、実現に必要なものを整理し実際に手を動かすことによって理解が深まった気がします。次回は OpenID Connect を使ったシングルサインオンにも挑戦してみようと思います。