教學課程:Amazon QuickSight 和IAM身分聯合 - Amazon QuickSight

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

教學課程: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 應用程式
  1. 登入您的 Okta 儀表板。如果您沒有免費 Okta Developer Edition 帳戶,請使用此 QuickSight品牌 URL建立免費的 Okta Developer Edition 帳戶。啟用電子郵件後,請登入 Okta。

  2. 在 Okta 網站上,選擇左上角的 <> 開發人員主控台,然後選擇傳統 UI

  3. 選擇新增應用程式,然後選擇新增應用程式

  4. 搜尋中輸入 aws,然後從搜尋結果中選擇 AWS 帳戶聯合

  5. 選擇新增,以建立此應用程式的執行個體。

  6. 針對應用程式名稱,輸入 AWS Account Federation - QuickSight

  7. 選擇 Next (下一步)

  8. 對於 SAML 2.0預設轉送狀態 ,輸入 https://quicksight.aws.amazon.com

  9. 開啟身分提供者中繼資料的內容 (按一下右鍵) 選單,然後選擇以儲存檔案。將檔案命名為 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>
  10. 儲存XML檔案後,捲動至 Okta 頁面底部,然後選擇完成

  11. 如果可能,請保持此瀏覽器視窗開啟。在本教學課程中稍後會需要用到它。

接下來,在 AWS 帳戶中建立身分提供者。

在 AWS Identity and Access Management (IAM) 中建立SAML提供者
  1. 登入 AWS Management Console 並在 開啟IAM主控台https://console.aws.amazon.com/iam/

  2. 在導覽窗格中,選擇身分提供者建立供應商

  3. 輸入以下設定:

    • 提供者類型SAML 從清單中選擇。

    • 提供者名稱 – 輸入 Okta

    • 中繼資料文件manifest.xml 從上一個程序上傳XML檔案。

  4. 選擇下一步建立

  5. 找到您建立的 IdP,然後選擇它以檢視設定。請注意提供者 ARN。您需要用它來完成本教學課程。

  6. 確認身分提供者是使用您的設定建立的。在 中IAM,選擇 Identity Provider Okta (您新增的 IdP)、下載中繼資料 。該檔案應該是您最近上傳的檔案。

接下來,您可以建立 IAM角色,讓 SAML 2 AWS 帳戶.0 聯合成為您 中信任的實體。對於此步驟,您需要選擇在 Amazon 中佈建使用者的方式 QuickSight。您可以執行下列任一作業:

建立 SAML 2.0 聯合IAM的角色作為受信任實體
  1. 登入 AWS Management Console 並在 開啟IAM主控台https://console.aws.amazon.com/iam/

  2. 在導覽窗格中,選擇角色建立角色

  3. 對於選取受信任實體的類型 ,選擇標記為 SAML 2.0 聯合的卡片。

  4. 針對SAML提供者 ,選取您在先前程序中建立的 IdP,例如 Okta

  5. 啟用允許程式設計 AWS 和管理主控台存取 選項。

  6. 選擇下一步:許可

  7. 將以下政策貼到編輯器。

    在政策編輯器中,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" } } } ] }
  8. 選擇檢閱政策

  9. Name (名稱) 中輸入 QuicksightOktaFederatedPolicy,然後選擇 Create policy (建立政策)

  10. JSON 再次選擇建立政策

  11. 將以下政策貼到編輯器。

    在政策編輯器中,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}
  12. 選擇檢閱政策

  13. Name (名稱) 中輸入 QuicksightCreateReader,然後選擇 Create policy (建立政策)

  14. 選擇右側的重新整理圖示,以重新整理政策清單。

  15. 針對搜尋,輸入 QuicksightOktaFederatedPolicy。選擇要啟用的政策 ( Icon representing a cloud with an arrow pointing downward, indicating download or cloud storage. )。

    如果您不想使用自動佈建,則可略過下列步驟。

    若要新增 QuickSight 使用者,請使用註冊使用者 。若要新增 QuickSight 群組,請使用 create-group 。若要將使用者新增至 QuickSight 群組,請使用 create-group-membership

  16. (選用) 針對搜尋,請輸入 QuicksightCreateReader。選擇要啟用的政策 ( Icon representing a cloud with an arrow pointing downward, indicating download or cloud storage. )。

    如果您想要自動佈建 QuickSight 使用者,而不是使用 ,請執行此步驟 QuickSight API。

    QuicksightCreateReader 政策會允許使用 quicksight:CreateReader 動作來啟動自動佈建。這樣做可將儀表板訂閱用戶 (讀者層級) 存取權授予第一次使用者。 QuickSight 管理員稍後可以從 QuickSight 設定檔選單、管理 QuickSight管理使用者 進行升級。

  17. 若要繼續連接IAM政策,請選擇下一步:標籤

  18. 選擇下一步:檢閱

  19. 針對角色名稱,輸入 QuicksightOktaFederatedRole,然後選擇建立角色

  20. 請執行下列步驟,確認您已成功完成此操作:

    1. 返回 IAM 主控台的主頁面https://console.aws.amazon.com/iam/。您可以使用瀏覽器的返回按鈕。

    2. 選擇角色

    3. 針對搜尋,請輸入 Okta。QuicksightOktaFederatedRole 從搜尋結果中選擇 。

    4. 在政策的摘要頁面上,檢查許可標籤。確認該角色具有您連接的一個或多個政策。它應該有 QuicksightOktaFederatedPolicy。如果您選擇新增建立使用者的功能,其亦也應具有 QuicksightCreateReader

    5. 使用 Play button icon with a triangular shape pointing to the right. 圖示,開啟每個政策。確認文字符合此程序中顯示的內容。再次檢查您是否新增了自己的 AWS 帳戶 號碼,以取代帳戶號碼 111111111111 的範例。

    6. 信任關係索引標籤上,確認受信任實體欄位包含身分提供者ARN的 。您可以開啟 Identity Provider , Okta ,在IAM主控台ARN中再次檢查 。

