+++ title = "EntraIDをAWSのIdPとして利用して、シングルサインオンする" date = 2025-03-16T22:23:00+09:00 lastmod = 2025-03-16T22:23:00+09:00 description = "お仕事で部門のサーバー管理者・クラウド管理者になって気になったものを検証してみたシリーズだよ。EntraIDをAWSのIdPとして利用して、シングルサインオンするための手順をまとめたよ" tags = ["aws", "クラウド"] categories = ["インフラ"] author = "kazu634" images = ["ogp/2025-03-16-use-entraid-as-idp-for-aws.webp"] +++ お仕事で部門のサーバー管理者・クラウド管理者になって気になったものを検証してみたシリーズだよ。EntraIDをAWSのIdPとして利用して、シングルサインオンするための手順をまとめたよ 大まかな見取り図は以下の通りです: Untitled ## 必要なもの - `EntraID` (個人のアカウントで`Azure`契約すると、自動的に`EntraID`が作成されるから、それを利用するのがお手軽) - `AWS` ## SSO の設定手順 `SSO`に必要となる手順をまとめていきます。 1. `AWS`: `SSO`の`IdP`を指定し、設定ファイルを取得する 2. `EntraID`: Enterprise Applicationの登録 3. `EntraID`: `SSO` (SAML連携) の設定 4. `EntraID`: 連携する`Claim`の設定 5. `EntraID`: AWSにログインを許可するユーザー・グループの指定 6. `EntraID`: Federation設定用のファイルを取得する 7. `AWS`: Federation設定y設定用のファイルの読み込み 8. `AWS`: Automatic Provisioningの有効化 9. `EntraID`: Provisioningの設定 10. `EntraID`: Provisioningの実施 11. `AWS`: Permission sets作成 12. `AWS`: プロビジョニングされたユーザー・グループへの権限割り当て 13. 動作確認 ### AWS: SSOのIdPを指定し、設定ファイルを取得する AWS側にログインし、`IAM Identity Center`を開きます。`[Settings]`をクリックします。下部の`[Identity source]`をクリックし、右側の`[Actions]`から、`[Change identity source]`をクリックします。 2025_03_16_13_41 `IdP`の種類として、`External identity provider`を選択し、`[Next]`ボタンをクリックします。 2025_03_16_13_45 `AWS`側の`IdP`の設定をまとめたファイルをダウンロードします。図の`[Download metadata file]`をクリックし、ダウンロードします: 2025_03_16_13_48 ### EntraID: Enterprise Applicationの登録 `EntraID`にログインして、左側のペインから`[Enterprise applications]`をクリックします: 2025_03_16_13_49 表示される画面で`[New application]`をクリックします。 2025_03_16_13_51 検索用のテキストボックスに「aws iam」と入力し、表示された「AWS IAM Identity Center (successor to AWS Single Sign-On」をクリックします: 2025_03_16_13_52 次の画面が表示されます。`[Create]`ボタンをクリックします: 2025_03_16_13_52-02 ### EntraID: SSO (SAML連携) の設定 SAML連携の設定を行います。作成した`AWS IAM Identity Center`をクリックし、左側のペインから`[Single sign-on]`をクリック、右側に表示される`SAML`をクリックします: 2025_03_16_13_54 表示される画面で`Upload metadata file`をクリックします: 2025_03_16_13_55 `AWS`からダウンロードした設定ファイルをアップロードします: 2025_03_16_13_56 `Save`ボタンをクリックします: 2025_03_16_13_57 ### EntraID: 連携するClaimの設定 以下の`Claim`を追加します: | # | Type | Claim | Value | | --- | ----- | -------------- | ------------------ | | 1 | - | Role | user.assignedroles | | 2 | Group | Security Group | Group ID | `Attributes & Claims`から、`Add new claim`をクリックします: 2025_03_16_14_04 以下のように入力し、`Save`ボタンをクリックします: 2025_03_16_14_04-02 次に`Add a group claim`をクリックします: 2025_03_16_14_07 `Security groups`を選択し、`Group ID`を選択します。その後、`Save`ボタンをクリックします: 2025_03_16_14_07-02 ### EntraID: AWSにログインを許可するユーザー・グループの指定 左側のペインの`Users and groups`から、AWSにログインを許可させたいユーザー・グループを指定します: 2025_03_16_14_17 ### EntraID: Federation設定用のファイルを取得する 連携用のファイルをダウンロードします: 2025_03_16_14_10 ### AWS: Federation設定用のファイルの読み込み `EntraID`からダウンロードしたファイルを読み込ませます。先ほどメタデータをダウンロードしたページ下部の`IdP SAML metadata`のセクションにある`Choose file`をクリックし、`EntraID`から取得したファイルをアップロードします: 2025_03_16_14_11 ファイルを選択すると、次のようになります。`Next`ボタンをクリックします: 2025_03_16_14_12 次の画面が表示されます。`Change Identity source`をクリックします: 2025_03_16_14_12-02 ### AWS: Automatic Provisioningの有効化 この段階では、`AWS`側にアカウントが存在しないため、ログインできません。`EntraID`側で指定されたユーザー・グループを自動的に`AWS`側のアカウントとして追加するための設定を実施します。 以下の画面が表示されていると思いますので、`Automatic Provisioning`で`Enable`ボタンをクリックします: 2025_03_16_14_30 `EntraID`側で指定してあげる必要がある`SCIM endpoint`と`Access token`が表示されます。メモしておきましょう: 2025_03_16_14_31 ### EntraID: Provisioningの設定 EntraID側で必要となるアカウントプロビジョニングの設定を説明します。`AWS IAM Identity Center`で表示される、`Provision User Accounts`をクリックします: 2025_03_16_14_32 対象を指定します: 2025_03_16_14_18 `Provisioning Mode`を`Automatic`に指定します。 2025_03_16_14_34 ### EntraID: Provisioningの実施 `AWS IAM Identity Center`の`Provisioning`をクリックします: 2025_03_16_14_33 `Start Provisioning`をクリックします: 2025_03_16_14_36 しばらく経つと、以下のように表示され、プロビジョニングが完了したことがわかります: 2025_03_16_14_36-02 `AWS`側のユーザーを見ると、プロビジョニングされていることがわかります: 2025_03_16_14_43 ### AWS: Permission sets作成 `AWS`にプロビジョニングされたユーザーに対して、権限 (= `Permission sets`)を付与します。まずは`Permission sets`を作成していきます。今回は`Administrator Access`用の`Permission sets`を作成していきます: 2025_03_16_14_44 ### AWS: プロビジョニングされたユーザー・グループへの権限割り当て `IAM Identity Center` - `AWSOrganizations: AWS accounts`をクリックします。紐付けたい`AWS`アカウントを選択し、`Assign users or groups`ボタンをクリックします: 2025_03_16_14_50-03 紐付けるユーザーやグループを指定し、`Next`ボタンをクリックします: 2025_03_16_14_48 紐づける`Permission set`を指定し、`Next`ボタンをクリックします: 2025_03_16_14_50 確認の画面が表示されます。`Create`ボタンをクリックします: 2025_03_16_14_50-02 ### 動作確認 `EntraID`に表示される`User access URL`をコピーし、ブラウザで接続してみます: 2025_03_16_15_28 アカウント選択の画面が表示され、`SSO`が機能しているように見えます: 2025_03_16_15_29 ログイン後、以下のように表示されれば成功です: 2025_03_16_15_29-02 ## References - [AWS Single Sign\-On with Microsoft Entra ID](https://never-stop-learning.de/aws-single-sign-on-with-microsoft-entra-id/)