本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
SAML適用於 Amazon OpenSearch 無伺服器的身分
使用適用於 Amazon OpenSearch 無伺服器的身分SAML驗證,您可以使用現有的身分供應商為無伺服器集合的 OpenSearch 儀表板端點提供單一登入 (SSO)。
SAML驗證可讓您使用第三方身分識別提供者登入 OpenSearch 儀表板,以索引和搜尋資料。 OpenSearch 無伺服器支援使用 SAML 2.0 標準的提供者,例如IAM身分識別中心、Okta、金鑰遮罩、作用中目錄同盟服務 (AD FS) 和 Auth0。您可以設定IAM身分識別中心, OneLogin以同步處理來自其他身分識別來源 (例如 Okta 和 Microsoft Entra ID) 的使用者和群組。如需 Identity Center 支援的身分識IAM別來源清單及其設定步驟,請參閱IAM身分識別中心使用者指南中的入門教學課程。
注意
SAML驗證僅適用於透過 Web 瀏覽器存取 OpenSearch 儀表板。已驗證的使用者只能透過 OpenSearch 儀表板中的開發工具向 OpenSearch API作業發出要求。您的SAML憑據不允許您直接向 OpenSearch API操作發出HTTP請求。
若要設定SAML驗證,請先設定SAML身分識別提供者 (IdP)。然後,您可以將該 IdP 中的一個或多個使用者納入資料存取政策中。此政策會向它授予集合和/或索引的某些許可。然後,使用者可以登入 OpenSearch 儀表板並執行資料存取原則中允許的動作。
主題
考量事項
設定SAML驗證時,請考慮下列事項:
-
不支援已簽署和已加密的請求。
-
不支援已加密的聲明。
-
不支援 IdP 啟動的身分驗證和登出。
-
如SAML果是非IAM身分識別 SCP (例如 Amazon OpenSearch 無伺服器SAML和 Amazon 服務的基本內部使用者授權),則不適用或評估 OpenSearch 服務控制政策 ()。
必要許可
SAML OpenSearch 無伺服器的驗證使用下列項目 AWS Identity and Access Management (IAM)權限:
-
aoss:CreateSecurityConfig
— 建立提SAML供者。 -
aoss:ListSecurityConfig
— 列出當前帳戶中的所有SAML提供商。 -
aoss:GetSecurityConfig
— 查看SAML提供者信息。 -
aoss:UpdateSecurityConfig
— 修改指定的SAML提供者組態,包括中XML繼資料。 -
aoss:DeleteSecurityConfig
— 刪除提SAML供者。
下列身分型存取政策讓使用者可以管理所有 IdP 組態:
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "aoss:CreateSecurityConfig", "aoss:DeleteSecurityConfig", "aoss:GetSecurityConfig", "aoss:UpdateSecurityConfig", "aoss:ListSecurityConfigs" ], "Effect": "Allow", "Resource": "*" } ] }
請注意,Resource
元素必須是萬用字元。
建立SAML提供者 (主控台)
這些步驟說明如何建立SAML提供者。這可讓使SAML用服務提供者 (SP) 起始的 OpenSearch 儀表板驗證進行驗證。不支援 IdP 啟動的身分驗證。
啟用 OpenSearch 儀表板的SAML驗證
-
在https://console.aws.amazon.com/aos/家
中登錄 Amazon OpenSearch 服務控制台。 -
在左側導覽面板上,展開「無伺服器」,然後選擇「SAML驗證」。
-
選擇新增SAML提供者。
-
提供提供者的名稱和描述。
注意
您指定的名稱可公開存取,當使用者登入 OpenSearch 儀表板時,會出現在下拉式功能表中。確保名稱易於識別,並且不會洩露有關您身分提供者的敏感資訊。
-
在「設定您的 IdP」下,複製宣告取用者服務 () ACS。URL
-
使用您剛剛複製的來設定您的身分識別提供者。ACS URL術語和步驟因提供者而異。請咨詢供應商文件。
例如,在 Okta 中,您建立了「SAML2.0 Web 應用程式」,並指定ACSURL為「單一登入」URL、「收件者 URL」和「目URL的地」。對於 Auth0,您可以在允許的回呼URLs中指定它。
-
如果 IdP 有此值的欄位,請提供對象限制。受眾限制是SAML斷言中的一個值,用於指定斷言的目的。對於 OpenSearch 無伺服器,請指定
aws:opensearch:<aws account id>
。例如:aws:opensearch:
。123456789012
對象限制欄位的名稱因提供者而異。對於奧克塔,它是受眾URI(SP 實體 ID)。IAM身分識別中心是應用程式SAML受眾。
-
如果您使用的是IAM身分識別中心,您還需要指定下列屬性對應:
Subject=${user:name}
, 格式為unspecified
. -
設定身分提供者之後,它會產生 IdP 中繼資料檔案。此XML檔案包含提供者的相關資訊,例如TLS憑證、單一登入端點和身分識別提供者的實體 ID。
複製 IdP 中繼資料檔案中的文字,並將其貼到 Provide metadata from your IdP (透過 IdP 提供中繼資料) 欄位下方。或者,選擇「從XML檔案匯入」並上傳檔案。中繼資料檔案如下所示:
<?xml version="1.0" encoding="UTF-8"?> <md:EntityDescriptor entityID="
entity-id
" xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"> <md:IDPSSODescriptor WantAuthnRequestsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"> <md:KeyDescriptor use="signing"> <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:X509Data> <ds:X509Certificate>tls-certificate
</ds:X509Certificate> </ds:X509Data> </ds:KeyInfo>s </md:KeyDescriptor> <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat> <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat> <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="idp-sso-url
"/> <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="idp-sso-url
"/> </md:IDPSSODescriptor> </md:EntityDescriptor> -
將 [自訂使用者 ID] 屬性欄位保持空白,以使用SAML宣告的
NameID
元素作為使用者名稱。如果您的聲明不使用此標準元素,而是將使用者名稱作為自訂屬性,請在此處指定該屬性。屬性區分大小寫。僅支援單一使用者屬性。下列範例會顯示SAML宣告
NameID
中的覆寫屬性:<saml2:Attribute Name="
UserId
" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"> <saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">annie
</saml2:AttributeValue> </saml2:Attribute> -
(選用) 在 Group attribute (群組屬性) 欄位中指定自訂屬性,例如
role
或group
。僅支援單一群組屬性。沒有預設的群組屬性。如果未指定群組屬性,資料存取政策只能包含使用者主體。下面的例子顯示了SAML斷言中的 group 屬性:
<saml2:Attribute Name="
department
" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"> <saml2:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">finance
</saml2:AttributeValue> </saml2:Attribute> -
依預設, OpenSearch 儀表板會在 24 小時後將使用者登出。您可以透過指定OpenSearch 儀表板逾時,將此值設定為 1 到 12 小時 (15 到 720 分鐘) 之間的任何數字。如果您嘗試將逾時設定為等於或小於 15 分鐘,您的工作階段將重設為一小時。
-
選擇建立SAML提供者。
存取 OpenSearch 儀表板
設定提供者之後,與該SAML提供者關聯的所有使用者和群組都可以導覽至 OpenSearch 儀表板端點。儀表板URL具有所有集合的格式
。collection-endpoint
/_dashboards/
如果您已SAML啟用,請選取 AWS Management Console 將您導向至 IdP 選擇頁面,您可以在其中使用您的SAML認證登入。首先,使用下拉式清單選取身分提供者:
然後使用 IdP 憑證登入。
如果您尚未SAML啟用,請在 AWS Management Console 指示您以IAM使用者或角色的身分登入,但沒有選項SAML。
授與收集資料的SAML身分存取權
建立SAML提供者之後,您仍然需要授與基礎使用者和群組存取集合中資料的權限。您可以透過資料存取政策授予存取權。在您提供使用者存取權之前,他們將無法讀取、寫入或刪除集合內的任何資料。
要授予訪問權限,請創建數據訪問策略,並在Principal
聲明IDs中指定您的SAML用戶和/或組:
[ { "Rules":[ ... ], "Principal":[ "saml/
987654321098
/myprovider
/user/Shaheen
", "saml/987654321098
/myprovider
/group/finance
" ] } ]
您可以授予對集合、索引或兩者的存取權。如果您希望不同的使用者擁有不同的許可,請建立多個規則。如需可用許可的清單,請參閱支援的政策許可。如需有關如何格式化存取政策的資訊,請參閱政策語法。
建立SAML提供者 (AWS CLI)
若要使用 OpenSearch 無伺服器建立SAML提供者API,請傳送要CreateSecurityConfig求:
aws opensearchserverless create-security-config \ --name
myprovider
\ --type saml \ --saml-options file://saml-auth0
.json
將包括saml-options
中繼資料XML在內的 .json 檔案中指定為索引鍵值對映。中繼資料XML必須編碼為JSON逸出字串
{ "sessionTimeout":
70
, "groupAttribute": "department
", "userAttribute": "userid
", "metadata": "<EntityDescriptor xmlns=\"urn:oasis:names:tc:SAML:2.0:metadata\" ... ... ... IDPSSODescriptor>\r\n<\/EntityDescriptor>
" }
檢視SAML提供者
下列ListSecurityConfigs要求會列出您帳戶中的所有SAML供應商:
aws opensearchserverless list-security-configs --type saml
要求會傳回所有現有提SAML供者的相關資訊,包括身分識別提供者所產生的完整 IdP 中繼資料:
{ "securityConfigDetails": [ { "configVersion": "MTY2NDA1MjY4NDQ5M18x", "createdDate": 1664054180858, "description": "Example SAML provider", "id": "saml/123456789012/myprovider", "lastModifiedDate": 1664054180858, "samlOptions": { "groupAttribute": "department", "metadata": "<EntityDescriptor xmlns=\"urn:oasis:names:tc:SAML:2.0:metadata\" ... ... ... IDPSSODescriptor>\r\n<\/EntityDescriptor>", "sessionTimeout": 120, "userAttribute": "userid" } } ] }
若要檢視特定提供者的相關詳細資訊 (包括未來更新的 configVersion
),請傳送 GetSecurityConfig
請求。
更新SAML提供者
若要使用 OpenSearch 無伺服器主控台更新SAML提供者,請選擇SAML驗證,選取您的身分識別提供者,然後選擇編輯。您可以修改所有欄位,包括中繼資料和自訂屬性。
若要透過 OpenSearch 無伺服器更新提供者API,請傳送UpdateSecurityConfig要求並包含要更新之原則的識別碼。您還必須包含組態版本,您可以使用 ListSecurityConfigs
或 GetSecurityConfig
命令擷取該版本。將最新的版本納入其中,可確保您不會意外覆寫其他人所做的變更。
下列要求會更新提供者的SAML選項:
aws opensearchserverless update-security-config \ --id saml/
123456789012
/myprovider
\ --type saml \ --saml-options file://saml-auth0
.json \ --config-versionMTY2NDA1MjY4NDQ5M18x
將您的SAML組態選項指定為 .json 檔案中的索引鍵值對映。
重要
對SAML選項的更新不是增量的。如果您在進行更新時未指定 SAMLOptions
物件中的參數值,則會以空白值覆寫現有值。例如,如果目前的組態包含 userAttribute
的值,然後您進行更新但不包含此值,則系統會將該值從組態中移除。透過呼叫 GetSecurityConfig
操作進行更新之前,請確保您知道現有值為何。
刪除SAML提供者
當您刪除SAML提供者時,對資料存取原則中關聯使用者和群組的任何參考將不再起作用。為避免混淆,建議您先移除存取政策中對端點的所有參考,然後再刪除該端點。
若要使用 OpenSearch 無伺服器主控台刪除SAML提供者,請選擇 [驗證],選取提供者,然後選擇 [刪除]。
若要透過 OpenSearch 無伺服器刪除提供者API,請傳送要DeleteSecurityConfig求:
aws opensearchserverless delete-security-config --id saml/
123456789012
/myprovider