AWS SSOのIDストアユーザーを使って非Organizations環境のAWSアカウントにSSOしてみた

2022.02.24

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

はじめに

こんにちは。大阪オフィスの林です。

今回、非Organizations環境のAWSアカウントに対して、AWS SSOのIDストアユーザーを使ったSSOを試す機会がありましたので、対応した内容をまとめておきたいと思います。下記境遇の方に本エントリが参考になりましたら幸いです。

  • 特別な事情があってAWS Organizationの管理下に特定のAWSアカウントを配置できない
  • だけど、そのアカウントにAWS SSOを使ってログインしたい

今回やること

今回は、AWS SSOを使って非Organizations環境のAWSアカウントに対して、AWS SSOのIDストアユーザーを使ってSSOするところまでを見ていきたいと思います。

全体の流れ

非Organizations環境のAWSアカウントに対して、AWS SSO経由でログインするためには、下図のオレンジ点線に囲われたリソースの作成と設定が必要になります。

  • AWS SSO側(Management Account側)の設定 (カッコ内は作成順序です)
    • アプリケーション作成(1)
    • SAML連携設定(4)
  • 非OrganizationsのAWSアカウント側の設定
    • IDプロバイダ作成(2)
    • IAM Role作成(3)

また、本エントリの前提として下記の状態を想定しています。

  • AWS SSOは有効化されている。
  • AWS SSOのIDストアにユーザーが存在している。

やってみた

それでは早速やっていきたいと思います。

AWS SSO側(マネージメントアカウント側)の設定

アプリケーション作成

AWS SSOのダッシュボードの左メニューから「アプリケーション」を選択します。

「新規アプリケーションの追加」を選択します。

標準で用意されているアプリケーションを使っていきますので、awsと検索し、検索結果からExternal AWS Accountを選択後「アプリケーションの追加」を選択します。

任意のアプリケーション名を入力し、その他はデフォルトのまま「変更の保存」を選択します。

アプリケーションが作成されたことを確認します。

作成されたアプリケーションを利用させるユーザーを指定します。今回は作成済みのテストユーザーを選択します。「割り当てユーザー」タブを選択し「ユーザーの割り当て」を選択します。

対象のユーザーにチェックを入れ「ユーザーの割り当て」を選択します。

ユーザーが割り当てられたことを確認します。

「AWS SSO SAML メタデータ」は後続の作業で使用するので任意の場所に「ダウンロード」しておきます。

非OrganizationsのAWSアカウント側の設定

IDプロバイダ作成

非OrganizationsのAWSアカウント側でIAMのダッシュボードから「IDプロバイダ」-「プロバイダの追加」を選択します。

プロバイダのタイプに「SAML」を指定し、任意のプロバイダ名と、先ほどダウンロードしたメタデータを指定してアップロード後「プロバイダを追加」を選択します。

プロバイダが作成されたことを確認します。

後続の作業で使用するので作成したIDプロバイダのARNをコピーしておきます。

IAM Role作成

IAMのダッシュボードのまま、「ロール」-「ロールを作成」を選択します。ここで作成するIAM RoleはAWS SSOで非Organizations環境のアカウントにログインした時に割り当てられるロールです。

信頼されたエンティティタイプに「SAML 2.0 フェデレーション」を指定し、プロバイダに先ほど作成したプロバイダを指定します。
今回アクセス許可は「プログラムとAWSマネジメントコンソールへのアクセスを許可する」を選択していますが、用途に応じて選択し「次へ」を選択します。

必要な権限を選択し「次へ」を選択します。※ここで指定するポリシーはAWS SSOで非Organizations環境のアカウントにログインした時に割り当てられるロールに紐付くポリシーです。

任意のロール名を指定し「ロールの作成」を選択します。

IAMロールが作成されたことを確認します。

後続の作業で使用するので作成したIAMロールのARNをコピーしておきます。

AWS SSO側(マネージメントアカウント側)の設定(つづき)

SAML連携設定

AWS SSO側の設定に戻り、初めに作成したアプリケーションを選択し「属性マッピング」-「新規属性マッピングの追加」を選択し下記の情報を入力します。

項目 設定値 備考
アプリケーションユーザーの属性 https://aws.amazon.com/SAML/Attributes/Role
この文字列値またはAWS SSOのユーザー属性にマッピング IDプロバイダのARN,IAMロールのARN ,(カンマ)を忘れずに指定してください。
参考までに検証時に指定した値は下記となります。
arn:aws:iam::123456789012:saml-provider/From-AWS-SSO,arn:aws:iam::123456789012:role/From-AWS-SSO-Role

正常に更新されたことを確認します。

動作確認

AWS SSOのユーザーポータル URLにアクセスし、ユーザー名を入力します。

パスワードを入力します。

ユーザーにアタッチされているアプリケーションが表示されるので、作成したアプリケーションを選択します。

画面が遷移するので少し待ちます。

AWSマネージメントコンソールにログイン出来ました。

本エントリ内で作成したIAMロールでログインしていることが分かります。

まとめ

今回は、非Organizations環境のAWSアカウントに対して、AWS SSOのIDストアユーザーを使ってSSOするところまでを検証していきました。AWS SSOの標準で用意されているアプリケーションにAWSマネージメントコンソールへのログインアプリケーションがあったりと、比較的シンプルに検証が出来たかなと思います。本エントリがどなたかの参考になりましたら幸いです。

以上、大阪オフィスの林がお送りしました!