チュートリアル: Microsoft Entra SSO と AWS Single-Account Access の統合
このチュートリアルでは、AWS Single-Account Access を Microsoft Entra ID と統合する方法について説明します。 AWS Single-Account Access を Microsoft Entra ID と統合すると、次のことができます。
- AWS Single-Account Access にアクセスできるユーザーを Microsoft Entra ID で制御する。
- ユーザーが自分の Microsoft Entra アカウントで AWS Single-Account Access に自動的にサインインできるようにする。
- 1 つの場所でアカウントを管理します。
Microsoft Entra アプリケーション ギャラリーのさまざまな AWS アプリケーションについて
下記の情報を利用して、Microsoft Entra アプリケーション ギャラリーの AWS Single Sign-On アプリケーションと AWS Single-Account Access アプリケーションのどちらを使用するかを判断します。
AWS Single Sign-On
AWS Single Sign-On は、2021 年 2 月に Microsoft Entra アプリケーション ギャラリーに追加されました。 Microsoft Entra ID を通してサインインすると、複数の AWS アカウントや AWS アプリケーションへのアクセスを一元的に管理しやすくなります。 一度 Microsoft Entra ID と AWS SSO とのフェデレーションを行って、1 つの場所から AWS SSO を使用して、すべての AWS アカウントにわたってアクセス許可を管理します。 AWS SSO では、アクセス許可が自動的にプロビジョニングされ、それらは、ポリシーやアクセスの割り当てを更新するときに最新の状態に維持されます。 エンド ユーザーは、自分の Microsoft Entra 資格情報を使用して認証し、AWS コンソール、コマンド ライン インターフェイス、AWS SSO 統合アプリケーションにアクセスすることができます。
AWS Single-Account Access
AWS Single-Account Access は、これまで数年間にわたってお客様に使用されており、これを使用すると、Microsoft Entra ID を 1 つの AWS アカウントにフェデレーションし、Microsoft Entra ID を使用して AWS IAM ロールへのアクセスを管理できます。 AWS IAM 管理者は、各 AWS アカウントにロールとポリシーを定義します。 各 AWS アカウントのために、Microsoft Entra ID 管理者は、AWS IAM へのフェデレーション、アカウントへのユーザーまたはグループの割り当て、ロールのアクセスを承認するアサーションを送信するための Microsoft Entra ID の構成を行います。
機能 | AWS Single Sign-On | AWS Single-Account Access |
---|---|---|
条件付きアクセス | すべての AWS アカウントに対して単一の条件付きアクセス ポリシーがサポートされます。 | すべてのアカウントに対して単一の条件付きアクセス ポリシーまたはアカウントごとにカスタム ポリシーがサポートされます |
CLI アクセス | サポートされています | サポートされています |
Privileged Identity Management | サポートあり | サポートされていません |
アカウント管理の一元化 | AWS でのアカウント管理を一元化します。 | Microsoft Entra ID でのアカウント管理を一元化します (おそらく、アカウントごとに Microsoft Entra ID のエンタープライズ アプリケーションが必要になります)。 |
SAML 証明書 | 単一の証明書 | アプリやアカウントごとに別個の証明書 |
AWS Single-Account Access のアーキテクチャ
複数のインスタンスに対して複数の識別子を構成できます。 次に例を示します。
https://signin.aws.amazon.com/saml#1
https://signin.aws.amazon.com/saml#2
Microsoft Entra ID ではこれらの値から # の値を削除し、正しい値 https://signin.aws.amazon.com/saml
を SAML トークンの対象 URL として送信します。
次の理由により、このアプローチをお勧めします。
アプリケーションごとに一意の X509 証明書が提供されます。 AWS アプリのインスタンスごとに異なる証明書の有効期限を設定でき、それらを個別の AWS アカウントに基づいて管理できます。 この場合、証明書全体のロールオーバーが容易になります。
Microsoft Entra ID での AWS アプリによるユーザー プロビジョニングを有効にでき、続いてその AWS アカウントからすべてのロールが Microsoft のサービスによってフェッチされます。 アプリでの AWS ロールの追加や更新は手動で行う必要はありません。
アプリに対してアプリ所有者を個別に割り当てることができます。 このユーザーは、Microsoft Entra ID で直接アプリを管理できます。
Note
必ずギャラリー アプリケーションのみを使用してください。
前提条件
開始するには、次が必要です。
- Microsoft Entra サブスクリプション。 サブスクリプションがない場合は、無料アカウントを取得できます。
- AWS で IAM IdP が有効なサブスクリプション。
- クラウド アプリケーション管理者と共に、アプリケーション管理者も、Microsoft Entra ID でアプリケーションを追加または管理することができます。 詳細については、Azure の組み込みロールに関するページを参照してください。
Note
ロールのインポートを行う際に、Microsoft Entra ID でロールを手動で編集することは避けてください。
シナリオの説明
このチュートリアルでは、テスト環境で Microsoft Entra の SSO を構成してテストします。
- AWS Single-Account Access では、SP および IDP によって開始される SSO がサポートされます。
注意
このアプリケーションの識別子は固定文字列値であるため、1 つのテナントで構成できるインスタンスは 1 つだけです。
ギャラリーからの AWS Single-Account Access の追加
Microsoft Entra ID への AWS Single-Account Access の統合を構成するには、ギャラリーからマネージド SaaS アプリの一覧に AWS Single-Account Access を追加する必要があります。
- クラウド アプリケーション管理者以上として Microsoft Entra 管理センターにサインインします。
- [ID]>[アプリケーション]>[エンタープライズ アプリケーション]>[新しいアプリケーション] に移動します。
- [ギャラリーから追加する] セクションで、検索ボックスに「AWS Single-Account Access」と入力します。
- 結果のパネルから [AWS Single-Account Access] を選択し、アプリを追加します。 お使いのテナントにアプリが追加されるのを数秒待機します。
または、Enterprise App Configuration ウィザードを使用することもできます。 このウィザードでは、テナントへのアプリケーションの追加、アプリへのユーザーとグループの追加、ロールの割り当てができるほか、SSO の構成も行うことができます。 Microsoft 365 ウィザードの詳細をご覧ください。
または、Enterprise App Configuration ウィザードを使用することもできます。 このウィザードでは、テナントへのアプリケーションの追加、アプリへのユーザーとグループの追加、ロールの割り当てができるほか、SSO の構成も行うことができます。 O365 ウィザードの詳細については、こちらを参照してください。
AWS Single-Account Access 用の Microsoft Entra SSO の構成とテスト
B.Simon というテスト ユーザーを使用して、AWS Single-Account Access に対する Microsoft Entra SSO を構成してテストします。 SSO が機能するためには、Microsoft Entra ユーザーと AWS Single-Account Access の関連ユーザーとの間にリンク関係を確立する必要があります。
AWS Single-Account Access で Microsoft Entra SSO を構成してテストするには、次の手順を行います。
- Microsoft Entra SSO を構成する - ユーザーがこの機能を使用できるようにします。
- Microsoft Entra のテスト ユーザーの作成 - B.Simon を使用して Microsoft Entra シングル サインオンをテストします。
- Microsoft Entra テスト ユーザーを割り当てる - B.Simon が Microsoft Entra シングル サインオンを使用できるようにします。
- AWS Single-Account Access の SSO の構成 - アプリケーション側でシングル サインオン設定を構成します。
- AWS Single-Account Access のテスト ユーザーの作成 - AWS Single-Account Access で B.Simon に対応するユーザーを作成し、Microsoft Entra のこのユーザーにリンクさせます。
- AWS Single-Account Access でロール プロビジョニングを構成する方法
- SSO のテスト - 構成が機能するかどうかを確認します。
Microsoft Entra SSO の構成
次の手順に従って Microsoft Entra SSO を有効にします。
クラウド アプリケーション管理者以上として Microsoft Entra 管理センターにサインインします。
[ID]>[アプリケーション]>[エンタープライズ アプリケーション]>[AWS Single-Account Access]>[シングル サインオン] に移動します。
[シングル サインオン方式の選択] ページで、 [SAML] を選択します。
[SAML によるシングル サインオンのセットアップ] ページで、 [基本的な SAML 構成] の鉛筆アイコンをクリックして設定を編集します。
[基本的な SAML 構成] セクションで、[識別子 (エンティティ ID)] と [応答 URL] の両方を同じ既定値 (
https://signin.aws.amazon.com/saml
) に更新します。 [保存] を選択して構成の変更を保存する必要があります。AWS アプリケーションでは特定の形式の SAML アサーションが使用されるため、カスタム属性のマッピングを SAML トークンの属性の構成に追加する必要があります。 次のスクリーンショットには、既定の属性一覧が示されています。
その他に、AWS アプリケーションでは、いくつかの属性が SAML 応答で返されることが想定されています。それらの属性を次に示します。 これらの属性も値が事前に設定されますが、要件に従ってそれらの値を確認することができます。
名前 ソース属性 名前空間 RoleSessionName user.userprincipalname https://aws.amazon.com/SAML/Attributes
Role user.assignedroles https://aws.amazon.com/SAML/Attributes
SessionDuration user.sessionduration https://aws.amazon.com/SAML/Attributes
Note
AWS では、アプリケーションに対してユーザーのロールが割り当てられていることを想定しています。 ユーザーに適切なロールを割り当てることができるように、Microsoft Entra ID でこれらのロールを設定してください。 Microsoft Entra ID でロールを構成する方法については、こちらを参照してください。
[SAML によるシングル サインオンのセットアップ] ページの [SAML 署名証明書] (手順 3) ダイアログ ボックスで、 [証明書の追加] を選択します。
新しい SAML 署名証明書を生成し、 [新しい証明書] を選択します。 証明書通知のメール アドレスを入力します。
(省略可能)[Make 証明書をアクティブ 選択できます。
[SAML 署名証明書] セクションで、 [フェデレーション メタデータ XML] を探して [ダウンロード] を選択し、証明書をダウンロードして、お使いのコンピューターに保存します。
[AWS Single-Account Access のセットアップ] セクションで、要件に基づいて適切な URL をコピーします。
Microsoft Entra テスト ユーザーを作成する
このセクションでは、B.Simon というテスト ユーザーを作成します。
- Microsoft Entra 管理センターにユーザー管理者以上でサインインしてください。
- [ID]>[ユーザー]>[すべてのユーザー] の順に移動します。
- 画面の上部で [新しいユーザー]>[新しいユーザーの作成] を選択します。
- [ユーザー] プロパティで、以下の手順を実行します。
- "表示名" フィールドに「
B.Simon
」と入力します。 - [ユーザー プリンシパル名] フィールドに「username@companydomain.extension」と入力します。 たとえば、「
B.Simon@contoso.com
」のように入力します。 - [パスワードを表示] チェック ボックスをオンにし、 [パスワード] ボックスに表示された値を書き留めます。
- [Review + create](レビュー + 作成) を選択します。
- "表示名" フィールドに「
- [作成] を選択します。
Microsoft Entra テスト ユーザーを割り当てる
このセクションでは、AWS Single-Account Access へのアクセスを B.Simon に許可し、シングル サインオンを使用できるようにします。
- クラウド アプリケーション管理者以上として Microsoft Entra 管理センターにサインインします。
- [ID]>[アプリケーション]>[エンタープライズ アプリケーション]>[AWS Single-Account Access] に移動します。
- アプリの概要ページで、[ユーザーとグループ] を選択します。
- [ユーザーまたはグループの追加] を選択し、 [割り当ての追加] ダイアログで [ユーザーとグループ] を選択します。
- [ユーザーとグループ] ダイアログの [ユーザー] の一覧から [B.Simon] を選択し、画面の下部にある [選択] ボタンをクリックします。
- ユーザーにロールが割り当てられることが想定される場合は、[ロールの選択] ドロップダウンからそれを選択できます。 このアプリに対してロールが設定されていない場合は、[既定のアクセス] ロールが選択されていることを確認します。
- [割り当ての追加] ダイアログで、 [割り当て] をクリックします。
AWS Single-Account Access SSO の構成
別のブラウザー ウィンドウで、管理者として AWS 企業サイトにサインオンします。
AWS ホーム ページで、IAM を検索してクリックします。
[アクセス管理] ->[ID プロバイダー] に移動し、[プロバイダーの追加] ボタンをクリックします。
[ID プロバイダーの追加] ページで、次の手順を実行します。
a。 [Provider type](プロバイダーの種類) で [SAML] を選択します。
b. [プロバイダー名] にプロバイダー名を入力します (例: WAAD)。
c. ダウンロードしたメタデータ ファイルをアップロードするには、[ファイルの選択] を選びます。
d. [プロバイダーの追加] をクリックします。
[ロール]>[ロールの作成] を選択します。
[Create role] ページで、以下の手順を実行します。
a。 [信頼されたエンティティの種類] を選択し、[SAML 2.0 フェデレーション] を選択します。
b. [SAML 2.0 ベースのプロバイダー] で、先ほど作成した SAML プロバイダーを選択します (例: WAAD)。
c. [Allow programmatic and AWS Management Console access] を選択します。
d. [次へ] を選択します。
[アクセス許可ポリシー] ダイアログ ボックスで、組織の規定に準拠した適切なポリシーをアタッチします。 [次へ] を選択します。
[確認] ダイアログ ボックスで、次の手順を行います。
a. [ロール名] に、使用するロール名を入力します。
b. [説明] に、ロールの説明を入力します。
c. [ロールの作成] を選択します。
d. 必要な数のロールを作成し、それらを ID プロバイダーにマップします。
Microsoft Entra ユーザー プロビジョニングの際に AWS アカウントからロールをフェッチするには、AWS サービス アカウントの資格情報を使用します。 そのためには、AWS コンソール ホームを開きます。
[IAM] セクションで [ポリシー] を選択し、[ポリシーを作成する] をクリックします。
AWS アカウントからすべてのロールをフェッチする独自のポリシーを作成します。
a. [ポリシーの作成] セクションで、 [JSON] タブを選択します。
b. ポリシー ドキュメントで、次の JSON を追加します。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:ListRoles" ], "Resource": "*" } ] }
c. [次へ: タグ] をクリックします。
次のページで必要なタグを追加し、[次へ: 確認] をクリックすることもできます。
新しいポリシーを定義します。
a. [名前] に「AzureAD_SSOUserRole_Policy」と入力します。
b. ポリシーの [説明] に、「This policy will allow to fetch the roles from AWS accounts」と入力します。
c. [ポリシーの作成] を選択します。
AWS IAM サービスの新しいユーザー アカウントを作成します。
a. AWS IAM コンソールで、[ユーザー] を選択し、[ユーザーの追加] をクリックします。
b. [ユーザーの詳細の指定] セクションで、ユーザー名として「AzureADRoleManager」を入力し、[次へ] を選択します。
c. このユーザー用の新しいポリシーを作成します。
d. [既存のポリシーを直接アタッチ] を選択します。
e. [フィルター] セクションで、新しく作成されたポリシー AzureAD_SSOUserRole_Policy を検索します。
f. ポリシーを選択し、[次へ] を選択します。
選択内容を確認し、[ユーザーの作成] を選択します。
注: このユーザーのサードパーティのアクセス キーを必ず作成してダウンロードしてください。 このキーを Microsoft Entra のユーザー プロビジョニング セクションに使用して、AWS コンソールからロールをフェッチします。
ユーザーのユーザー資格情報をダウンロードするには、[セキュリティ資格情報] タブでコンソール アクセスを有効にします。
これらの資格情報を Microsoft Entra のユーザー プロビジョニング セクションに入力して、AWS コンソールからロールをフェッチします。
注意
AWS には、AWS SSO を構成するためのAWSの権限や制限のセットが必要です。 AWS の制限の詳細については、 こちらの ページを参照してください。
AWS Single-Account Access でロール プロビジョニングを構成する方法
Microsoft Entra 管理ポータルの AWS アプリで、[プロビジョニング] に移動します。
注: コンソール アクセスを有効にするときに返されるユーザー名とパスワードは、clientsecret の値とシークレット トークンの値に必要なものではありません。 代わりに、この手順用のサード パーティのアクセス キーを作成します。
アクセス キーとシークレットをそれぞれ [クライアント シークレット] フィールドと [シークレット トークン] フィールドに入力します。
a. AWS ユーザーのアクセス キーを [clientsecret]/(clientsecret/) フィールドに入力します。
b. AWS ユーザー シークレットを [シークレット トークン] フィールドに入力します。
c. [接続テスト] を選択します。
d. [保存] を選択して設定を保存します。
[設定] セクションの [プロビジョニング状態] で [オン] を選択します。 次に、 [保存] を選択します。
Note
プロビジョニング サービスは、AWS から Microsoft Entra ID にロールをインポートするだけです。 Microsoft Entra ID のユーザーとグループが、このサービスによって AWS にプロビジョニングされることはありません。
Note
プロビジョニングの資格情報を保存したら、初回同期サイクルが実行されるまで待機する必要があります。 同期には通常、約 40 分かかります。 その状態は、 [プロビジョニング] ページ下部の [現在の状態] で確認できます。
AWS Single-Account Access のテスト ユーザーの作成
このセクションの目的は、AWS Single-Account Access で B.Simon というユーザーを作成することです。 AWS Single-Account Access では、SSO 用にユーザーをシステムに作成する必要がないため、ここで操作を実行する必要はありません。
SSO のテスト
このセクションでは、次のオプションを使用して Microsoft Entra のシングル サインオン構成をテストします。
SP Initiated:
[Test this application] (このアプリケーションをテストする) をクリックすると、ログイン フローを開始できる AWS Single-Account Access のサインオン URL にリダイレクトされます。
AWS Single-Account Access のサインオン URL に直接移動し、そこからログイン フローを開始します。
IDP Initiated:
- [Test this application] (このアプリケーションをテストする) をクリックすると、SSO を設定した AWS Single-Account Access に自動的にサインインします。
また、Microsoft マイ アプリを使用して、任意のモードでアプリケーションをテストすることもできます。 マイ アプリで [AWS Single-Account Access] タイルをクリックすると、SP モードで構成されている場合は、ログイン フローを開始するためのアプリケーション サインオン ページにリダイレクトされます。IDP モードで構成されている場合は、SSO を設定した AWS Single-Account Access に自動的にサインインされます。 マイ アプリの詳細については、マイ アプリの概要に関するページを参照してください。
既知の問題
AWS Single-Account Access プロビジョニング統合は、AWS 中国リージョンでは使用できません。
[プロビジョニング] セクションの [マッピング] サブセクションには、"読み込み中..." というメッセージが表示され、属性マッピングは表示されません。 現在サポートされている唯一のプロビジョニング ワークフローは、ユーザーまたはグループ割り当て時の選択のために、AWS から Microsoft Entra ID にロールをインポートすることです。 このための属性マッピングは事前に決定されており、構成はできません。
[準備中] セクションでは、1 つの AWS テナントに対して、一度に 1 セットの資格情報の入力だけがサポートされています。 インポートされたすべてのロールは、AWS テナントの Microsoft Entra ID
servicePrincipal
オブジェクトのappRoles
プロパティに書き込まれます。プロビジョニングのために複数の AWS テナント (
servicePrincipals
によって表される) をギャラリーから Microsoft Entra ID に追加できます。 ただし、プロビジョニングに使用される複数の AWSservicePrincipals
からインポートされたすべてのロールを、SSO に使用される単一のservicePrincipal
に自動的に書き込むことができないという既知の問題があります。回避策として、Microsoft Graph API を使用して、プロビジョニングが構成されている各 AWS
servicePrincipal
にインポートされたすべてのappRoles
を抽出できます。 その後、これらのロール文字列を、SSO が構成されている AWSservicePrincipal
に追加できます。AWS から Microsoft Entra ID へのインポート対象となるロールは、次の要件を満たす必要があります。
- ロールには、AWS で SAML プロバイダーが 1 つだけ定義されている必要があります。
- ロールの ARN (Amazon Resource Name) と、関連付けられている SAML プロバイダーの ARN を組み合わせた長さが 240 文字未満である必要があります。
ログの変更
- 01/12/2020 - ロールの長さの上限が 119 文字から 239 文字に増加。
次の手順
AWS Single-Account Access を構成したら、組織の機密データを流出と侵入からリアルタイムで保護するセッション制御を適用することができます。 セッション制御は、条件付きアクセスを拡張したものです。 Microsoft Defender for Cloud Apps でセッション制御を強制する方法をご覧ください。