教學課程:Microsoft Entra SSO 與 AWS 單一帳戶存取整合

在本教學課程中,您將瞭解如何整合 AWS 單一帳戶存取與 Microsoft Entra ID。 在整合 AWS 單一帳戶存取與 Microsoft Entra ID 時,您可以.

  • 在 Microsoft Entra 識別碼中控制可存取 AWS 單一帳戶存取的人員。
  • 讓使用者使用其 Microsoft Entra 帳戶自動登入 AWS 單一帳戶存取。
  • 在一個集中式位置管理您的帳戶。

使用下列資訊,在 Microsoft Entra 應用連結庫中使用 AWS 單一登錄和 AWS 單一帳戶存取應用程式之間進行決策。

AWS 單一登錄

AWS 單一登錄 已於 2021 年 2 月新增至 Microsoft Entra 應用連結庫。 透過 Microsoft Entra ID 登入,可讓您輕鬆地集中管理多個 AWS 帳戶和 AWS 應用程式的存取權。 將 Microsoft Entra ID 與 AWS SSO 同盟一次,並使用 AWS SSO 從一個地方管理所有 AWS 帳戶的許可權。 AWS SSO 會自動布建許可權,並在您更新原則和存取指派時保持最新許可權。 終端使用者可以使用其 Microsoft Entra 認證進行驗證,以存取 AWS 控制台、命令行介面和 AWS SSO 整合式應用程式。

AWS 單一帳戶存取

過去數年來,客戶已使用 AWS 單一帳戶存取 ,並可讓您將 Microsoft Entra 標識子同盟至單一 AWS 帳戶,並使用 Microsoft Entra ID 來管理 AWS IAM 角色的存取權。 AWS IAM 系統管理員會在每個 AWS 帳戶中定義角色和原則。 針對每個 AWS 帳戶,Microsoft Entra 系統管理員會同盟至 AWS IAM、將使用者或群組指派給帳戶,以及設定 Microsoft Entra ID 來傳送授權角色存取的判斷提示。

功能 AWS 單一登錄 AWS 單一帳戶存取
條件式存取 支援所有 AWS 帳戶的單一條件式存取原則。 支援每個帳戶的單一條件式存取原則或每個帳戶的自定義原則
CLI 存取 支援 支援
Privileged Identity Management 支援 不支援
集中式帳戶管理 在 AWS 中集中管理帳戶。 在 Microsoft Entra 識別碼中集中管理帳戶(可能需要每個帳戶的 Microsoft Entra 企業應用程式)。
SAML 憑證 單一憑證 個別應用程式/帳戶的憑證

AWS 單一帳戶存取架構

Screenshot showing Microsoft Entra ID and AWS relationship.

您可以為多個實例設定多個識別碼。 例如:

  • 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 帳戶擷取所有角色。 您不需要手動新增或更新應用程式上的 AWS 角色。

  • 您可以個別為應用程式指派應用程式擁有者。 此人員可以直接在 Microsoft Entra 識別碼中管理應用程式。

注意

請確定您只使用資源庫應用程式。

必要條件

若要開始使用,您需要下列項目:

  • Microsoft Entra 訂用帳戶。 如果您沒有訂用帳戶,可以取得免費帳戶
  • 已啟用 AWS IAM IdP 的訂用帳戶。
  • 除了 Cloud Application 管理員 istrator,Application 管理員 istrator 也可以在 Microsoft Entra ID 中新增或管理應用程式。 如需詳細資訊,請參閱 Azure 內建角色

注意

執行角色匯入時,不應該在 Microsoft Entra ID 中手動編輯角色。

案例描述

在本教學課程中,您會在測試環境中設定及測試 Microsoft Entra SSO。

  • AWS 單一帳戶存取支援 由SP和IDP 起始的SSO。

注意

此應用程式的標識碼是固定字串值,因此一個租使用者中只能設定一個實例。

