

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

# 教學課程：Amazon Quick 和 IAM 聯合身分
<a name="tutorial-okta-quicksight"></a>


|  | 
| --- |
|    適用對象：企業版和標準版  | 


|  | 
| --- |
|    目標對象：Amazon Quick Administrators 和 Amazon Quick Developer  | 

**注意**  
IAM 聯合身分不支援同步身分提供者群組與 Amazon Quick。

在以下教學課程中，您可以找到將 IdP Okta 設定為 Amazon Quick 聯合服務的逐步解說。雖然本教學課程會顯示 AWS Identity and Access Management (IAM) 和 Okta 的整合，但您也可以使用您選擇的 SAML 2.0 IdP 複寫此解決方案。

在下列程序中，您可以使用其「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 帳戶，請使用[此 Amazon Quick 品牌 URL](https://developer.okta.com/quickstart/) 建立免費 Okta Developer Edition 帳戶。啟用電子郵件後，請登入 Okta。

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

1. 選擇**新增應用程式**，然後選擇**新增應用程式**。

1. 在**搜尋**中輸入 **aws**，然後從搜尋結果中選擇 **AWS 帳戶聯合**。

1. 選擇**新增**，以建立此應用程式的執行個體。

1. 針對**應用程式名稱**，輸入 **AWS Account Federation - Amazon Quick**。

1. 選擇**下一步**。

1. 針對 **SAML 2.0**，**預設轉送狀態**，輸入 **https://quicksight.aws.amazon.com**。

1. 開啟**身分提供者中繼資料**的內容 (按一下右鍵) 選單，然後選擇以儲存檔案。將檔案命名為 `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>
   ```

1. 儲存 XML 檔案後，向下捲動到 Okta 頁面底部，然後選擇**完成**。

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

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

**在 AWS Identity and Access Management (IAM) 中建立 SAML 供應商**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 的 IAM 主控台。

1. 在導覽窗格中，選擇**身分提供者**、**建立供應商**。

1. 輸入以下設定：
   + **提供者類型** – 從清單中選擇 **SAML**。
   + **提供者名稱** – 輸入 **Okta**。
   + **中繼資料文件** – 上傳來自先前程序的 XML 檔案 `manifest.xml`。

1. 選擇**下一步**、**建立**。

1. 找到您建立的 IdP，然後選擇它以檢視設定。記下**提供者 ARN**。您需要用它來完成本教學課程。

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

接著，您可以建立 IAM 角色，讓 SAML 2.0 聯合成為您 中信任的實體。 AWS 帳戶在此步驟中，您需要選擇在 Amazon Quick 中佈建使用者的方式。您可以執行下列任一作業：
+ 將許可授予 IAM 角色，讓第一次訪客自動成為 Amazon Quick 使用者。

**將 SAML 2.0 聯合的 IAM 角色建立為信任的實體**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 的 IAM 主控台。

1. 在導覽窗格中，選擇**角色** 、**建立角色**。

1. 在**選取信任的實體類型**中，選擇標記為 **SAML 2.0 聯合**的卡片。

1. 針對 **SAML 提供者**，選取您在先前程序中建立的 IdP，例如 `Okta`。

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

1. 選擇**下一步：許可**。

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

   在政策編輯器中，使用提供商的 Amazon Resource Name (ARN) 更新 JSON。

   ```
   {
       "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"
           }
           }
       }
       ]
       }
   ```

1. 選擇**檢閱政策**。

1. 在 **Name (名稱)** 中輸入 **QuicksightOktaFederatedPolicy**，然後選擇 **Create policy (建立政策)**。

1. 再次選擇**建立政策**、**JSON**。

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

   在政策編輯器中，使用您的 AWS 帳戶 ID 更新 JSON。該帳戶 ID 應與您在提供者 ARN 的先前政策中使用的相同。

   ```
   {
       "Version": "2012-10-17"		 	 	 ,
       "Statement": [
           {
               "Action": [
                   "quicksight:CreateReader"
               ],
               "Effect": "Allow",
               "Resource": [
                   "arn:aws:quicksight::111111111111:user/${aws:userid}"
               ]
           }
       ]
       }
   ```

   您可以省略 ARN 中的 AWS 區域 名稱，如下所示。

   ```
   arn:aws:quicksight::111111111111:user/$${aws:userid}
   ```

1. 選擇**檢閱政策**。

1. 在 **Name (名稱)** 中輸入 **QuicksightCreateReader**，然後選擇 **Create policy (建立政策)**。

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

1. 針對**搜尋**，輸入 **QuicksightOktaFederatedPolicy**。選擇要啟用的政策 (![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/quick/latest/userguide/images/checkbox-on.png))。

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

   若要新增 Amazon Quick 使用者，請使用 [register-user](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_RegisterUser.html)。若要新增 Amazon Quick 群組，請使用 [create-group](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_CreateGroup.html)。若要將使用者新增至 Amazon Quick 群組，請使用 [create-group-membership](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_CreateGroupMembership.html)。

1. (選用) 針對**搜尋**，請輸入 **QuicksightCreateReader**。選擇要啟用的政策 (![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/quick/latest/userguide/images/checkbox-on.png))。

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

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

1. 若要繼續連接一個或多個 IAM 政策，請選擇**下一步：標籤**。

1. 選擇下**一步：檢閱**。

1. 針對**角色名稱**，輸入 **QuicksightOktaFederatedRole**，然後選擇**建立角色**。

1. 請執行下列步驟，確認您已成功完成此操作：

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

   1. 選擇**角色**。

   1. 針對**搜尋**，請輸入 Okta。從搜尋結果中選擇 **QuicksightOktaFederatedRole**。

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

   1. 使用 ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/quick/latest/userguide/images/caret-right-filled.png) 圖示，開啟每個政策。確認文字符合此程序中顯示的內容。再次確認您已新增自己的 AWS 帳戶 號碼，以取代範例帳戶號碼 111111111111。

   1. 在**信任關係**標籤上，確認**信任的實體**欄位包含身分提供者的 ARN。您可以開啟**身分提供者**、**Okta**，在 IAM 主控台中再次檢查 ARN。

