AWS IAM Identity Center(旧名AWS SSO)を用いてAzure ADでシングルサインオン

2022/10/08

AWS Azure

t f B! P L

複数のAWS環境を使っていると、アカウントの切り替えが面倒になる。

スイッチロールを使えば確かに手間は減るけど、アカウントが増えるたびにスイッチロールの設定するのは手間。

しかも、IAMユーザーを個別に作るのとかあり得なくない?

個人利用ならいざ知らず。

と、いうことでログインソースをAzure ADにしつつ、

複数のAWS環境にシームレスにシングルサインオンすることができる「IAM Identity Center」を使ってみた。

つい最近までは「AWS SSO」という名前で、

その名の通りいろいろなクラウドサービスのログインもできるようになる。

Identity Centerを利用するにはAWS Organizationsが有効になっていることが必須条件。


IAM Identity Center有効化とAzure ADとの連携

では、早速やってみよう。

まずはAWSコンソールで。アカウントはもちろんOrganizationsの管理アカウントね。

コンソールから「SSO」とかで検索すると「IAM Identity Center」が出てくる。

「有効化」をクリックする。


「アイデンティティソースを選択」をクリックする。


アイデンティティソースのアクションのところから「アイデンティティソースを変更」をクリックする。


ソースの選択画面で「外部IDプロバイダー」をクリックする。


「メタデータファイルをダウンロード」をクリックして、ファイルを一旦保存する。


次にAzure AD側の作業。

AzureポータルからAzure ADの管理画面に入って、「エンタープライズアプリケーション」をクリックする。


「新しいアプリケーション」をクリックする。


Azure ADギャラリーから「aws」と検索して、「AWS IAM Identity Center」をクリックする。

※似たような名前で「AWS Single-Account Access」というのを選ばないように。


「作成」をクリックする。


次に「シングルサインオン」をクリックする。


シングルサインオン方式は「SAML」をクリックする。


「メタデータファイルをアップロードする」をクリックする。

その後、AWSコンソールでダウンロードしたメタデータファイルを選択する。


AWSの情報が表示されるので「保存」をクリックする。


SAML証明書の箇所で、「フェデレーションメタデータXML」をダウンロードする。


次にAWSコンソールに戻り、先ほどダウンロードしたメタデータXMLファイルを

「Idp SAMLメタデータ」にアップロードする。


確認画面が表示されるので、「承諾」を入力して、「アイデンティティソースを変更」をクリックする。


以上で、AWSアクセスポータルのURLにアクセスしようとすると、

Azure ADの認証画面に転送されるようになる。


ユーザープロビジョニング(同期)

あとはAWS側にAzure ADと同じユーザーを作成すれば、そのユーザーはSSOログインできるようになるのだが、普通はプロビジョニングを使って

Azure AD上のユーザーを追加・削除した場合はAWS側も追加・削除といった同期させたい。


またまたAWSコンソール側から始める。

IAM Identity Centerのダッシュボード上で「自動プロビジョニング」という項目があるので、「有効化」をクリックする。


「SCIMエンドポイント」と「アクセストークン」が表示されるので、それぞれメモしておく。


次にAzureポータル側。

AWSのエンタープライズアプリケーションより「ユーザーとグループ」をクリックし、

「ユーザーまたはグループの追加」をクリックする。


AWSコンソールにアクセスさせたいユーザーもしくはグループを選択する。

俺のAzure ADはPremiumじゃないので、その場合はユーザー単位でしか割り当てられない。


ユーザーを追加したら、プロビジョニングの設定。

今度は「プロビジョニング」をクリックする。


「作業の開始」をクリックする。


プロビジョニングの設定。モードは「自動」でOK。

テナントのURLおよびシークレットトークンには先ほどAWSでメモをした、

「SCIMエンドポイント」と「アクセストークン」をそれぞれ入力して、

「テスト接続」をクリックする。


すると、続きの設定画面が表示されるので、一番下のプロビジョニング状態を「オン」にする。


順番が前後するけど、次は「設定」のところ。

エラー発生時のメール通知や範囲を選ぶ。

特に範囲のところは割り当てユーザーのみか、Azure ADのユーザー全てのどちらかを選ぶことができる。

全てを選択した場合、オブジェクトの数が多いとプロビジョニングに時間がかかる。


次は「属性マッピング」。

Azure ADのどの属性をAWS側に紐づけるかの設定。

必須項目(削除できないもの)以外は不要かなと思う。

ちなみにデフォルトがこの状態だけど、このまま同期しようとするとエラーになるので注意。


どれかを消せばいいんだろうけど、切り分けが面倒だったのでほとんど削除w

あとはしばらくするとAzure AD→AWSへの同期が行われる。


AWS側にもユーザーが表示されるようになったらOK。


以上でAzure側の作業は終わり。

ユーザーとAWSアカウントを紐付け

AWS上にプロビジョニングされたユーザーをそれぞれのAWSログインに紐付けを行う。

IAM Identity Centerから「AWSアカウント」をクリックする。

次にユーザーに割り当てたいアカウントをそれぞれチェックを入れて、

「ユーザーまたはグループの割り当て」をクリックする。


選択したアカウントにどのユーザーを割り当てるかを選択する。


次にどのレベルまで許可するかを決める。

許可セットがまだない場合は「許可セットを作成」をクリックする。


許可セットのタイプを選ぶ。

 

許可セットを選ぶ。

デフォルトでこれだけ用意されており、これにカスタマイズすることも可能。


許可セットの名前、セッション期間を決める。

名前は「AdministratorAccess」、セッション期間はデフォルトの1時間とした。


で、「作成」をクリックする。


これで許可セットが作成できたので、許可セットを選択して「次へ」をクリックする。


確認して「送信」をクリックする。


シングルサインオンしてみる

設定が終わったので、ログインしてみる。

アクセスポータルのURLにアクセスする。


Azure ADへリダイレクトされる。


AWSのポータル画面。

ログインしたユーザーに応じたAWSアカウントの一覧が表示される。

「Management console」をクリックすると、各アカウントのコンソールにログインできる。

ちなみに別のアカウントに同時ログインみたいなことはできない。


別のユーザーでログインしてみた。

このような感じで、ユーザーごとにログインできるアカウント、権限をコントロールできる。



複数のAWSアカウントをシームレスにログインできるようになるのは非常に管理が楽になる。

しかもこの機能が無料で使えるのは有り難い。

これぐらいはみんな使ってると思うけどw


---------------------2022/10/11追記

Control Towerを使っているときは、ランディングゾーンの再設定(修復)をする必要があります。

でないと、手動作成した許可セットだとAdministrator権限であってもControl Towerの設定でエラーが出ます。


検索

Blog Archive

Popular Posts

About Me

自分の写真
性別:男
年齢:ついに40over
趣味:Snowboard、パソコン、iPhone、子育て

仕事:ユー子の社内SEとしてサーバ、NW等のインフラ全般をやってます

日々生活していく中で思ったことなどをつらつらと書いていきます。

どうぞよろしく!

ブログランキング

ブログランキング・にほんブログ村へ

QooQ