+++
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として利用して、シングルサインオンするための手順をまとめたよ
## 必要なもの
- `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]`をクリックします。
`IdP`の種類として、`External identity provider`を選択し、`[Next]`ボタンをクリックします。
`AWS`側の`IdP`の設定をまとめたファイルをダウンロードします。図の`[Download metadata file]`をクリックし、ダウンロードします:
### EntraID: Enterprise Applicationの登録
`EntraID`にログインして、左側のペインから`[Enterprise applications]`をクリックします:
表示される画面で`[New application]`をクリックします。
検索用のテキストボックスに「aws iam」と入力し、表示された「AWS IAM Identity Center (successor to AWS Single Sign-On」をクリックします:
次の画面が表示されます。`[Create]`ボタンをクリックします:
### EntraID: SSO (SAML連携) の設定
SAML連携の設定を行います。作成した`AWS IAM Identity Center`をクリックし、左側のペインから`[Single sign-on]`をクリック、右側に表示される`SAML`をクリックします:
表示される画面で`Upload metadata file`をクリックします:
`AWS`からダウンロードした設定ファイルをアップロードします:
`Save`ボタンをクリックします:
### EntraID: 連携するClaimの設定
以下の`Claim`を追加します:
| # | Type | Claim | Value |
| --- | ----- | -------------- | ------------------ |
| 1 | - | Role | user.assignedroles |
| 2 | Group | Security Group | Group ID |
`Attributes & Claims`から、`Add new claim`をクリックします:
以下のように入力し、`Save`ボタンをクリックします:
次に`Add a group claim`をクリックします:
`Security groups`を選択し、`Group ID`を選択します。その後、`Save`ボタンをクリックします:
### EntraID: AWSにログインを許可するユーザー・グループの指定
左側のペインの`Users and groups`から、AWSにログインを許可させたいユーザー・グループを指定します:
### EntraID: Federation設定用のファイルを取得する
連携用のファイルをダウンロードします:
### AWS: Federation設定用のファイルの読み込み
`EntraID`からダウンロードしたファイルを読み込ませます。先ほどメタデータをダウンロードしたページ下部の`IdP SAML metadata`のセクションにある`Choose file`をクリックし、`EntraID`から取得したファイルをアップロードします:
ファイルを選択すると、次のようになります。`Next`ボタンをクリックします:
次の画面が表示されます。`Change Identity source`をクリックします:
### AWS: Automatic Provisioningの有効化
この段階では、`AWS`側にアカウントが存在しないため、ログインできません。`EntraID`側で指定されたユーザー・グループを自動的に`AWS`側のアカウントとして追加するための設定を実施します。
以下の画面が表示されていると思いますので、`Automatic Provisioning`で`Enable`ボタンをクリックします:
`EntraID`側で指定してあげる必要がある`SCIM endpoint`と`Access token`が表示されます。メモしておきましょう:
### EntraID: Provisioningの設定
EntraID側で必要となるアカウントプロビジョニングの設定を説明します。`AWS IAM Identity Center`で表示される、`Provision User Accounts`をクリックします:
対象を指定します:
`Provisioning Mode`を`Automatic`に指定します。
### EntraID: Provisioningの実施
`AWS IAM Identity Center`の`Provisioning`をクリックします:
`Start Provisioning`をクリックします:
しばらく経つと、以下のように表示され、プロビジョニングが完了したことがわかります:
`AWS`側のユーザーを見ると、プロビジョニングされていることがわかります:
### AWS: Permission sets作成
`AWS`にプロビジョニングされたユーザーに対して、権限 (= `Permission sets`)を付与します。まずは`Permission sets`を作成していきます。今回は`Administrator Access`用の`Permission sets`を作成していきます:
### AWS: プロビジョニングされたユーザー・グループへの権限割り当て
`IAM Identity Center` - `AWSOrganizations: AWS accounts`をクリックします。紐付けたい`AWS`アカウントを選択し、`Assign users or groups`ボタンをクリックします:
紐付けるユーザーやグループを指定し、`Next`ボタンをクリックします:
紐づける`Permission set`を指定し、`Next`ボタンをクリックします:
確認の画面が表示されます。`Create`ボタンをクリックします:
### 動作確認
`EntraID`に表示される`User access URL`をコピーし、ブラウザで接続してみます:
アカウント選択の画面が表示され、`SSO`が機能しているように見えます:
ログイン後、以下のように表示されれば成功です:
## References
- [AWS Single Sign\-On with Microsoft Entra ID](https://never-stop-learning.de/aws-single-sign-on-with-microsoft-entra-id/)