**為 Okta 建立存取金鑰**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 的 IAM 主控台。

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

1. 選擇 **JSON**，然後輸入下列政策。

   ```
   {
       "Version": "2012-10-17"		 	 	 ,
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "iam:ListRoles",
                   "iam:ListAccountAliases"
               ],
               "Resource": "*"
           }
       ]
       }
   ```

1. 選擇**檢閱政策**。

1. 對於**名稱**，輸入 **OktaListRolesPolicy**。然後選擇 **Create policy** (建立政策)。

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

   在導覽窗格中，選擇**使用者**、**新增使用者**。

1. 請使用下列設定：
   + 在 **User name** (使用者名稱) 中輸入 `OktaSSOUser`。
   + 針對**存取類型**，啟用**以程式設計方式存取**。

1. 選擇 **Next: Permissions (下一步：許可)**。

1. 選擇**直接連接現有政策**。

1. 針對**搜尋**，輸入 **OktaListRolesPolicy**，然後從搜尋結果中選擇 **OktaListRolesPolicy**。

1. 選擇 **Next: Tags** (下一步：標籤)，然後選擇 **Next: Review** (下一步：檢閱)。

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

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

1. 請執行下列動作，確認您已正確完成此步驟：

   1. 開啟 IAM 主控台，然後選擇**使用者**。搜尋 **Oktassouser**，並透過從搜尋結果中選擇使用者名稱來將其開啟。

   1. 在**許可**標籤上，確認已連接 **OktaListRolesPolicy**。

   1. 使用 ![\[alt text not found\]](http://docs.aws.amazon.com/zh_tw/quick/latest/userguide/images/caret-right-filled.png) 圖示，開啟政策。確認文字符合此程序中顯示的內容。

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

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

**使用設定完成 AWS 設定 Okta 應用程式**

1. 返回您的 Okta 儀表板。如果要求這樣做，請登入。如果開發人員主控台不再開啟，請選擇**管理員**以將其重新開啟。

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

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

   1. 選擇**AWS 帳戶聯合 - Amazon Quick** - 您在本教學課程開始時建立的應用程式。

   1. 在**一般**和**行動**之間，選擇**登入**標籤。

1. 捲動至**進階登入設定**。

1. 針對**身分提供者 ARN (僅 SAML IAM 聯合需要)**，請輸入來自先前程序的提供者 ARN，例如：

   ```
   arn:aws:iam::111122223333:saml-provider/Okta
   ```

1. 選擇**完成**或**儲存**。按鈕的名稱會因您是否建立或編輯應用程式而異。

1. 選擇**佈建**標籤，然後在標籤的下方選擇**設定 API 整合**。

1. 開啟**啟用 API 整合**，以顯示設定。

1. 針對**存取金鑰**和**機密金鑰**，請提供您先前下載到名為 **OktaSSOUser**`_credentials.csv` 的檔案中的存取金鑰和機密金鑰。

1. 選擇**測試 API 憑證**。查看**啟用 API 整合**設定上方的訊息，確認 **AWS 帳戶聯合已成功驗證**。

1. 選擇**儲存**。

1. 確定在左側反白顯示**到應用程序**，然後選擇右側的**編輯**。

1. 針對**建立使用者**，開啟**啟用**選項。

1. 選擇**儲存**。

1. 在**指派**標籤的**佈建**和**匯入**附近，選擇**指派**。

1. 執行以下一或多項動作，以啟用聯合存取：
   + 若要與個別使用者合作，請選擇**指派給人員**。
   + 若要與 IAM 群組合作，請選擇**指派給群組**。您可以選擇特定的 IAM 群組或**每個人 (組織中的所有使用者)**。

1. 針對每個 IAM 使用者或群組，執行下列動作：

   1. 選擇**指派**、**角色**。

   1. 從 IAM 角色清單中，選取 **QuicksightOktaFederatedRole**。

   1. 針對 **SAML 使用者角色**，啟用 **QuicksightOktaFederatedRole**。

1. 選擇**儲存並返回**，然後選擇**完成**。

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

**使用 Okta 登入 Amazon Quick (IdP 到服務提供者登入）**

1. 如果您使用的是 Okta 管理員帳戶，請切換到使用者模式。

1. 使用已授予聯合存取的使用者登入您的 Okta 應用程式儀表板。您應該會看到具有標籤的新應用程式，例如**AWS 帳戶聯合 - Amazon Quick**。

1. 選擇應用程式圖示以啟動**AWS 帳戶聯合 - Amazon Quick**。

您現在可以使用 Okta 管理身分，並使用聯合存取搭配 Quick。

下列步驟是本教學課程的選用部分。如果您遵循其步驟，您即授權 Amazon Quick 代表使用者將授權請求轉送至 IdP。使用此方法，使用者可以登入 Amazon Quick，無需先使用 IdP 頁面登入。

**（選用） 設定 Amazon Quick 將身分驗證請求傳送至 Okta**

1. 開啟 Amazon Quick，然後從設定檔功能表中選擇**管理 Amazon Quick**。

1. 從導覽窗格中，選擇**單一登入 (IAM 聯合)**。

1. 針對**組態**、**IdP 網址**，請輸入您的 IdP 提供用來對使用者進行身分驗證的 URL，例如 https://dev-*1-----0*.okta.com/home/amazon\$1aws/*0oabababababaGQei5d5/282*。您可以在 Okta 應用程式頁面的**一般**標籤上的**內嵌連結**中找到此選項。

1. 針對 **IdP URL**，請輸入 `RelayState`。

1. 執行以下任意一項：
   + 若要先測試使用您的身分提供者登入，請使用**從您的 IdP 開始測試**中提供的自訂 URL。您應該到達 Amazon Quick 的開始頁面，例如 https://quicksight.aws.amazon.com/sn/start。
   + 若要先使用 Amazon Quick 測試登入，請使用**測試end-to-end體驗**中提供的自訂 URL。`enable-sso` 參數會附加至 URL。如果是 `enable-sso=1`，IAM 聯合會嘗試進行身分驗證。如果為 `enable-sso=0`，Amazon Quick 不會傳送身分驗證請求，而您會像以前一樣登入 Amazon Quick。

1. 在**狀態**中，選擇**開啟**。

1. 選擇**儲存**保留設定。

您可以建立 Amazon Quick 儀表板的深層連結，以允許使用者使用 IAM 聯合直接連線至特定儀表板。若要這樣做，您可以將轉送狀態標記和儀表板 URL 附加至 Okta 單一登入 URL，如下所述。

**若要為單一登入建立 Amazon Quick 儀表板的深層連結**

1. 在您於教學課程開始時下載的 `metadata.xml` 檔案中，找出 Okta 應用程式的單一登入 (IAM 聯合) URL。您可以在名為 `md:SingleSignOnService` 的元素中找到檔案底部附近的 URL。屬性名為 `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"/>
   ```

1. 取得 IAM 聯合 URL 的值，然後`?RelayState=`附加 Amazon Quick 儀表板的 URL。`RelayState` 參數會轉送使用者重新導向至身分驗證 URL 時所處的狀態 (URL)。

1. 在新增轉送狀態的新 IAM 聯合中，附加 Amazon Quick 儀表板的 URL。產生的 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
   ```

1. 如果您建立的連結未開啟，請檢查您是否使用 `metadata.xml` 中的最新 IAM 聯合 URL。另外，請檢查您用於登錄的使用者名稱是否未在多個 IAM 聯合 Okta 應用程式中指派。