本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使 SAML 2.0 聯合身分使用者能夠存取 AWS Management Console
您可以使用一個角色來設定 SAML 2.0 相容的身分提供者 (IdP) 和 AWS,以允許您的聯合身分使用者存取 AWS Management Console。該角色為使用者授予了在主控台中執行任務的許可。如果您希望為 SAML 聯合身分使用者提供存取 AWS 的其他方式,請參閱以下主題之一:
-
AWS CLI: 切換到 IAM 角色 (AWS CLI)
-
Tools for Windows PowerShell:切換至 IAM 角色 (Tools for Windows PowerShell)
-
AWS API:切換到 IAM 角色 (AWS API)
概觀
下圖說明了啟用了 SAML 的單一登入的流程。
注意
SAML 的這種特定用途與SAML 2.0 聯合身分中所述的更普遍用途不同,因為此工作流程將代使用者開啟 AWS Management Console。這需要使用 AWS 登入端點,而不是直接呼叫 AssumeRoleWithSAML
API。該端點將為使用者呼叫 API 並傳回將使用者的瀏覽器自動重新引導到 AWS Management Console 的 URL。
此圖說明了下列步驟:
-
使用者瀏覽到您的組織的入口網站,並選擇前往 AWS Management Console 的選項。在組織中,入口網站通常會扮演 IdP 角色,處理您組織與 AWS 之間的信任交換。例如,在 Active Directory Federation Services 中,入口網站的 URL 是:
https://
ADFSServiceName
/adfs/ls/IdpInitiatedSignOn.aspx -
該入口網站可驗證您的組織使用者的身分。
-
入口網站會產生一個 SAML 身分驗證回應,其中包括辨識使用者身分的聲明以及使用者的相關屬性。您也可以配置 IdP 以包含一個名為
SessionDuration
的 SAML 聲明屬性,該屬性指定主控台工作階段的有效時間長度。您也可以設定 IdP,將屬性做為工作階段標籤傳遞。該入口網站將此回應傳送到用戶端瀏覽器。 -
用戶端瀏覽器將被重新引導到 AWS Single Sign-On 端點並發佈 SAML 聲明。
-
端點代表使用者請求臨時安全性憑證,並建立一個使用這些憑證的主控台登入 URL。
-
AWS 將登入 URL 作為重新引導傳回用戶端。
-
該用戶端瀏覽器將重新引導到 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為目的來擔任該角色。該角色的信任政策可能如下所示:
{ "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.xmlhttps://signin.aws.amazon.com/static/saml-metadata.xml
找到的 saml-metadata.xml
檔案,通知 SAML IdP,AWS 是您的服務供應商。對於可能的 region-code
值清單,請參閱 AWS 登入端點中的 Region (區域) 欄位。
安裝該檔案的方式取決於您的 IdP。部分提供者為您提供了輸入該 URL 的選項,此時,IdP 將為您取得並安裝該檔案。另一些提供者則要求您從該 URL 處下載檔案,然後將其做為本機檔案提供。請參閱您的 IdP 文件以獲得詳細資訊,或參閱 將第三方 SAML 解決方案提供者與 AWS 整合 以取得包含許多支援的 SAML 提供者之 Web 文件連結。
您也可設定一條資訊,說明您希望 IdP 在身分驗證回應期間將此資訊做為 SAML 屬性傳遞到 AWS。這些資訊大部分會顯示在 AWS 中,做為您可以在政策內評估的條件內容金鑰。這些條件索引鍵會確保只有經過授權且位於正確內容中的使用者,才能獲得授予存取您 AWS 資源的許可。您可以指定限制可使用主控台時間的時段。您也可以指定使用者在重新整理其憑證前,可存取主控台的時間上限 (最多 12 小時)。如需詳細資訊,請參閱為身分驗證回應設定 SAML 聲明。