為 Okta 建立存取金鑰
  1. 登入 AWS Management Console 並在 開啟IAM主控台https://console.aws.amazon.com/iam/

  2. 新增允許 Okta 向使用者顯示IAM角色清單的政策。若要執行此操作,請選擇政策建立政策

  3. 選擇 JSON,然後輸入下列政策。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:ListRoles", "iam:ListAccountAliases" ], "Resource": "*" } ] }
  4. 選擇檢閱政策

  5. 針對名稱,輸入 OktaListRolesPolicy。然後選擇 Create policy (建立政策)。

  6. 新增使用者,以便您可向 Okta 提供存取金鑰。

    在導覽窗格中,選擇使用者新增使用者

  7. 請使用下列設定:

    • User name (使用者名稱) 中輸入 OktaSSOUser

    • 針對存取類型,啟用以程式設計方式存取

  8. 選擇 Next: Permissions (下一步:許可)

  9. 選擇直接連接現有政策

  10. 對於搜尋 ,輸入 OktaListRolesPolicy,然後從搜尋結果OktaListRolesPolicy中選擇 。

  11. 選擇 Next: Tags (下一步:標籤),然後選擇 Next: Review (下一步:檢閱)。

  12. 選擇 Create user (建立使用者)。現在,您可以取得存取金鑰。

  13. 選擇 Download .csv,下載金鑰檔案。該檔案包含的存取金鑰 ID 和私密存取金鑰與此畫面上顯示的相同。但是,因為 AWS 不會再次顯示此資訊,請務必下載 檔案。

  14. 請執行下列動作,確認您已正確完成此步驟:

    1. 開啟IAM主控台,然後選擇使用者 。搜尋 O ktaSSOUser,然後從搜尋結果中選擇使用者名稱來開啟它。

    2. 許可索引標籤上,確認 OktaListRolesPolicy已連接。

    3. 使用 Play button icon with a triangular shape pointing to the right. 圖示,開啟政策。確認文字符合此程序中顯示的內容。

    4. 安全憑證標籤上,您可以檢查存取金鑰,儘管您已下載。當您需要新的存取金鑰時,您可以返回此標籤建立一個。

在下列程序中,您會返回 Okta 以提供存取金鑰。存取金鑰會搭配您的新安全設定使用,以允許 AWS 和 Okta IdP 一起運作。