若要設定將 AWS 單一帳戶存取整合到 Microsoft Entra ID 中,您需要從資源庫將 AWS 單一帳戶存取新增到受控 SaaS 應用程式清單。

  1. 以至少雲端應用程式 管理員 istrator 身分登入 Microsoft Entra 系統管理中心
  2. 流覽至 [身分>識別應用程式>企業應用程式>] [新增應用程式]。
  3. 在 [ 從資源庫 新增] 區段的搜尋方塊中,輸入 AWS 單一帳戶存取
  4. 從結果面板選取 [AWS 單一帳戶存取 ],然後新增應用程式。 將應用程式新增至您的租用戶時,請稍候幾秒鐘。

或者,您也可以使用企業 應用程式組態 精靈。 在此精靈中,您可以將應用程式新增至租用戶、將使用者/群組新增至應用程式、指派角色,以及逐步進行 SSO 設定。 深入瞭解 Microsoft 365 精靈。

或者,您也可以使用企業 應用程式組態 精靈。 在此精靈中,您可以將應用程式新增至租用戶、將使用者/群組新增至應用程式、指派角色,以及逐步進行 SSO 設定。 您可以在這裡深入瞭解 O365 精靈。

設定及測試 AWS 單一帳戶存取的 Microsoft Entra SSO

以名為 B.Simon 的測試用戶,設定及測試與 AWS 單一帳戶存取搭配運作的 Microsoft Entra SSO。 若要讓 SSO 能夠運作,您必須建立 Microsoft Entra 使用者與 AWS 單一帳戶存取中相關使用者之間的連結關聯性。

若要設定及測試與 AWS 單一帳戶存取搭配運作的 Microsoft Entra SSO,請執行下列步驟:

  1. 設定 Microsoft Entra SSO - 讓使用者能夠使用此功能。
    1. 建立 Microsoft Entra 測試使用者 - 以使用 B.Simon 測試 Microsoft Entra 單一登錄。
    2. 指派 Microsoft Entra 測試使用者 - 讓 B.Simon 能夠使用 Microsoft Entra 單一登錄。
  2. 設定 AWS 單一帳戶存取 SSO - 在應用程式端設定單一登入設定。
    1. 建立 AWS 單一帳戶存取測試使用者 - 使 AWS 單一帳戶存取中對應的 B.Simon 連結到該使用者在 Microsoft Entra 中的代表專案。
    2. 如何在 AWS 單一帳戶存取中設定角色布建
  3. 測試 SSO - 確認組態是否正常運作。

設定 Microsoft Entra SSO

遵循下列步驟來啟用 Microsoft Entra SSO。

  1. 以至少雲端應用程式 管理員 istrator 身分登入 Microsoft Entra 系統管理中心

  2. 流覽至 [身分>識別應用程式企業應用程式>>AWS 單一帳戶存取>單一登錄]。

  3. 在 [選取單一登入方法] 頁面上,選取 [SAML]

  4. 在 [使用 SAML 設定單一登錄] 頁面上,按兩下 [基本 SAML 組態] 的鉛筆圖示以編輯設定。

    Screenshot showing Edit Basic SAML Configuration.

  5. 在 [ 基本 SAML 組態 ] 區段中,以相同的預設值更新 標識碼 (實體標識符)[回復 URL ]: https://signin.aws.amazon.com/saml。 您必須選取 [ 儲存 ] 以儲存組態變更。

  6. 當您設定多個實例時,請提供識別碼值。 從第二個實例開始,請使用下列格式,包括符號來指定唯一 # 的SPN值。

    https://signin.aws.amazon.com/saml#2

  7. AWS 應用程式需要特定格式的 SAML 判斷提示,因此您必須將自定義屬性對應新增至 SAML 令牌屬性組態。 下列螢幕擷取畫面顯示預設屬性的清單。

    Screenshot showing default attributes.

  8. 除了上述屬性外,AWS 應用程式還需要在 SAML 回應中多傳回幾個屬性,如下所示。 這些屬性也會預先填入,但您可以根據需求來檢閱這些屬性。

    名稱 來源屬性 Namespace
    RoleSessionName user.userprincipalname https://aws.amazon.com/SAML/Attributes
    角色 user.assignedroles https://aws.amazon.com/SAML/Attributes
    SessionDuration user.sessionduration https://aws.amazon.com/SAML/Attributes

    注意

    AWS 預期指派給應用程式的使用者角色。 請在 Microsoft Entra ID 中設定這些角色,讓使用者可以指派適當的角色。 若要瞭解如何在 Microsoft Entra ID 中設定角色,請參閱 這裡

  9. 在 [ 使用 SAML 設定單一登錄] 頁面上的 [SAML 簽署憑證 (步驟 3)] 對話框中,選取 [ 新增憑證]。

    Screenshot showing Create new SAML Certificate.

  10. 產生新的 SAML 簽署憑證,然後選取 [ 新增憑證]。 輸入憑證通知的電子郵件位址。

    Screenshot showing New SAML Certificate.

  11. 在 [ SAML 簽署憑證 ] 區段中,尋找 [同盟元數據 XML ],然後選取 [ 下載 ] 以下載憑證並儲存在計算機上。

    Screenshot showing the Certificate download link.

  12. 在 [ 設定 AWS 單一帳戶存取 ] 區段中,根據您的需求複製適當的 URL。

    Screenshot showing Copy configuration URLs.

