將 Athena 連線至 IAM Identity Center
下節列出將 Athena 連線至 IAM Identity Center 的程序。
設定可信權杖發行者
遵循設定可信權杖發行者指南,以便設定可信權杖發行者。這會建立 AWS IAM Identity Center。
注意
對於提供者問題,選擇 OpenID Connect。在提供者 URL 中,輸入身分提供者的發行者 URL。對於對象,指定您應用程式身分提供者發出的用戶端 ID。
複製 AWS IAM Identity 提供者的應用程式資源名稱 (ARN)。如需相關資訊,請參閱《身分提供者和聯合》。
設定 IAM 角色
設定 IAM 應用程式角色
前往 https://console.aws.amazon.com/iam/
開啟 IAM 主控台。 -
在左側導覽窗格中,選擇角色,然後選擇建立角色。
-
對於信任的實體類型,選擇自訂信任政策:
-
對於聯合主體,新增您在可信權杖發行者設定期間複製的 AWS IAM 身分提供者的 ARN。
-
對於政策條件,從外部聯合身分提供者新增對象。
-
-
新增下列內嵌政策,以授予使用者對 CreateTokenWithIAM、ListTagsForResource 和 AssumeRoleWithWebIdentity 許可的存取權。
注意
CreateTokenWithIam許可會在客戶受管的 IAM Identity Center 應用程式中授予。 -
複製應用程式角色的 ARN。
設定 IAM 存取角色
前往 https://console.aws.amazon.com/iam/
開啟 IAM 主控台。 -
在左側導覽窗格中,選擇角色,然後選擇建立角色。
-
對於信任的實體類型,選擇自訂信任政策:
-
對於聯合主體,新增您在可信權杖發行者設定期間複製的 AWS IAM Identity Center 的 ARN。
-
對於 AWS 主體,新增在 IAM 應用程式角色設定期間複製的 AWS IAM 應用程式角色 ARN。
-
-
新增下列內嵌政策,以授予驅動器工作流程的存取權:
-
複製存取角色的 ARN。
設定 AWS IAM Identity Center 客戶應用程式
若要設定客戶應用程式,請遵循設定客戶受管 OAuth 2.0 應用程式以取得可信身分傳播中的步驟,並注意下列 Athena 考量事項。
-
對於標籤,新增下列鍵值對:
-
金鑰 – AthenaDriverOidcAppArn
-
值 – 在 IAM 存取角色設定期間複製的 AccessRoleARN。
-
-
指定應用程式憑證時,請新增您在 IAM 應用程式角色設定期間複製的 AWS IAM 應用程式角色的 ARN。
-
對於可接收請求的應用程式,選擇 AWS-Lake-Formation-AWS-Glue-Data-Catalog-<account-id>。
-
對於要套用的存取範圍,選擇 lakeformation:query。
設定工作群組關聯
-
在 Athena 主控台導覽窗格中,選擇 Workgroups (工作群組)。
-
從清單中選擇工作群組,然後開啟標籤索引標籤。
-
選擇管理標籤,然後輸入下列內容:
-
索引鍵 –
AthenaDriverOidcAppArn -
值 – AWS IAM Identity Center 應用程式的 ARN。
-
-
選擇儲存。
管理員完成一次性設定後,他們可以將基本連線詳細資訊分發給使用者。使用者需要這五個強制性參數才能執行 SQL 工作負載:
-
ApplicationRoleARN – 應用程式角色的 ARN
-
JwtWebIdentityToken – 用於身分驗證的 JWT 權杖
-
WorkgroupARN – Athena 工作群組的 ARN
-
JwtRoleSessionName – JWT 角色的工作階段名稱
-
CredentialsProvider – 憑證提供者組態
注意
我們已透過策略標記簡化連線字串組態。透過正確標記 Athena 工作群組和 AWS IAM Identity Center 客戶受管應用程式,管理員便無需要求使用者提供 AccessRoleArn 和 CustomerIdcApplicationArn。外掛程式會使用應用程式角色來尋找必要的標籤,並擷取其工作流程的對應 ARN 值,進而自動處理此問題。
管理員仍然可以視需要調整應用程式角色許可,從而讓使用者在連線字串中提供 AccessRoleArn 或 CustomerIdcApplicationArn。
使用已啟用可信身分傳播的 Athena 驅動器執行查詢
下載要使用的最新版本驅動器。如需有關 JDBC 安裝的詳細資訊,請參閱 JDBC 3.x 驅動器入門。您可以根據支援的平台選擇安裝 ODBC 驅動器。如需更多詳細資訊,請參閱 ODBC 2.x 驅動器入門。根據您要使用的驅動器,提供下文列出的參數:
注意
具有驅動器的可信身分傳播僅適用於 JDBC 3.6.0 版或更高版本和 ODBC 2.0.5.0 版或更高版本。
搭配使用 Athena 驅動器與具有 DBeaver 的可信身分傳播
-
從 Athena 下載具有相依性的最新 JDBC jar。如需更多詳細資訊,請參閱 Athena JDBC 3.x 驅動程式。
-
在電腦上開啟 DBeaver 應用程式。
-
導覽至螢幕頂端的資料庫選單,然後選擇驅動器管理員。
-
選擇新增,然後選擇程式庫。
-
新增最新的驅動器,然後選擇尋找類別。這將為您提供類似
com.amazon.athena.jdbc.AthenaDriver的檔案路徑。 -
開啟設定索引標籤並提供下列欄位
-
驅動器名稱 – Athena JDBC 可信身分傳播
-
類別名稱–
com.amazon.athena.jdbc.AthenaDriver -
選取選項無身分驗證。
-
-
選擇連接至資料庫並尋找 Athena JDBC 可信身分傳播。這會將您導向至 JDBC URL。如需更多詳細資訊,請參閱 設定驅動程式。
-
提供下列詳細資訊
-
工作群組 – 您要在其中執行查詢的工作群組。如需有關工作群組的資訊,請參閱工作群組。
-
區域 – 將在其中執行查詢的 AWS 區域。如需區域清單,請參閱 Amazon Athena 端點和配額。
-
OutputLocation – Amazon S3 中您要存放查詢結果的位置。如需有關輸出位置的資訊,請參閱 ResultConfiguration。
-
CredentialsProvider – 輸入
JWT_TIP。 -
ApplicationRoleArn – 要啟用
AssumeRoleWithWebIdentity的角色的 ARN。如需有關 ARN 角色的詳細資訊,請參閱《AWS Security Token Service API 參考》中的 AssumeRole。 -
WorkgroupArn – 將執行查詢的工作群組的 ARN。其必須與工作群組欄位中提供的工作群組相同。如需有關工作群組的資訊,請參閱工作群組。
-
JwtRoleSessionName – 使用 JWT 憑證進行身分驗證時的工作階段名稱。其可以是您選擇的任何名稱。
-
JwtWebIdentityToken – 從外部聯合身分提供者獲得的 JWT 權杖。此權杖可用於向 Athena 進行身分驗證。
jdbc:athena://Workgroup=<value>;Region=<region>;OutputLocation=<location>;CredentialsProvider=JWT_TIP;ApplicationRoleArn=<arn>;WorkgroupArn=<arn>;JwtRoleSessionName=JDBC_TIP_SESSION;JwtWebIdentityToken=<token>;
-
-
選擇確定並關閉視窗。完成此步驟後,DBeaver 會開始載入中繼資料,而您應該會開始看到您的目錄、資料庫和資料表逐漸被填入。
注意
如果權杖中存在 JTI 宣告,並且您在選擇確定之前選擇測試連線,則可防止重複使用相同的 JTI 進行權杖交換。如需詳細資訊,請參閱可信權杖發行者的先決條件和考量事項。為了處理此問題,JDBC 會實作記憶體快取,而其生命週期取決於主要驅動器執行個體。對於 ODBC,檔案快取是選擇性存在的,可快取和重複使用臨時憑證,以減少工作階段生命週期期間使用的 Web 身分權杖數量。
-
開啟 SQL 查詢編輯器,然後開始執行查詢。請參閱 Cloudtrail 日誌,驗證使用者的傳播身分。