使用設定完成 Okta 應用程式 AWS 設定
  1. 返回您的 Okta 儀表板。如果要求這樣做,請登入。如果開發人員主控台不再開啟,請選擇管理員以將其重新開啟。

  2. 如果您必須重新開啟 Okta,則可以按照下列步驟返回本章節:

    1. 登入 Okta。選擇 Applications (應用程式)

    2. 選擇AWS 帳戶聯合 - QuickSight- 在本教學課程開始時建立的應用程式。

    3. 一般行動之間,選擇登入標籤。

  3. 捲動至進階登入設定

  4. 對於身分提供者 SAML IAM ARN(僅聯合所需),輸入ARN先前程序的提供者,例如:

    arn:aws:iam::111122223333:saml-provider/Okta
  5. 選擇完成儲存。按鈕的名稱會因您是否建立或編輯應用程式而異。

  6. 選擇佈建索引標籤,然後在索引標籤的下方選擇設定API整合

  7. 開啟啟用API整合以顯示設定。

  8. 針對存取金鑰機密金鑰,請提供您先前下載到名為 OktaSSOUser_credentials.csv 的檔案中的存取金鑰和機密金鑰。

  9. 選擇測試API憑證 。請查看訊息的啟用API整合設定,確認AWS 帳戶聯合已成功驗證

  10. 選擇 Save (儲存)。

  11. 確定在左側反白顯示到應用程序,然後選擇右側的編輯

  12. 針對建立使用者,開啟啟用選項。

  13. 選擇 Save (儲存)。

  14. 指派標籤的佈建匯入附近,選擇指派

  15. 執行以下一或多項動作,以啟用聯合存取:

    • 若要與個別使用者合作,請選擇指派給人員

    • 若要使用IAM群組,請選擇指派給群組 。您可以選擇特定IAM群組或所有人 (組織中的所有使用者)

  16. 針對每個IAM使用者或群組,執行下列動作:

    1. 選擇指派角色

    2. QuicksightOktaFederatedRole 從IAM角色清單中選取 。

    3. 對於SAML使用者角色 ,啟用 QuicksightOktaFederatedRole

  17. 選擇儲存並返回,然後選擇完成

  18. 選擇左側的人員群組篩選條件,然後檢查您輸入的使用者或群組,以確認您已正確完成此步驟。如果因為您建立的角色未出現在清單中而無法完成此程序,請返回先前程序,以確認設定。

QuickSight 使用 Okta 登入 (IdP 至服務供應商登入)
  1. 如果您使用的是 Okta 管理員帳戶,請切換到使用者模式。

  2. 使用已授予聯合存取的使用者登入您的 Okta 應用程式儀表板。您應該會看到具有標籤的新應用程式,例如 AWS Account Federation - QuickSight

  3. 選擇應用程式圖示以啟動AWS 帳戶聯合 - QuickSight

您現在可以使用 Okta 管理身分,並透過 Amazon 使用聯合存取 QuickSight。

下列步驟是本教學課程的選用部分。如果您遵循其步驟,則表示您授權代表使用者將授權請求 QuickSight 轉送至 IdP。使用此方法,使用者可以登入 ,而 QuickSight 不需要先使用 IdP 頁面登入。

(選用) 設定 QuickSight 以傳送身分驗證請求至 Okta
  1. 開啟 QuickSight,然後從設定檔功能表中選擇管理 QuickSight

  2. 從導覽窗格中選擇單一登入 (IAM聯合)

  3. 針對組態 IdP URL,輸入 URL IdP 提供給身分驗證使用者的 ,例如 https://dev-1-----0.okta.com/home/amazon_aws/0oabababababaGQei5d5/282。 您可以在 Okta 應用程式頁面、一般索引標籤、內嵌連結 中找到此項目。

  4. 對於 IdP URL,輸入 RelayState

  5. 執行以下任意一項:

    • 若要先測試身分提供者的登入,請使用測試中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 一樣登入 。

  6. 狀態中,選擇開啟

  7. 選擇儲存保留設定。

您可以建立 QuickSight 儀表板的深層連結,讓使用者使用IAM聯合直接連線至特定儀表板。若要這麼做,請將轉送狀態旗標和儀表板附加URL到 Okta 單一登入 URL,如下所述。

若要建立 QuickSight 儀表板的深層連結以進行單一登入
  1. 在教學課程開始下載的URLmetadata.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"/>
  2. 取得IAM聯合的值URL,?RelayState=然後附加 QuickSight 儀表板URL的 。RelayState 參數會轉送使用者重新導向至身分驗證 時所在的狀態 (URL)URL。

  3. 在新增轉送狀態的新聯合中,附加 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
  4. 如果您建立的連結未開啟,請檢查您是否使用URL來自 的最新IAM聯合metadata.xml。同時檢查您用來登入的使用者名稱是否未在多個IAM聯合 Okta 應用程式中指派。