讓 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 2.0 聯合身分因為此工作流程 AWS Management Console 代表使用者開啟 。這需要使用 AWS 登入端點,而不是直接呼叫 AssumeRoleWithSAML API。該端點將為使用者呼叫 API 並傳回將使用者的瀏覽器自動重新引導到 AWS Management Console的 URL。

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

此圖說明了下列步驟:

  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) 並包含身分驗證索引鍵。您也可以設定組織的入口網站,將 的使用者請求路由 AWS Management Console 至 AWS SAML 端點,以使用 SAML 聲明進行身分驗證。配置您的 IdP 來產生 metadata.xml 文件之方法將根據您的 IdP 而定。請參閱您的 IdP 文件以獲得說明,或參閱 將第三方 SAML 解決方案供應商與 整合 AWS 以取得包含許多支援的 SAML 提供者之 Web 文件連結。

在 IAM 中建立 SAML 提供者

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

在 中 AWS 為您的聯合身分使用者設定許可

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

如果需要 SAML 加密,登入 URL 必須包含指派給 SAML 供應商的唯一識別符 AWS ,您可以在身分提供者詳細資訊頁面上找到該識別符。該角色的信任政策可能如下所示:

{ "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://region-code.signin.aws.amazon.com/saml/acs/SAMLSP4SHN3UIS2D558H46" }} }] }
注意

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

建議您使用區域端點作為 saml:aud 的 屬性https://region-code.signin.aws.amazon.com/static/saml-metadata.xml。對於可能的 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.xmlsaml-metadata.xml的檔案,以通知 AWS 做為您服務提供者的 SAML IdPhttps://signin.aws.amazon.com/static/saml-metadata.xml。如果需要 SAMl 加密,可在 找到 檔案https://region-code.signin.aws.amazon.com/static/saml/SAMLSP4SHN3UIS2D558H46/saml-metadata.xml

對於可能的 region-code 值清單,請參閱 AWS 登入端點中的 Region (區域) 欄位。

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

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