🐫

EntraIDを使用してAWS SSOアクセスしてみた

2024/11/23に公開

※下記記事の続編です
https://zenn.dev/shuk/articles/6c381ede01ec30

IdP(Identity Provider)としてMicrosoft Entra IDを利用してAWSアカウントにSSOでログインする設定手順となります。

1. 前提条件

  • 下記手順のEntraID設定が完了していること
    https://zenn.dev/shuk/articles/6c381ede01ec30
  • 上記で設定したEntra IDの以下の情報が手元にあること
    • SAML証明書(Base64)ファイル
    • Entra識別子
    • ログインURL
  • 上記で設定したユーザー(awstest)の情報が手元にあること

2. AWS側設定

2-1. IAM Identity Center有効化

IAM Identity Centerをマネジメントコンソールで有効化していきます。

  1. Organizationsの画面で「組織を作成」します。

    今回は他のアカウントは追加せずに進めます。

  2. IAM Identity Centerの画面に行き、「有効にする」をクリックする。
  • 画面右上でリージョンを選択
    • ap-northeast-1(東京)を選択推奨
      ※IAM Identity Centerはリージョンごとのサービスです



      有効化後のダッシュボード

      Organizationsの場合、IAM Identity Center管理を他のアカウントに委任して管理アカウントへのアクセスを最小限にすることが推奨ですが、今回は1アカウントなのでこのままにします。
  1. 「設定に移動」で設定画面を開きます。

2-2. 外部IDプロバイダー設定

Azureポータルでコピーした値と証明書を使用して、IAM Identity Centerで外部IDプロバイダーを設定します。

  1. IAM Identity Centerの左側のメニューから「Settings」を選択
  2. 「アイデンティティソース」セクションで「アクション」-「アイデンティティソースを変更」をクリックします。
  3. 「外部IDプロバイダー」を選択して「次へ」
  4. IdPのメタデータを設定します。

    IdPサインインURL:EntraIDの「ログインURL」を入力
    IdP発行者URL:EntraIDの「Entra識別子」を入力
    IdP証明書:EntraIDの「SAML証明書」をアップロード

  5. 確認画面になるので、「承諾」と入力して確定します(「承認」ではなく「承諾」です。わかりづらい...)。

2-3. 許可セット作成

  1. IAM Identity Centerコンソールの左側のメニューから「Permission sets」を選択
  2. 「許可セットを作成」をクリック


  3. 「事前定義された許可セット」を選択し、「AdministratorAccess」ポリシーを選択し、「次へ」をクリック
    今回はあらかじめ用意されている許可セットを使用します。
    ※※本番環境では必要最小限の権限を設定することを推奨
  4. 「セッション期間」は一旦12時間に設定し、「次へ」をクリック
  5. 設定内容を確認して「作成」をクリック

2-4. SAML設定情報

  1. IAM Identity Centerの左側のメニューから「Settings」を選択
  2. アイデンティティソースの「Action」->「認証の管理」を選択
  3. サービスプロバイダーのメタデータを取得
  • 「メタデータファイルをダウンロード」をクリックし、ファイルをダウンロード
  • 「IAM Identity Center Assertion Consumer Service (ACS) の URL」の値をコピー
  • 「IAM Identity Center 発行者 URL」の値をコピー


  1. IAM Identity Centerの左側のメニューから「Settings」を選択し、「自動プロビジョニング」をEnableにする

  2. 「SCIMエンドポイント」、「アクセストークン」をコピーする

2-5. AWSアカウントアクセス設定

2-5-1. ユーザー追加

  1. IAM Identity Centerコンソールの左側のメニューから「Users」を選択
  2. 「ユーザーを追加」をクリック
  3. ユーザーの情報を入力し、「Next」をクリック
  • ユーザー名:awstest@xxxxx.onmicrosoft.com
  • Eメールアドレス:ユーザー名と同じで可
  • 名:Test
  • 姓:User
  • 表示名:自動入力
  1. グループ追加は無しで、「Next」をクリック
  2. 確認画面が表示されるので、確認して問題なければ「ユーザーを追加」をクリック

2-5-2. アカウントへの割り当て

  1. IAM Identity Centerコンソールの左側のメニューから「AWS accounts」を選択
  2. 現在のAWSアカウントを選択し、「ユーザーまたはグループを割り当て」をクリック
  3. ユーザーを選択して「次へ」をクリック
  4. 付与したい許可セットを選択して、「次へ」をクリック
  5. 確認画面が表示されるので、確認して問題なければ「送信」をクリック

3. Azure側EntraID設定

3-1. SAML設定入力

  1. Azureポータルにログイン
  2. 「Microsoft Entra ID」 > 「エンタープライズアプリケーション」に移動
  3. 作成したAWS Single-Account Accessをクリック
  4. 左メニューから「シングルサインオン」を開きます。
  5. 「基本的なSAML構成」セクションの「編集」をクリックします。
  6. 以下の情報を入力します。
    • 識別子(エンティティID):SAML設定情報で得た「IAM Identity Center 発行者 URL」の値
    • 応答URL(アサーション コンシューマー サービスURL):SAML設定情報で得た「IAM Identity Center Assertion Consumer Service (ACS) の URL」の値

      「保存」をクリックします。
      ※またはIAM Identity Centerでダウンロードしたサービスプロバイダーのメタデータファイルをアップロードすることでも設定可能です


3-2. プロビジョニング(参考)

  1. 「Microsoft Entra ID」->「エンタープライズアプリケーション」->「AWS Single-Account Access」の左メニューから「プロビジョニング」を開く
  2. 「作業の開始」をクリック
  3. プロビジョニングモードを「自動」に設定し、「管理者資格情報」を入力
  • clientsecret:IAM Identity Centerで取得した「SCIMエンドポイント」
  • シークレットトークン:IAM Identity Centerで取得した「アクセストークン」

4. ログイン確認

ようやくSSOでログインできる準備が整いました。
IAM Identity Centerの「Settings」画面に記載されている「AWS access portal URL」がSSOアクセス用ポータルとなります



ブラウザのシークレットウィンドウを開いて、ポータルのURLをコピペして開いてみます。

...来たっ!


Entraで作成したユーザーIDとパスワードを入力してみると、無事ポータルにアクセスできました。



許可セットを選択して対象のアカウントにアクセスすることができます。


ちなみにOrganizationsにAWSアカウントを追加してアカウントの割り当てを実施すると、ポータルから複数アカウントを選択することが可能です。

5. まとめ

IdP(Identity Provider)としてMicrosoft Entra IDを利用してAWSアカウントにSSOでログインする設定手順を紹介しました。
本当はTerraformで設定したかったのですが、IAM Identity Center有効化など、Terraform対応していない設定もあり、今回は断念しました。
また、次回は自動プロビジョニングを試してみたいと思っています。

Discussion