AWS SSOのIDストアユーザーを使って非Organizations環境のAWSアカウントにSSOしてみた
はじめに
こんにちは。大阪オフィスの林です。
今回、非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ロールの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にアクセスし、ユーザー名を入力します。
ユーザーにアタッチされているアプリケーションが表示されるので、作成したアプリケーションを選択します。
本エントリ内で作成したIAMロールでログインしていることが分かります。
まとめ
今回は、非Organizations環境のAWSアカウントに対して、AWS SSOのIDストアユーザーを使ってSSOするところまでを検証していきました。AWS SSOの標準で用意されているアプリケーションにAWSマネージメントコンソールへのログインアプリケーションがあったりと、比較的シンプルに検証が出来たかなと思います。本エントリがどなたかの参考になりましたら幸いです。
以上、大阪オフィスの林がお送りしました!