建立 Microsoft Entra 測試使用者

在本節中,您將建立名為 B.Simon 的測試使用者。

  1. 以至少使用者 管理員 istrator 身分登入 Microsoft Entra 系統管理中心
  2. 瀏覽至 [身分識別]>[使用者]>[所有使用者]。
  3. 選取畫面頂端的 [新增使用者>建立新使用者]。
  4. 在 [ 用戶 屬性] 中,遵循下列步驟:
    1. 在 [ 顯示名稱] 欄位中, 輸入 B.Simon
    2. 在 [ 使用者主體名稱] 欄位中, 輸入 username@companydomain.extension。 例如: B.Simon@contoso.com
    3. 選取 [顯示密碼] 核取方塊,然後記下 [密碼] 方塊中顯示的值。
    4. 選取 [檢閱 + 建立]。
  5. 選取 建立

指派 Microsoft Entra 測試使用者

在本節中,您會將 AWS 單一帳戶存取權授與 B.Simon,讓其能夠使用單一登錄。

  1. 以至少雲端應用程式 管理員 istrator 身分登入 Microsoft Entra 系統管理中心
  2. 流覽至 [身分>識別應用程式企業應用程式>>AWS 單一帳戶存取]。
  3. 在應用程式的 [概觀] 頁面中,選取 [ 使用者和群組]。
  4. 選取 [新增使用者/群組],然後在 [新增指派] 對話框中選取 [使用者和群組]。
    1. 在 [使用者和群組] 對話方塊中,從 [使用者] 列表中選取 [B.Simon],然後按一下畫面底部的 [選取] 按鈕。
    2. 如果您預期將角色指派給使用者,則可以從 [選取角色] 下拉式清單中選取該角色。 如果未為此應用程式設定任何角色,您會看到已選取 [預設存取權] 角色。
    3. 在 [新增指派] 對話方塊中,按一下 [指派] 按鈕。

