本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:Amazon QuickSight 和 IAM 聯合身分
適用對象:企業版和標準版 |
目標對象:Amazon QuickSight 管理員和 Amazon QuickSight 開發人員 |
注意
IAM 聯合身分不支援將身分提供者群組與 Amazon QuickSight 同步。
在以下教學課程中,您可以找到將 IdP Okta 設定為 Amazon QuickSight 的聯合服務的逐步解說。雖然本教學課程顯示 AWS Identity and Access Management (IAM) 和 Okta 的整合,但您也可以使用您選擇的 SAML 2.0 IdPs複寫此解決方案。
在下列程序中,您可以使用其「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 儀表板。如果您沒有,請使用此 QuickSight 品牌 URL
建立免費的 Okta 開發人員版帳戶。啟用電子郵件後,請登入 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 ,並在 https://https://console.aws.amazon.com/iam/
開啟 IAM 主控台。 -
在導覽窗格中,選擇身分提供者、建立供應商。
-
輸入以下設定:
-
提供者類型 – 從清單中選擇 SAML。
-
提供者名稱 – 輸入
Okta
。 -
中繼資料文件 – 上傳來自先前程序的 XML 檔案
manifest.xml
。
-
-
選擇下一步、建立。
-
找到您建立的 IdP,然後選擇它以檢視設定。記下提供者 ARN。您需要用它來完成本教學課程。
-
確認身分提供者是使用您的設定建立的。在 IAM 中,選擇身分提供者、Okta (您新增的 IdP)、下載中繼資料。該檔案應該是您最近上傳的檔案。
接著,您可以建立 IAM 角色,讓 SAML 2 AWS 帳戶.0 聯合成為您 中信任的實體。在此步驟中,您需要選擇要在 Amazon QuickSight 中佈建使用者的方式。您可以執行下列任一作業:
-
授予 IAM 角色許可,以便初次訪客自動成為 QuickSight 使用者。
-
使用 QuickSight API 提前佈建 QuickSight 使用者。透過選擇此選項,您可以佈建使用者並同時將其新增至群組。如需詳細資訊,請參閱在 Amazon QuickSight 中建立和管理群組。
將 SAML 2.0 聯合的 IAM 角色建立為信任的實體
-
登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/iam/
開啟 IAM 主控台。 -
在導覽窗格中,選擇角色 、建立角色。
-
在選取信任的實體類型中,選擇標記為 SAML 2.0 聯合的卡片。
-
針對 SAML 提供者,選取您在先前程序中建立的 IdP,例如
Okta
。 -
啟用允許程式設計 AWS 和管理主控台存取選項。
-
選擇下一步:許可。
-
將以下政策貼到編輯器。
在政策編輯器中,使用提供商的 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" } } } ] } -
選擇檢閱政策。
-
在 Name (名稱) 中輸入
QuicksightOktaFederatedPolicy
,然後選擇 Create policy (建立政策)。 -
再次選擇建立政策、JSON。
-
將以下政策貼到編輯器。
在政策編輯器中,使用您的 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} -
選擇檢閱政策。
-
在 Name (名稱) 中輸入
QuicksightCreateReader
,然後選擇 Create policy (建立政策)。 -
選擇右側的重新整理圖示,以重新整理政策清單。
-
針對搜尋,輸入
QuicksightOktaFederatedPolicy
。選擇要啟用的政策 ()。
如果您不想使用自動佈建,則可略過下列步驟。
若要新增 QuickSight 使用者,請使用 register-user。若要新增 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。您可以開啟身分提供者、Okta,在 IAM 主控台中再次檢查 ARN。
-
為 Okta 建立存取金鑰
-
登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/iam/
開啟 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 主控台,然後選擇使用者。搜尋 Oktassouser,並透過從搜尋結果中選擇使用者名稱來將其開啟。
-
在許可標籤上,確認已連接 OktaListRolesPolicy。
-
使用
圖示,開啟政策。確認文字符合此程序中顯示的內容。
-
在安全憑證標籤上,您可以檢查存取金鑰,儘管您已下載。當您需要新的存取金鑰時,您可以返回此標籤建立一個。
-
在下列程序中,您會返回 Okta 以提供存取金鑰。存取金鑰會與您的新安全設定搭配使用,以允許 AWS 和 Okta IdP 一起運作。
使用設定完成 AWS 設定 Okta 應用程式
-
返回您的 Okta 儀表板。如果要求這樣做,請登入。如果開發人員主控台不再開啟,請選擇管理員以將其重新開啟。
-
如果您必須重新開啟 Okta,則可以按照下列步驟返回本章節:
-
登入 Okta。選擇 Applications (應用程式)。
-
選擇AWS 帳戶聯合 - QuickSight,您在本教學課程開始時建立的應用程式。
-
在一般和行動之間,選擇登入標籤。
-
-
捲動至進階登入設定。
-
針對身分提供者 ARN (僅 SAML IAM 聯合需要),請輸入來自先前程序的提供者 ARN,例如:
arn:aws:iam::
111122223333
:saml-provider/Okta -
選擇完成或儲存。按鈕的名稱會因您是否建立或編輯應用程式而異。
-
選擇佈建標籤,然後在標籤的下方選擇設定 API 整合。
-
開啟啟用 API 整合,以顯示設定。
-
針對存取金鑰和機密金鑰,請提供您先前下載到名為
OktaSSOUser
_credentials.csv
的檔案中的存取金鑰和機密金鑰。 -
選擇測試 API 憑證。查看啟用 API 整合設定上方的訊息,確認 AWS 帳戶聯合已成功驗證。
-
選擇 Save (儲存)。
-
確定在左側反白顯示到應用程序,然後選擇右側的編輯。
-
針對建立使用者,開啟啟用選項。
-
選擇 Save (儲存)。
-
在指派標籤的佈建和匯入附近,選擇指派。
-
執行以下一或多項動作,以啟用聯合存取:
-
若要與個別使用者合作,請選擇指派給人員。
-
若要與 IAM 群組合作,請選擇指派給群組。您可以選擇特定的 IAM 群組或每個人 (組織中的所有使用者)。
-
-
針對每個 IAM 使用者或群組,執行下列動作:
-
選擇指派、角色。
-
從 IAM 角色清單中,選取 QuicksightOktaFederatedRole。
-
針對 SAML 使用者角色,啟用 QuicksightOktaFederatedRole。
-
-
選擇儲存並返回,然後選擇完成。
-
選擇左側的人員或群組篩選條件,然後檢查您輸入的使用者或群組,以確認您已正確完成此步驟。如果因為您建立的角色未出現在清單中而無法完成此程序,請返回先前程序,以確認設定。
使用 Okta 登入 QuickSight (IdP 至服務提供者登入)
-
如果您使用的是 Okta 管理員帳戶,請切換到使用者模式。
-
使用已授予聯合存取的使用者登入您的 Okta 應用程式儀表板。您應該會看到一個帶有標籤的新應用程式,例如 AWS 帳戶聯合 - QuickSight。
-
選擇應用程式圖示,以啟動 AWS 帳戶聯合 - QuickSight。
您現在可以使用 Okta 來管理身分,並透過 Amazon QuickSight 使用聯合存取。
下列步驟是本教學課程的選用部分。如果您遵循其步驟,即表示您授權 QuickSight 代表您的使用者將授權請求轉寄給 IdP。使用此方法,使用者可以登入 QuickSight,而不需要先使用 IdP 頁面登入。
(選用) 若要設定 QuickSight 以傳送身分驗證請求至 Okta
-
開啟 QuickSight,然後從設定檔選單中選擇管理 QuickSight。
-
從導覽窗格中,選擇單一登入 (IAM 聯合)。
-
針對組態、IdP 網址,請輸入您的 IdP 提供用來對使用者進行身分驗證的 URL,例如 https://dev-
1-----0
.okta.com/home/amazon_aws/0oabababababaGQei5d5/282
。您可以在 Okta 應用程式頁面的一般標籤上的內嵌連結中找到此選項。 -
針對 IdP URL,請輸入
RelayState
。 -
執行以下任意一項:
-
若要先測試使用您的身分提供者登入,請使用從您的 IdP 開始測試中提供的自訂 URL。您應該到達 QuickSight 的起始頁面,例如 https://quicksight.aws.amazon.com/sn/start。
-
若要先測試使用 QuickSight 登入,請使用測試端對端體驗中提供的自訂 URL。
enable-sso
參數會附加至 URL。如果是enable-sso=1
,IAM 聯合會嘗試進行身分驗證。如果是enable-sso=0
,QuickSight 沒有傳送身分驗證請求,而您可以如以前一樣登入 QuickSight。
-
-
在狀態中,選擇開啟。
-
選擇儲存保留設定。
您可以建立 QuickSight 儀表板的深層連結,以允許使用者使用 IAM 聯合直接連線至特定儀表板。若要這樣做,您可以將轉送狀態標記和儀表板 URL 附加至 Okta 單一登入 URL,如下所述。
為單一登入建立 QuickSight 儀表板的深層連結
-
在您於教學課程開始時下載的
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"/>
-
取得 IAM 聯合 URL 的值,然後在您的 QuickSight 儀表板的 URL 後附加
?RelayState=
。RelayState
參數會轉送使用者重新導向至身分驗證 URL 時所處的狀態 (URL)。 -
如果新增了轉送狀態的新 IAM 聯合,請附加 QuickSight 儀表板的 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 -
如果您建立的連結未開啟,請檢查您是否使用
metadata.xml
中的最新 IAM 聯合 URL。另外,請檢查您用於登錄的使用者名稱是否未在多個 IAM 聯合 Okta 應用程式中指派。