啟用 SAML 2.0 聯合身分的使用者存取 AWS Management Console - AWS Identity and Access Management

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

啟用 SAML 2.0 聯合身分的使用者存取 AWS Management Console

您可以使用角色來設定與 SAML 2.0 相容的身分識別提供者 (IdP),並允許您的同盟 AWS 使用者存取。 AWS Management Console該角色為使用者授予了在主控台中執行任務的許可。如果您希望為 SAML 聯合身分使用者提供存取 AWS的其他方式,請參閱以下主題之一:

概觀

下圖說明了啟用了 SAML 的單一登入的流程。

注意

SAML 的這種特定用法與中所示的更一般的用法不同,SAML联邦因為此工作流程會 AWS Management Console 代表使用者開啟。這需要使用 AWS 登入端點,而不是直接呼叫 AssumeRoleWithSAML API。該端點將為使用者呼叫 API 並傳回將使用者的瀏覽器自動重新引導到 AWS Management Console的 URL。

使用 SAML 將單一登入 (SSO) 連至 AWS 管理主控台

此圖說明了下列步驟:

  1. 使用者瀏覽到您的組織的入口網站,並選擇前往 AWS Management Console的選項。在您的組織中,入口網站通常是 IdP 的一項功能,可處理組織與 AWS組織之間的信任交換。例如,在 Active Directory Federation Services 中,入口網站的 URL 是:https://ADFSServiceName/adfs/ls/IdpInitiatedSignOn.aspx

  2. 該入口網站可驗證您的組織使用者的身分。

  3. 入口網站會產生一個 SAML 身分驗證回應,其中包括辨識使用者身分的聲明以及使用者的相關屬性。您也可以配置 IdP 以包含一個名為 SessionDuration 的 SAML 聲明屬性,該屬性指定主控台工作階段的有效時間長度。您也可以設定 IdP,將屬性做為工作階段標籤傳遞。該入口網站將此回應傳送到用戶端瀏覽器。

  4. 用戶端瀏覽器會重新導向至 AWS 單一登入端點,並張貼 SAML 宣告。

  5. 端點代表使用者請求臨時安全性憑證,並建立一個使用這些憑證的主控台登入 URL。

  6. AWS 將登錄 URL 作為重定向發送回客戶端。

  7. 該用戶端瀏覽器將重新引導到 AWS Management Console。如果 SAML 身分驗證回應包含映射到多個 IAM 角色的屬性,則將首先提示使用者選取要用於存取主控台的角色。

從使用者的角度來看,程序會以透明的方式進行:使用者從您組織的內部入口網站開始 AWS Management Console,最後到達,而無需提供任何 AWS 認證。

有關如何配置此行為的概述以及指向詳細步驟的連結,請參閱以下章節。

將您的網路設定為 SAML 提供者 AWS

在您的組織的網路內部,將您的身分存放區 (如 Windows Active Directory) 設定為與 Windows Active Directory 聯合服務、Shibboleth 等以 SAML 為基礎的身分提供者 (IdP) 一起使用。使用 IdP 產生一個中繼資料文件,該文件將您的組織描述為身分提供者 (IdP) 並包含身分驗證索引鍵。您也可以設定組織的入口網站,以便使用 SAML 宣告 AWS Management Console 將對的使用者要求路由到 AWS SAML 端點進行驗證。配置您的 IdP 來產生 metadata.xml 文件之方法將根據您的 IdP 而定。請參閱您的 IdP 文件以獲得說明,或參閱 將第三方 SAML 解決方案提供者與 AWS 以取得包含許多支援的 SAML 提供者之 Web 文件連結。

在 IAM 中建立 SAML 提供者

接下來,您登入 AWS Management Console 並移至 IAM 主控台。您將在此建立一個新的 SAML 提供者,該提供者是 IAM 中包含您組織的身分提供者 (IdP) 的相關資訊的實體。在此過程中,您可以上傳在前一章節中由組織中的 IdP 軟體所產生的中繼資料文件。如需詳細資訊,請參閱 在 SAML 中建立 IAM 身分提供者

在中設定同盟使 AWS 用者的權限

下一個步驟是建立 IAM 角色,以便建立 IAM 和您組織 IdP 之間的信任關係。基於聯合目的,這個角色必須將您的 IdP 識別為主體 (信任的實體)。角色也會定義組織 IdP 驗證的使用者可在中 AWS執行哪些動作。您可使用 IAM 主控台來建立此角色。當您建立信任政策,指出可以擔任角色的人員時,您可以指定您先前在 IAM 中建立的 SAML 提供者。您也可以指定一或多個 SAML 屬性,讓使用者在符合這些屬性的情況下,才能允許擔任角色。例如,您可以指定只允許其 SAML eduPersonOrgDN 值為 ExampleOrg 的使用者登入。角色精靈會自動新增一個測試 saml:aud 屬性的條件,確保僅以登入 AWS Management Console為目的來擔任該角色。該角色的信任政策可能如下所示:

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": {"Federated": "arn:aws:iam::account-id:saml-provider/ExampleOrgSSOProvider"}, "Action": "sts:AssumeRoleWithSAML", "Condition": {"StringEquals": { "saml:edupersonorgdn": "ExampleOrg", "saml:aud": "https://signin.aws.amazon.com/saml" }} }] }
注意

角色信任政策中使用的 SAML IDP 必須與角色所在的帳戶相同。

您可以包括位於 https://region-code.signin.aws.amazon.com/static/saml-metadata.xmlsaml:aud 屬性的區域端點。對於可能的 region-code 值清單,請參閱 AWS 登入端點中的 Region (區域) 欄位。

對於該角色中的許可政策,您可以像任何角色、使用者或群組一樣指定許可。例如,如果允許您組織中的使用者管理 Amazon EC2 執行個體,您可以在許可政策中明確允許 Amazon EC2 動作。您可以指派受管政策 (如 Amazon EC2 完整存取受管政策) 來執行此操作。

有關建立用於 SAML IdP 的角色的詳細資訊,請參閱 建立 SAML 2.0 聯合 (主控台) 的角色

完成組態並建立 SAML 聲明

安裝位https://region-code.signin.aws.amazon.com/static/saml-metadata.xml於或的saml-metadata.xml檔案,以通知您的 SAML IdP AWS 是您的服務提供者。https://signin.aws.amazon.com/static/saml-metadata.xml對於可能的 region-code 值清單,請參閱 AWS 登入端點中的 Region (區域) 欄位。

安裝該檔案的方式取決於您的 IdP。部分提供者為您提供了輸入該 URL 的選項,此時,IdP 將為您取得並安裝該檔案。另一些提供者則要求您從該 URL 處下載檔案,然後將其做為本機檔案提供。請參閱您的 IdP 文件以獲得詳細資訊,或參閱 將第三方 SAML 解決方案提供者與 AWS 以取得包含許多支援的 SAML 提供者之 Web 文件連結。

您也可設定一條資訊,說明您希望 IdP 在身分驗證回應期間將此資訊做為 SAML 屬性傳遞到 AWS 。這些資訊大部分都會顯示在條 AWS 件內容索引鍵中,您可以在原則中評估這些索引鍵。這些條件索引鍵會確保只有經過授權且位於正確內容中的使用者,才能獲得授予存取您 AWS 資源的許可。您可以指定限制可使用主控台時間的時段。您也可以指定使用者在重新整理其憑證前,可存取主控台的時間上限 (最多 12 小時)。如需詳細資訊,請參閱 設定身分驗證回應的SAML宣告