設定 AWS 單一帳戶存取 SSO

  1. 在不同的瀏覽器視窗中,以系統管理員身分登入您的 AWS 公司網站。

  2. 在 AWS 首頁中,搜尋 IAM ,然後按兩下它。

    Screenshot of AWS services page, with IAM highlighted.

  3. 移至 [ 存取管理 -> 識別提供者 ],然後按兩下 [ 新增提供者] 按鈕。

    Screenshot of IAM page, with Identity Providers and Create Provider highlighted.

  4. 在 [ 新增識別提供者 ] 頁面中,執行下列步驟:

    Screenshot of Configure Provider.

    a. 針對 [ 提供者類型],選取 [ SAML]。

    b. 針對 [ 提供者名稱],輸入提供者名稱(例如: WAAD)。

    c. 若要上傳您下載的 元數據檔案,請選取 [ 選擇檔案]。

    d. 按兩下 [ 新增提供者]。

  5. 選取 [角色>建立角色]。

    Screenshot of Roles page.

  6. 在 [ 建立角色] 頁面上,執行下列步驟:

    Screenshot of Create role page.

    a. 選擇 [信任的實體類型],選取 [SAML 2.0 同盟]。

    b. 在 [SAML 2.0 型提供者] 下,選取您先前建立的 SAML 提供者(例如:WAAD)。

    c. 選取 [ 允許程序設計與 AWS 管理控制台存取]。

    d. 選取 [下一步]。

  7. 在 [ 許可權原則 ] 對話框中,根據您的組織附加適當的原則。 然後選取下一步

    Screenshot of Attach permissions policy dialog box.

  8. 在 [ 檢閱] 對話框中,執行下列步驟:

    Screenshot of Review dialog box.

    a. 在 [ 角色名稱] 中,輸入您的角色名稱。

    b. 在 [ 描述] 中,輸入角色描述。

    c. 選取 [ 建立角色]。

    d. 視需要建立多個角色,並將其對應至識別提供者。

  9. 使用 AWS 服務帳戶認證從 Microsoft Entra 使用者布建中的 AWS 帳戶擷取角色。 為此,請開啟 AWS 控制台首頁。

  10. 在 [IAM] 區段中,選取 [ 原則 ],然後按兩下 [ 建立原則]。

    Screenshot of IAM section, with Policies highlighted.

  11. 建立您自己的原則,從 AWS 帳戶擷取所有角色。

    Screenshot of Create policy page, with JSON highlighted.

    a. 在 [建立原則] 中,選取 [JSON] 索引標籤。

    b. 在原則檔中,新增下列 JSON:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                "iam:ListRoles"
                ],
                "Resource": "*"
            }
        ]
    }
    

    c. 按 [下一步:標籤]。

  12. 您也可以在下列頁面中新增必要的標籤,然後按 [下一步:檢閱]。

    Screenshot of Create policy tag page.

  13. 定義新的原則。

    Screenshot of Create policy page, with Name and Description fields highlighted.

    a. 針對 [名稱],輸入 AzureAD_SSOUserRole_Policy。

    b. 針對 [描述],輸入 此原則將允許從 AWS 帳戶擷取角色。

    c. 選取 [ 建立原則]。

  14. 在 AWS IAM 服務中建立新的用戶帳戶。

    a. 在 AWS IAM 控制台中,選取 [ 使用者 ],然後按兩下[ 新增使用者]。

    Screenshot of AWS IAM console, with Users highlighted.

    b. 在 [ 指定使用者詳細數據] 區段中,輸入使用者名稱作為 AzureADRoleManager ,然後選取 [ 下一步]。

    Screenshot of Add user page, with User name and Access type highlighted.

    c. 為此使用者建立新的原則。

    Screenshot shows the Add user page where you can create a policy for the user.

    d. 選取 [ 直接附加現有的原則]。

    e. 在篩選區段中 搜尋新建立的原則AzureAD_SSOUserRole_Policy

    f. 選取原則,然後選取 [ 下一步]。

  15. 檢閱您的選擇,然後選取 [ 建立使用者]。

  16. 若要下載使用者的使用者認證,請在 [安全性認證] 索引標籤中啟用主控台存取。

    Screenshot shows the Security credentials.

  17. 在 Microsoft Entra 使用者布建區段中輸入這些認證,以從 AWS 控制台擷取角色。

    Screenshot shows the download the user credentials.

注意

AWS 必須有一組許可權/limts 才能設定 AWS SSO。 若要深入瞭解 AWS 限制,請參閱 此頁面

