マルチアカウント構成でAWSを使っていたら、普通はOrganizationsで管理していて、
各アカウントへのログインは「AWS Identity Center」を使うよね。普通は。
Organizationsに属しているAWSアカウントならすぐに設定ができる。
一方で、何らかの理由でOrganizationsに取り込めないAWSアカウントにもSSOしたい場合。
今回がその方法。
Identity Centerでの設定
まずはIdentity Centerから「アプリケーション」→「新規アプリケーションの追加」をクリックする。
事前統合アプリケーションから「External AWS Account」を選択して「次へ」をクリックする。
表示名および説明を入力。
ここの表示名がIdentity Centerのポータル画面に表示される名前になるので、一意な名前にする。
IAM Identity Center SAML メタデータファイルをダウンロードする。
※証明書の方は必要かと思ってマークしたけど実際には不要ですw
必要に応じてセッション期間を設定して、「送信」をクリックする。
ログインしたい組織外AWSアカウントでの設定
別のブラウザを開いて、ログイン対象の組織外AWSアカウントのIAMコンソールを開く。
アクセス管理の「IDプロバイダ」をクリックする。
「プロバイダを追加」をクリックする。
プロバイダの設定でタイプは「SAML」、
プロバイダ名は任意の名前、
メタデータドキュメントに先ほどダウンロードしたSAMLメタデータファイルを指定する。
次にロールを作成するのだけど、その前にポリシーを新規で作りたければ作っておこう。
今回は既に用意されている「PowerUserAccess」を付与してみる。
ロールの作成画面に行き、「ロールを作成」をクリックする。
信頼されたエンティティタイプは「SAML 2.0 フェデレーション」を、
SAML2.0ベースのプロバイダーは先ほど作成したプロバイダを指定。
「プログラムとAWSマネジメントコンソールへのアクセスを許可する」を選択。
許可ポリシーは「PowerUserAccess」にしてみた。
ロール名に任意の名前を入力する。
問題がなければ「ロールを作成」をクリックする。
作成されたロールをクリックする。
ロールのARNが表示されるので、これを控えておく。
Identity Centerでの設定 その2
Identity Centerの方に戻る。
作成したアプリケーションの画面を開いて、「アクション」→「属性マッピングを編集」をクリックする。
属性マッピング画面で「新規属性マッピングの追加」をクリックする。
それぞれ以下の通り設定する。
(1)ユーザー属性:https://aws.amazon.com/SAML/Attributes/Role
(2)ユーザー属性にマッピング:arn::aws:iam::<アカウントID>:saml-provider/<プロバイダ名>,arn:aws:iam::<アカウントID>:role/<ロール名>
(3)形式:unspecified
(2)の箇所はここでの例は以下になる。(アカウントIDは"000000000000"にした)
arn:aws:iam::000000000000:saml-provider/AWS_Identity_Center,arn:aws:iam::000000000000:role/IAMRole_identity_center_poweruseraccess
アプリケーションのマッピングが終わったら、このアプリケーションを使わせるユーザーを決める。
「ユーザーを割り当て」をクリックする。
Identity Centerに登録されているユーザーが表示されるので、
ユーザーもしくはグループを選択する。
以上で、設定完了。
動作確認
先ほど割り当てたユーザーでIdentity Centerポータルにログインする。
すると、アプリケーションが表示されているはず。
無事にIAMロールでログインできた。
スイッチロールとの違い
やってることはスイッチロールと大して変わらないと思う。
むしろ設定はスイッチロールの方が手間がかからないと思う。
大きな違いは、スイッチロールだとスイッチ元となるAWSアカウントが限定的になるけど、
Identity Centerの場合はポータルから組織内アカウントと同じ感覚でログインできることかな。
もちろん、この設定はIdentity Centerの管理権限と組織外のアカウントでIAMロールの設定ができる権限が必要なので、
誰でも自由に設定できるわけじゃないw
AWS External Account以外にも色々なサービスにSSOすることができるので、Identity Centerは相当便利。
シングルサインオンを全部これで担うってのは結構厳しいかもしれないけど、
対応しているアプリがあるのであれば積極的に使ってみてはいいのではないだろうか。
0 件のコメント:
コメントを投稿