本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:Amazon QuickSight 和IAM身分聯合
適用對象:企業版和標準版 |
目標受眾:Amazon QuickSight Administrators 和 Amazon QuickSight 開發人員 |
注意
IAM 身分聯合不支援與 Amazon 同步身分提供者群組 QuickSight。
在以下教學課程中,您可以找到逐步解說,以將 IdP Okta 設定為 Amazon 的聯合服務 QuickSight。雖然本教學課程顯示 AWS Identity and Access Management (IAM) 和 Okta 的整合,但您也可以使用您選擇的 2 IdPs.0 SAML 來複寫此解決方案。
在下列程序中,您可以使用其「AWS 帳戶聯合」快速鍵在 Okta IdP 中建立應用程式。Okta 對此整合應用程式的描述如下所示:
"透過將 Okta 與 Amazon Web Services (AWS) Identity and Access Management (IAM) 帳戶聯合,最終使用者可以使用其 Okta 憑證,取得所有指派 AWS 角色的單一登入存取權。在每個 中 AWS 帳戶,管理員會設定聯合並設定 AWS 角色以信任 Okta。當使用者登入 時 AWS,他們可獲得 Okta 單一登入體驗,以查看其指派 AWS 的角色。然後,他們可以選擇所需的角色,該角色會在其已經身分驗證的工作階段期間定義他們的許可。擁有大量 AWS 帳戶的客戶,請查看 AWS 單一登入應用程式作為替代方案。" (https://www.okta.com/aws/)
使用 Okta 的「AWS 帳戶聯合」應用程式快速鍵建立 Okta 應用程式
-
登入您的 Okta 儀表板。如果您沒有免費 Okta Developer Edition 帳戶,請使用此 QuickSight品牌 URL
建立免費的 Okta Developer Edition 帳戶。啟用電子郵件後,請登入 Okta。 -
在 Okta 網站上,選擇左上角的 <> 開發人員主控台,然後選擇傳統 UI。
-
選擇新增應用程式,然後選擇新增應用程式。
-
在搜尋中輸入
aws
,然後從搜尋結果中選擇 AWS 帳戶聯合。 -
選擇新增,以建立此應用程式的執行個體。
-
針對應用程式名稱,輸入
AWS Account Federation - QuickSight
。 -
選擇 Next (下一步)。
-
對於 SAML 2.0,預設轉送狀態 ,輸入
https://quicksight.aws.amazon.com
。 -
開啟身分提供者中繼資料的內容 (按一下右鍵) 選單,然後選擇以儲存檔案。將檔案命名為
metadata.xml
。您在下一個程序中需要用到該檔案。檔案的內容類似如下。
<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" entityID="http://www.okta.com/exkffz2hATwiVft645d5"> <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> MIIDpjCCAo6gAwIBAgIGAXVjA82hMA0GCSqGSIb3DQEBCwUAMIGTMQswCQYDVQQGEwJVUzETMBEG . . (certificate content omitted) . QE/6cRdPQ6v/eaFpUL6Asd6q3sBeq+giRG4= </ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> </md:KeyDescriptor> <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat> <md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified</md:NameIDFormat> <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://dev-1054988.okta.com/app/amazon_aws/exkffz2hATwiVft645d5/sso/saml"/> <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://dev-1054988.okta.com/app/amazon_aws/exkffz2hATwiVft645d5/sso/saml"/> </md:IDPSSODescriptor> </md:EntityDescriptor>
-
儲存XML檔案後,捲動至 Okta 頁面底部,然後選擇完成 。
-
如果可能,請保持此瀏覽器視窗開啟。在本教學課程中稍後會需要用到它。
接下來,在 AWS 帳戶中建立身分提供者。
在 AWS Identity and Access Management (IAM) 中建立SAML提供者
-
登入 AWS Management Console 並在 開啟IAM主控台https://console.aws.amazon.com/iam/
。 -
在導覽窗格中,選擇身分提供者、建立供應商。
-
輸入以下設定:
-
提供者類型 – SAML 從清單中選擇。
-
提供者名稱 – 輸入
Okta
。 -
中繼資料文件 –
manifest.xml
從上一個程序上傳XML檔案。
-
-
選擇下一步、建立。
-
找到您建立的 IdP,然後選擇它以檢視設定。請注意提供者 ARN。您需要用它來完成本教學課程。
-
確認身分提供者是使用您的設定建立的。在 中IAM,選擇 Identity Provider 、Okta (您新增的 IdP)、下載中繼資料 。該檔案應該是您最近上傳的檔案。
接下來,您可以建立 IAM角色,讓 SAML 2 AWS 帳戶.0 聯合成為您 中信任的實體。對於此步驟,您需要選擇在 Amazon 中佈建使用者的方式 QuickSight。您可以執行下列任一作業:
-
授予IAM角色許可,讓第一次訪客自動成為 QuickSight使用者。
-
使用 預先佈建 QuickSight 使用者QuickSight API。透過選擇此選項,您可以佈建使用者並同時將其新增至群組。如需詳細資訊,請參閱在 Amazon 中建立和管理群組 QuickSight。
建立 SAML 2.0 聯合IAM的角色作為受信任實體
-
登入 AWS Management Console 並在 開啟IAM主控台https://console.aws.amazon.com/iam/
。 -
在導覽窗格中,選擇角色 、建立角色。
-
對於選取受信任實體的類型 ,選擇標記為 SAML 2.0 聯合的卡片。
-
針對SAML提供者 ,選取您在先前程序中建立的 IdP,例如
Okta
。 -
啟用允許程式設計 AWS 和管理主控台存取 選項。
-
選擇下一步:許可。
-
將以下政策貼到編輯器。
在政策編輯器中,JSON使用提供者的 Amazon Resource Name () 更新 ARN。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRoleWithSAML", "Resource": "arn:aws:iam::
111111111111
:saml-provider/Okta
", "Condition": { "StringEquals": { "saml:aud": "https://signin.aws.amazon.com/saml" } } } ] } -
選擇檢閱政策。
-
在 Name (名稱) 中輸入
QuicksightOktaFederatedPolicy
,然後選擇 Create policy (建立政策)。 -
JSON 再次選擇建立政策 。
-
將以下政策貼到編輯器。
在政策編輯器中,JSON使用 AWS 帳戶 ID 更新 。它應該與您在供應商 中先前政策中使用的帳戶 ID 相同ARN。
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "quicksight:CreateReader" ], "Effect": "Allow", "Resource": [ "arn:aws:quicksight::
111111111111
:user/${aws:userid}" ] } ] }您可以省略 中的 AWS 區域 名稱ARN,如下所示。
arn:aws:quicksight::
111111111111
:user/$${aws:userid} -
選擇檢閱政策。
-
在 Name (名稱) 中輸入
QuicksightCreateReader
,然後選擇 Create policy (建立政策)。 -
選擇右側的重新整理圖示,以重新整理政策清單。
-
針對搜尋,輸入
QuicksightOktaFederatedPolicy
。選擇要啟用的政策 ( )。如果您不想使用自動佈建,則可略過下列步驟。
若要新增 QuickSight 使用者,請使用註冊使用者 。若要新增 QuickSight 群組,請使用 create-group 。若要將使用者新增至 QuickSight 群組,請使用 create-group-membership。
-
(選用) 針對搜尋,請輸入
QuicksightCreateReader
。選擇要啟用的政策 ( )。如果您想要自動佈建 QuickSight 使用者,而不是使用 ,請執行此步驟 QuickSight API。
QuicksightCreateReader
政策會允許使用quicksight:CreateReader
動作來啟動自動佈建。這樣做可將儀表板訂閱用戶 (讀者層級) 存取權授予第一次使用者。 QuickSight 管理員稍後可以從 QuickSight 設定檔選單、管理 QuickSight、管理使用者 進行升級。 -
若要繼續連接IAM政策,請選擇下一步:標籤 。
-
選擇下一步:檢閱。
-
針對角色名稱,輸入
QuicksightOktaFederatedRole
,然後選擇建立角色。 -
請執行下列步驟,確認您已成功完成此操作:
-
返回 IAM 主控台的主頁面https://console.aws.amazon.com/iam/
。您可以使用瀏覽器的返回按鈕。 -
選擇角色。
-
針對搜尋,請輸入 Okta。QuicksightOktaFederatedRole 從搜尋結果中選擇 。
-
在政策的摘要頁面上,檢查許可標籤。確認該角色具有您連接的一個或多個政策。它應該有
QuicksightOktaFederatedPolicy
。如果您選擇新增建立使用者的功能,其亦也應具有QuicksightCreateReader
。 -
使用 圖示,開啟每個政策。確認文字符合此程序中顯示的內容。再次檢查您是否新增了自己的 AWS 帳戶 號碼,以取代帳戶號碼 111111111111 的範例。
-
在信任關係索引標籤上,確認受信任實體欄位包含身分提供者ARN的 。您可以開啟 Identity Provider , Okta ,在IAM主控台ARN中再次檢查 。
-
為 Okta 建立存取金鑰
-
登入 AWS Management Console 並在 開啟IAM主控台https://console.aws.amazon.com/iam/
。 -
新增允許 Okta 向使用者顯示IAM角色清單的政策。若要執行此操作,請選擇政策、建立政策。
-
選擇 JSON,然後輸入下列政策。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:ListRoles", "iam:ListAccountAliases" ], "Resource": "*" } ] }
-
選擇檢閱政策。
-
針對名稱,輸入
OktaListRolesPolicy
。然後選擇 Create policy (建立政策)。 -
新增使用者,以便您可向 Okta 提供存取金鑰。
在導覽窗格中,選擇使用者、新增使用者。
-
請使用下列設定:
-
在 User name (使用者名稱) 中輸入
OktaSSOUser
。 -
針對存取類型,啟用以程式設計方式存取。
-
-
選擇 Next: Permissions (下一步:許可)。
-
選擇直接連接現有政策。
-
對於搜尋 ,輸入
OktaListRolesPolicy
,然後從搜尋結果OktaListRolesPolicy中選擇 。 -
選擇 Next: Tags (下一步:標籤),然後選擇 Next: Review (下一步:檢閱)。
-
選擇 Create user (建立使用者)。現在,您可以取得存取金鑰。
-
選擇 Download .csv,下載金鑰檔案。該檔案包含的存取金鑰 ID 和私密存取金鑰與此畫面上顯示的相同。但是,因為 AWS 不會再次顯示此資訊,請務必下載 檔案。
-
請執行下列動作,確認您已正確完成此步驟:
-
開啟IAM主控台,然後選擇使用者 。搜尋 O ktaSSOUser,然後從搜尋結果中選擇使用者名稱來開啟它。
-
在許可索引標籤上,確認 OktaListRolesPolicy已連接。
-
使用 圖示,開啟政策。確認文字符合此程序中顯示的內容。
-
在安全憑證標籤上,您可以檢查存取金鑰,儘管您已下載。當您需要新的存取金鑰時,您可以返回此標籤建立一個。
-
在下列程序中,您會返回 Okta 以提供存取金鑰。存取金鑰會搭配您的新安全設定使用,以允許 AWS 和 Okta IdP 一起運作。
使用設定完成 Okta 應用程式 AWS 設定
-
返回您的 Okta 儀表板。如果要求這樣做,請登入。如果開發人員主控台不再開啟,請選擇管理員以將其重新開啟。
-
如果您必須重新開啟 Okta,則可以按照下列步驟返回本章節:
-
登入 Okta。選擇 Applications (應用程式)。
-
選擇AWS 帳戶聯合 - QuickSight- 在本教學課程開始時建立的應用程式。
-
在一般和行動之間,選擇登入標籤。
-
-
捲動至進階登入設定。
-
對於身分提供者 SAML IAM ARN(僅聯合所需),輸入ARN先前程序的提供者,例如:
arn:aws:iam::
111122223333
:saml-provider/Okta -
選擇完成或儲存。按鈕的名稱會因您是否建立或編輯應用程式而異。
-
選擇佈建索引標籤,然後在索引標籤的下方選擇設定API整合 。
-
開啟啟用API整合以顯示設定。
-
針對存取金鑰和機密金鑰,請提供您先前下載到名為
OktaSSOUser
_credentials.csv
的檔案中的存取金鑰和機密金鑰。 -
選擇測試API憑證 。請查看訊息的啟用API整合設定,確認AWS 帳戶聯合已成功驗證 。
-
選擇 Save (儲存)。
-
確定在左側反白顯示到應用程序,然後選擇右側的編輯。
-
針對建立使用者,開啟啟用選項。
-
選擇 Save (儲存)。
-
在指派標籤的佈建和匯入附近,選擇指派。
-
執行以下一或多項動作,以啟用聯合存取:
-
若要與個別使用者合作,請選擇指派給人員。
-
若要使用IAM群組,請選擇指派給群組 。您可以選擇特定IAM群組或所有人 (組織中的所有使用者)。
-
-
針對每個IAM使用者或群組,執行下列動作:
-
選擇指派、角色。
-
QuicksightOktaFederatedRole 從IAM角色清單中選取 。
-
對於SAML使用者角色 ,啟用 QuicksightOktaFederatedRole。
-
-
選擇儲存並返回,然後選擇完成。
-
選擇左側的人員或群組篩選條件,然後檢查您輸入的使用者或群組,以確認您已正確完成此步驟。如果因為您建立的角色未出現在清單中而無法完成此程序,請返回先前程序,以確認設定。
QuickSight 使用 Okta 登入 (IdP 至服務供應商登入)
-
如果您使用的是 Okta 管理員帳戶,請切換到使用者模式。
-
使用已授予聯合存取的使用者登入您的 Okta 應用程式儀表板。您應該會看到具有標籤的新應用程式,例如 AWS Account Federation - QuickSight。
-
選擇應用程式圖示以啟動AWS 帳戶聯合 - QuickSight。
您現在可以使用 Okta 管理身分,並透過 Amazon 使用聯合存取 QuickSight。
下列步驟是本教學課程的選用部分。如果您遵循其步驟,則表示您授權代表使用者將授權請求 QuickSight 轉送至 IdP。使用此方法,使用者可以登入 ,而 QuickSight 不需要先使用 IdP 頁面登入。
(選用) 設定 QuickSight 以傳送身分驗證請求至 Okta
-
開啟 QuickSight,然後從設定檔功能表中選擇管理 QuickSight。
-
從導覽窗格中選擇單一登入 (IAM聯合)。
-
針對組態 、IdP URL,輸入 URL IdP 提供給身分驗證使用者的 ,例如 https://dev-
1-----0
.okta.com/home/amazon_aws/0oabababababaGQei5d5/282
。 您可以在 Okta 應用程式頁面、一般索引標籤、內嵌連結 中找到此項目。 -
對於 IdP URL,輸入
RelayState
。 -
執行以下任意一項:
-
若要先測試身分提供者的登入,請使用測試中URL提供的自訂,從 IdP 開始。您應該到達 的開始頁面 QuickSight,例如 https://quicksight.aws.amazon.com/sn/開始。
-
若要 QuickSight 先測試登入,請使用測試 end-to-end體驗 中URL提供的自訂。
enable-sso
參數會附加至 URL。如果enable-sso=1
,聯合IAM會會嘗試驗證。如果enable-sso=0
, QuickSight 則不會傳送身分驗證請求,而您會像以前 QuickSight 一樣登入 。
-
-
在狀態中,選擇開啟。
-
選擇儲存保留設定。
您可以建立 QuickSight 儀表板的深層連結,讓使用者使用IAM聯合直接連線至特定儀表板。若要這麼做,請將轉送狀態旗標和儀表板附加URL到 Okta 單一登入 URL,如下所述。
若要建立 QuickSight 儀表板的深層連結以進行單一登入
-
在教學課程開始下載的URL
metadata.xml
檔案中,找到 Okta 應用程式單一登入 (IAM聯合)。您可以在名為 的 元素中找到URL接近 檔案底部的md:SingleSignOnService
。屬性名為Location
,而值以/sso/saml
結尾,如下列範例所示。<md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://dev-0000001.okta.com/app/amazon_aws/abcdef2hATwiVft645d5/sso/saml"/>
-
取得IAM聯合的值URL,
?RelayState=
然後附加 QuickSight 儀表板URL的 。RelayState
參數會轉送使用者重新導向至身分驗證 時所在的狀態 (URL)URL。 -
在新增轉送狀態的新聯合中,附加 QuickSight 儀表板URL的 IAM 。產生的 URL應類似於以下內容。
https://dev-
1-----0
.okta.com/app/amazon_aws/abcdef2hATwiVft645d5
/sso/saml?RelayState=https://us-west-2.quicksight.aws.amazon.com/sn/analyses/12a12a2a-121a-212a-121a-abcd12abc1ab -
如果您建立的連結未開啟,請檢查您是否使用URL來自 的最新IAM聯合
metadata.xml
。同時檢查您用來登入的使用者名稱是否未在多個IAM聯合 Okta 應用程式中指派。