如何在 AWS 單一帳戶存取中設定角色布建

  1. 在 Microsoft Entra 管理入口網站的 AWS 應用程式中,移至 [ 布建]。

    Screenshot of AWS app, with Provisioning highlighted.

  2. 分別在 clientsecret 和 Secret Token 字段中輸入存取密鑰和秘密。

    Screenshot of Admin Credentials dialog box.

    a. 在 [clientsecret] 字段中輸入 AWS 使用者存取密鑰

    b. 在 [秘密令牌] 字段中輸入 AWS 用戶密碼

    c. 選取 [測試連線]。

    d. 選取 [ 儲存] 以儲存設定。

  3. [設定] 區段中,針對 [布建狀態],選取 [開啟]。 然後選取儲存

    Screenshot of Settings section, with On highlighted.

注意

布建服務只會將角色從 AWS 匯入至 Microsoft Entra ID。 此服務不會將使用者和群組從 Microsoft Entra ID 布建至 AWS。

注意

儲存布建認證之後,您必須等候初始同步處理週期執行。 同步通常需要大約 40 分鐘才能完成。 您可以在 [布建] 頁面底部的 [目前狀態] 下看到狀態

建立 AWS 單一帳戶存取測試使用者

本節的目標是在 AWS 單一帳戶存取中建立名為 B.Simon 的使用者。 AWS 單一帳戶存取不需要在其系統中建立 SSO 的使用者,因此您不需要在這裡執行任何動作。

測試 SSO

在本節中,您會使用下列選項來測試您的 Microsoft Entra 單一登入設定。

SP 起始:

  • 按兩下 [ 測試此應用程式],這會重新導向至您可以在其中起始登入流程的AWS單一帳戶存取登入URL。

  • 直接移至 AWS 單一帳戶存取登入 URL,然後從該處起始登入流程。

IDP 起始:

  • 按兩下 [ 測試此應用程式],您應該會自動登入您已設定 SSO 的 AWS 單一帳戶存取。

您也可以使用 Microsoft 我的應用程式 在任何模式中測試應用程式。 當您在 我的應用程式 中按兩下 [AWS 單一帳戶存取] 圖格時,如果是在SP模式中設定,您會重新導向至 [應用程式登入] 頁面來起始登入流程,如果在IDP模式中設定,則應該會自動登入您已設定 SSO 的 AWS 單一帳戶存取。 如需 我的應用程式 的詳細資訊,請參閱 我的應用程式 簡介。

已知問題

  • AWS 單一帳戶存取布建整合不能用於 AWS 中國區域。

  • 在 [ 布建] 區段中,[ 對應 ] 子區段會顯示「正在載入...」。訊息,且永遠不會顯示屬性對應。 目前唯一支援的布建工作流程是將角色從 AWS 匯入 Microsoft Entra ID,以供在使用者或群組指派期間選取。 此屬性的屬性對應是預先決定的,而且無法設定。

  • 建區 段只支援一次輸入一組 AWS 租用戶的認證。 所有匯入的角色都會寫入 appRoles AWS 租使用者的 Microsoft Entra ID servicePrincipal 物件的 屬性。

    您可以從資源庫將多個 AWS 租使用者(以 servicePrincipals代表)新增至 Microsoft Entra ID 以進行布建。 不過,有一個已知問題,因為無法從用於布建的多個 AWS servicePrincipals 自動寫入所有匯入的角色到用於 SSO 的單一 servicePrincipal

    因應措施是,您可以使用 Microsoft Graph API 來擷取所有 appRoles 匯入至已設定布建的每個 AWS servicePrincipal 。 您接著可以將這些角色字串新增至已設定 SSO 的 AWS servicePrincipal

  • 角色必須符合下列需求,才能從 AWS 匯入 Microsoft Entra ID:

    • 角色必須剛好在 AWS 中定義一個 saml 提供者
    • 角色的 ARN(Amazon Resource Name) 合併長度,相關聯 saml 提供者的 ARN 長度必須小於 240 個字元。

變更記錄檔

  • 01/12/2020 - 將角色長度限制從 119 個字元增加到 239 個字元。

下一步

設定 AWS 單一帳戶存取後,您可以強制執行工作階段控制件,以即時防止組織的敏感數據遭到外洩和滲透。 會話控件會從條件式存取延伸。 瞭解如何使用 適用於雲端的 Microsoft Defender Apps 強制執行會話控件。