教學課程:使用 Lake Formation 和設定 Okta 使用者至 Athena 的聯合存取權限 JDBC - Amazon Athena

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

教學課程:使用 Lake Formation 和設定 Okta 使用者至 Athena 的聯合存取權限 JDBC

本教程向您展示如何配置 Okta, AWS Lake Formation, AWS Identity and Access Management 權限和 Athena JDBC 驅動程式,SAML以啟用 Athena 的聯合使用。Lake Formation SAML 為基礎的使用者提供對 Athena 中可用資料的精細存取控制。要設置此配置,本教程使用 Okta 開發人員控制台, AWS IAM和湖面形成控制台和工作台SQL/J 工具。

必要條件

此教學課程假設您已完成下列作業:

步驟 1:建立 Okta 帳戶

本教學課程使用 Okta 做為SAML基礎的身分識別提供者。如果您還沒有 Okta 帳戶,您可以建立免費的帳戶。需要 Okta 帳戶,以便您可以創建 Okta 應用程序進SAML行身份驗證。

若要建立 Okta 帳戶
  1. 若要使用 Okta,請導覽至 Okta 開發人員註冊頁面並建立免費的 Okta 試用帳戶。開發人員版服務免費提供,最高可達 Okta 在 developer.okta.com/pricing 指定的限制。

  2. 收到啟用電子郵件時,請啟用您的帳戶。

    Okta 網域名稱將會指派給您。儲存網域名稱以供參考。稍後,您使用域名(<okta-idp-domain>)在連接到 Athena 的JDBC字符串中。

步驟 2:將使用者和群組新增至 Okta

在此步驟中,您可以使用 Okta 主控台來執行以下任務:

  • 建立兩個 Okta 使用者。

  • 建立兩個 Okta 群組。

  • 在每個 Okta 群組中新增一個 Okta 使用者。

若要將使用者新增至 Okta
  1. 啟用 Okta 帳戶之後,請以管理使用者身分登入指派的 Okta 網域。

  2. 在左側導覽窗格中,選擇 Directory (目錄),然後選擇 People (人員)。

  3. 選擇新增人員以新增將透過JDBC驅動程式存取 Athena 的新使用者。

    選擇 Add Person (新增人員)。
  4. Add Person (新增人員) 對話方塊中,輸入所需資訊。

    • 輸入 First name (名字) 和 Last name (姓氏) 的值。本教程使用 athena-okta-user.

    • 輸入 Username (使用者名稱) 和 Primary email (主要電子郵件地址)。本教程使用 athena-okta-user@anycompany.com.

    • 對於 Password (密碼),選擇 Set by admin (由管理員設定),然後提供密碼。本教學課程會清除 User must change password on first login (使用者首次登入時必須變更密碼) 的選項;您的安全需求可能會有所不同。

    將使用者新增至 Okta 應用程式。
  5. 選擇 Save and Add Another (儲存並新增另一個)。

  6. 輸入另一個使用者的資訊。此範例會新增商務分析師使用者 athena-ba-user@anycompany.com.

    將使用者新增至 Okta 應用程式。
  7. 選擇 Save (儲存)。

在下列程序中,您可以透過 Athena JDBC 驅動程式新增「商業分析師」群組和「開發人員」群組,為兩個 Okta 群組提供存取權。

若要新增 Okta 群組
  1. 在 Okta 導覽窗格中選擇 Directory (目錄),然後選擇 Groups (群組)。

  2. Groups (群組) 頁面上,選擇 Add Group (新增群組)。

    選擇 Add Group (新增群組)。
  3. Add Group (新增群組) 對話方塊中,輸入所需資訊。

    • 在「名稱」中,輸入 lf-business-analyst.

    • 群組說明中,輸入 Business Analysts.

    新增 Okta 群組。
  4. 選擇 Add Group (新增群組)。

  5. Groups (群組) 頁面上,再次選擇 Add Group (新增群組)。現在輸入開發人員群組的資訊。

  6. 輸入所需資訊。

    • 在「名稱」中,輸入 lf-developer.

    • 群組說明中,輸入 Developers.

  7. 選擇 Add Group (新增群組)。

現在您已擁有兩個使用者和兩個群組,可以在每個群組中新增使用者。

若要將使用者新增至群組
  1. Groups (群組) 頁面上,選擇您剛建立的 lf-developer 群組。您需將您建立為開發人員的 Okta 使用者之一新增至此群組。

    選擇 lf-developer。
  2. 選擇 Manage People (管理人員)。

    選擇 Manage People (管理人員)。
  3. 從「非成員」清單中選擇athena-okta-user

    選擇要新增至成員清單的使用者。

    使用者的項目會從左側的 Not Members (非成員) 清單移動至右側的 Members (成員) 清單。

    Okta 使用者已新增至 Okta 群組。
  4. 選擇 Save (儲存)。

  5. 選擇 Back to Group (返回群組),或選擇 Directory (目錄),接著選擇 Groups (群組)。

  6. 選擇lf-business-analyst群組。

  7. 選擇 Manage People (管理人員)。

  8. 新增athena-ba-userlf-business-analyst群組的 [成員] 清單,然後選擇 [儲存]。

  9. 選擇 Back to Group (返回群組),或依序選擇 Directory (目錄)、Groups (群組)。

    Groups (群組) 頁面現在顯示每個群組都有一個 Okta 使用者。

    Okta 主控台中的每個 Okta 群組均已新增一個使用者。

步驟 3:設定 Okta 應用程式以進行驗證 SAML

在此步驟中,您需使用 Okta 開發人員主控台以執行下列任務:

  • 新增與搭配使用的SAML應用程式 AWS.

  • 將應用程式指派給 Okta 使用者。

  • 將應用程式指派給 Okta 群組。

  • 下載產生的身分識別提供者中繼資料供日後使用 AWS.

若要新增應用程式以進行SAML驗證
  1. 在「Okta」導覽窗格中,選擇「用程式」、「應用程式」,以便設定 Okta 應用程式,以便向 Athena 進行SAML驗證。

  2. 按一下 Browse App Catalog (瀏覽應用程式目錄)。

  3. 在搜尋方塊中,輸入 Redshift

  4. 選擇 Amazon Web Services Redshift。本教學中的 Okta 應用程式使用 Amazon Redshift 的現有SAML整合。

    選擇 Amazon Web Services Redshift。
  5. Amazon Web Services 紅移頁面上,選擇新增以建立適用於 Amazon Redshift 的SAML基礎應用程式。

    選擇新增以建立SAML基於應用程式。
  6. Application (應用程式) 標籤中輸入 Athena-LakeFormation-Okta,然後選擇 Done (完成)。

    輸入 Okta 應用程式的名稱。

現在您已建立 Okta 應用程式,您可以將其指派給您建立的使用者和群組。

若要將應用程式指派給使用者和群組
  1. 在 [應用程式] 頁面上,選擇 Athena LakeFormation-Okta 應用程式。

  2. Assignments (指派) 索引標籤上,依序選擇 Assign (指派)、Assign to People (指派給人員)。

    依序選擇 Assign (指派)、Assign to People (指派給人員)。
  3. 在「將 Athena-LakeFormation-Okta 指派給人員」對話方塊中,找到您先前建立的athena-okta-user使用者。

  4. 選擇 Assign (指派) 將使用者指派給應用程式。

    選擇 Assign (指派)。
  5. 選擇 Save and Go Back (儲存並返回)。

  6. 選擇 Done (完成)。

  7. Athena-LakeFormation Okta 應用程式的 [] 索引標籤上,選擇 [指派] > [指派群組]。

  8. 對於 lf-business-analyst,選擇 [指派] 將 Athena LakeFormation-Okta 應用程式指派給lf-business-analyst群組,然後選擇 [完成]。

    將 Okta 應用程式指派給 Okta 使用者群組。

    該群組會出現在應用程式的群組清單中。

    Okta 應用程式指派給 Okta 群組。

現在,您已準備好下載身分識別提供者應用程式中繼資料,以便與 AWS.

若要下載應用程式中繼資料
  1. 選擇 Okta 應用程式 Sign On (登入) 索引標籤,然後以滑鼠右鍵按一下 Identity Provider metadata (身分提供者中繼資料)。

    在 Identity Provider metadata (身分提供者中繼資料) 上按一下滑鼠右鍵。
  2. 選擇「另存連結為」,將身分識別提供者中繼資料 (格式為XML格式) 儲存至檔案。指定一個您認識的名稱 (例如 Athena-LakeFormation-idp-metadata.xml)。

    儲存身分提供者中繼資料。

步驟 4:建立 AWS SAML身份提供者和 Lake Formation 訪問IAM角色

在此步驟中,您可以使用 AWS Identity and Access Management (IAM) 主控台可執行下列工作:

  • 建立身分識別提供者 AWS.

  • 為 Lake Formation 訪問創建一個IAM角色。

  • 將 AmazonAthenaFullAccess 受管理的原則新增至角色。

  • 增加 Lake Formation 政策和 AWS Glue 到角色。

  • 將 Athena 查詢結果的政策新增至該角色。

若要建立 AWS SAML 身分提供者
  1. Amazon Web Services 帳戶管理員身分登入 Amazon Web Services 帳戶主控台,然後導覽至IAM主控台 (https://console.aws.amazon.com/iam/)。

  2. 在導覽窗格中,選擇 Identity providers (身分提供者),然後按一下 Add provider (新增供應商)。

  3. Configure provider (設定供應商) 畫面上,輸入以下資訊:

    • 針對提供者類型,選擇SAML

    • 對於 Provider name (供應商名稱),輸入 AthenaLakeFormationOkta

    • 對於「中繼資料」文件,請使用「選擇檔案」選項來上傳您下載的身分識別提供者 (IdP) 中繼資料XML檔案。

  4. 選擇 Add provider (新增提供者)。

接下來,您建立的IAM角色 AWS Lake Formation 訪問。您可以將兩個內嵌政策新增至該角色。一個策略提供訪問 Lake Formation 的權限和 AWS Glue APIs。另一個政策可用於存取 Athena 和在 Amazon S3 中的 Athena 查詢結果位置。

若要建立IAM角色 AWS Lake Formation 存取
  1. 在IAM主控台瀏覽窗格中,選擇 [角色],然後選擇 [建立角色]。

  2. Create role (建立角色) 頁面上,執行以下步驟:

    配置IAM角色以使用 SAML 2.0。
    1. 針對 [選取信任實體的類型],選擇 [SAML2.0 同盟]。

    2. 對於SAML提供者,請選取AthenaLakeFormationOkta

    3. 對於SAML提供者,選擇選項允許程序化和 AWS Management Console 訪問

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

  3. Attach Permissions policies (連接許可政策) 頁面上,對於 Filter policies (篩選條件政策),輸入 Athena

  4. 選取受AmazonAthenaFullAccess管理的策略,然後選擇下一步:標籤

    將AmazonAthenaFullAccess受管理的策略附加到IAM角色。
  5. Add tags (新增標籤) 頁面上,選擇 Next: Review (下一步:檢閱)。

  6. 在 [複查] 頁面上,對於角色名稱,輸入角色的名稱 (例如 Athena-LakeFormation-OktaRole),然後選擇 [建立角色]。

    輸入IAM角色的名稱。

接下來,您添加允許訪問 Lake Formation 的內嵌政策, AWS Glue APIs和 Athena 查詢結果在 Amazon S3。

每當您使用IAM原則時,請務必遵循IAM最佳做法。如需詳細資訊,請參閱《IAM使用指南》IAM中的「安全性最佳作法」。

為 Lake Formation 的角色添加內嵌政策 AWS Glue
  1. 從IAM主控台的角色清單中,選擇新建立的角色Athena-LakeFormation-OktaRole

  2. 在角色的 Summary (摘要) 頁面之 Permissions (許可) 索引標籤上,選擇 Add inline policy (新增內嵌政策)。

  3. 在 [建立原則] 頁面上,選擇JSON

  4. 新增內嵌政策,如下所示,提供對 Lake Formation 和 AWS Glue APIs.

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:GetTable", "glue:GetTables", "glue:GetDatabase", "glue:GetDatabases", "glue:CreateDatabase", "glue:GetUserDefinedFunction", "glue:GetUserDefinedFunctions" ], "Resource": "*" } }
  5. 選擇 Review policy (檢閱政策)。

  6. 對於 Name (名稱),輸入政策名稱 (例如 LakeFormationGlueInlinePolicy)。

  7. 選擇 Create policy (建立政策)。

若要針對 Athena 查詢結果位置將內嵌政策新增至角色
  1. Athena-LakeFormation-OktaRole 角色 的 Summary (摘要) 頁面之 Permissions (許可) 索引標籤上,選擇 Add inline policy (新增內嵌政策)。

  2. 在 [建立原則] 頁面上,選擇JSON

  3. 新增內嵌政策 (如下所示),該政策允許對 Athena 查詢結果位置進行角色存取。更換 <athena-query-results-bucket> 範例中含有 Amazon S3 儲存貯體名稱的預留位置。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AthenaQueryResultsPermissionsForS3", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:PutObject", "s3:GetObject" ], "Resource": [ "arn:aws:s3:::<athena-query-results-bucket>", "arn:aws:s3:::<athena-query-results-bucket>/*" ] } ] }
  4. 選擇 Review policy (檢閱政策)。

  5. 對於 Name (名稱),輸入政策名稱 (例如 AthenaQueryResultsInlinePolicy)。

  6. 選擇 Create policy (建立政策)。

接下來,您將複製 Lake Formation 存取角色和您建立ARN的SAML提供者的角色。ARN當您在教學課程的下一節中設定 Okta SAML 應用程式時,這些都是必要的。

若要複製角色ARN和SAML身分識別提供者 ARN
  1. 在IAM主控台中角色的 [摘要] 頁面上,選擇 [Athena-LakeFormation-OktaRole角色] 旁邊的 [複製到剪貼簿] 圖示ARN。具ARN有以下格式:

    arn:aws:iam::<account-id>:role/Athena-LakeFormation-OktaRole
  2. ARN安全地保存完整文件以供日後參考。

  3. 在IAM主控台瀏覽窗格中,選擇身分識別提供者

  4. 選擇提AthenaLakeFormationOkta供者。

  5. 在 [摘要] 頁面上,選擇 [提供者] 旁邊的 [複製到剪貼簿] 圖示ARN。ARN應該如下所示:

    arn:aws:iam::<account-id>:saml-provider/AthenaLakeFormationOkta
  6. ARN安全地保存完整文件以供日後參考。

步驟 5:將IAM角色和SAML身分識別提供者新增至 Okta 應用程式

在此步驟中,您需返回 Okta 開發人員主控台並執行下列任務:

  • 將使用者和群組 Lake Formation URL 屬性新增至 Okta 應用程式。

  • 將身分識別提ARN供者的和IAM角色ARN的新增至 Okta 應用程式。

  • 複製 Okta 應用程式 ID。連線至 Athena 的JDBC設定檔中需要 Okta 應用程式識別碼。

將使用者和群組 Lake Formation URL 屬性新增至 Okta 應用程式
  1. 登入 Okta 開發人員主控台。

  2. 選擇 Applications (應用程式) 索引標籤,然後選擇 Athena-LakeFormation-Okta 應用程式。

  3. 選擇應用程式的 Sign On (登入) 索引標籤,然後選擇 Edit (編輯)。

    編輯 Okta 應用程式。
  4. 選擇 Attributes (optional) (屬性 (選填)) 以將其展開。

    將使用者 Lake Formation URL 屬性新增至 Okta 應用程式。
  5. 對於 Attribute Statements (optional) (屬性陳述式 (選填)),新增下列屬性:

    • 對於 Name (名稱),輸入 https://lakeformation.amazon.com/SAML/Attributes/Username

    • 對於 Value (值),輸入 user.login

  6. Group Attribute Statements (optional) (群組屬性陳述式 (選填)) 下,新增下列屬性:

    • 對於 Name (名稱),輸入 https://lakeformation.amazon.com/SAML/Attributes/Groups

    • 對於 Name format (名稱格式),輸入 Basic

    • 對於 Filter (篩選條件),選擇 Matches regex (符合 regex),然後在篩選條件方塊中輸入 .*

    將群組 Lake Formation URL 屬性新增至 Okta 應用程式。
  7. 向下捲動至「進階登入設定」區段,您可以在其中將身分識別提供者和IAM角色新增ARNs至 Okta 應用程式。

將身分識別提供者和IAM角色新增至 Okta 應ARNs用程式的步驟
  1. 針對 Idp ARN 與角色 ARN,輸入 AWS 身分識別提供者ARN和ARN以逗號分隔值的格式角色 <saml-arn>,<role-arn>。 組合的字串應如下所示:

    arn:aws:iam::<account-id>:saml-provider/AthenaLakeFormationOkta,arn:aws:iam::<account-id>:role/Athena-LakeFormation-OktaRole
    在 Okta 應用程式ARN中輸入身分識別提供者ARN和IAM角色。
  2. 選擇 Save (儲存)。

接下來,複製 Okta 應用程式 ID。您稍後將需要這個連接到 Athena 的JDBC字符串。

若要尋找並複製 Okta 應用程式 ID
  1. 選擇 Okta 應用程式的 General (一般) 索引標籤。

    選擇 Okta 應用程式的 General (一般) 索引標籤。
  2. 向下捲動至 App Embed Link (應用程式內嵌連結) 區段。

  3. 嵌入連結,複製並安全地儲存的 Okta 應用程式 ID 部URL分。Okta 應用程式 ID 是之URL後amazon_aws_redshift/但在下一個正斜線之前的一部分。例如,如果URL包含amazon_aws_redshift/aaa/bbb,則應用程式 ID 為aaa

    複製 Okta 應用程式 ID。
注意

無法使用嵌入的連結直接登入 Athena 主控台以查看資料庫。只有在您使用JDBC或ODBC驅動程式向 Athena 提交查詢時,才會辨識使用SAML者和群組的 Lake Formation 權限。若要檢視資料庫,您可以使用 SQL Workbench /J 工具,該工具會使用JDBC驅動程式連線至 Athena。「SQL工作台/J」工具涵蓋在中。步驟 7:透過 Athena JDBC 用戶端驗證存取權

步驟 6:透過授予使用者和群組權限 AWS Lake Formation

在此步驟中,您可以使用 Lake Formation 主控台將資料表的權限授與使用SAML者和群組。執行以下任務:

  • 指定表格上ARN的 Okta SAML 使用者和關聯的使用者權限。

  • 指定 Okta SAML 群組ARN的,以及表格上相關聯的群組權限。

  • 確認您授予的許可。

若要在 Lake Formation 中為 Okta 使用者授予許可
  1. 以資料湖管理員身分登入 AWS Management Console.

  2. 開啟 Lake Formation 控制台的位置https://console.aws.amazon.com/lakeformation/

  3. 從導覽窗格中,選擇 Tables (資料表),然後選取您要為其授予許可的資料表。本教學課程使用來自 tripdb 資料庫的 nyctaxi 資料表。

    選擇您要為其授予許可的資料表。
  4. Actions (動作),選擇 Grant (授予)。

    選擇 Grant (授予)。
  5. Grant permissions (授予許可) 對話方塊中,輸入下列資訊:

    1. SAML和 Amazon 使 QuickSight 用者和群組下,以下列格式輸入 Okta SAML 使用者ARN:

      arn:aws:iam::<account-id>:saml-provider/AthenaLakeFormationOkta:user/<athena-okta-user>@<anycompany.com>
    2. 對於 Columns (資料欄)、Choose filter type (選擇篩選條件類型),選擇性地選擇 Include columns (包含資料欄) 或 Exclude columns (排除資料欄)。

    3. 使用篩選條件下的 Choose one or more columns (選擇一或多個資料欄) 下拉式清單,以指定您要包含或排除使用者的資料欄。

    4. 對於 Table permissions (資料表許可),選擇 Select (選取)。本教學課程僅授予 SELECT 許可;您的需求可能會有所不同。

      將表格和資料欄層級許可授予 Okta 使用者。
  6. 選擇 Grant (授予)。

現在再針對 Okta 群組執行類似的步驟。

若要在 Lake Formation 中為 Okta 群組授予許可
  1. 在 Lake Formation 主控台的 Tables (資料表) 頁面上,確定仍選取 nyctaxi 資料表。

  2. Actions (動作),選擇 Grant (授予)。

  3. Grant permissions (授予許可) 對話方塊中,輸入下列資訊:

    1. SAML和 Amazon QuickSight 使用者和群組下,以下列格式輸入 Okta SAML 群ARN組:

      arn:aws:iam::<account-id>:saml-provider/AthenaLakeFormationOkta:group/lf-business-analyst
    2. 對於 Columns (資料欄)、Choose filter type (選擇篩選條件類型),選擇 Include columns (包含資料欄)。

    3. 對於 Choose one or more columns (選擇一或多個資料欄),選擇資料表的前三個資料欄。

    4. 對於 Table permissions (資料表許可),選擇要授予的特定存取許可。本教學課程僅授予 SELECT 許可;您的需求可能會有所不同。

      將資料表許可授予 Okta 群組。
  4. 選擇 Grant (授予)。

  5. 若要確認您授予的許可,請選擇 Actions (動作)、View permissions (檢視許可)。

    選擇 View permissions (檢視許可) 以確認授予的許可。

    nyctaxi表格的 [資料權限] 頁面會顯示athena-okta-userlf-business-analyst群組的權限。

    檢視授予 Okta 使用者和群組的許可。

步驟 7:透過 Athena JDBC 用戶端驗證存取權

現在您可以使用用JDBC戶端,以 Okta 使用SAML者身分執行與 Athena 的測試連線。

在本節中,您需執行下列任務:

  • 準備測試用戶端 — 下載 Athena JDBC 驅動程式、安裝 SQL Workbench,然後將驅動程式新增至工作台。本教程使用SQL工作台通過 Okta 身份驗證訪問 Athena,並驗證 Lake Formation 權限。

  • 在SQL工作台中:

    • 為 Athena Okta 使用者建立連線。

    • 以 Athena Okta 使用者身分執行測試查詢。

    • 為業務分析師使用者建立並測試連線。

  • 在 Okta 主控台中,將業務分析師使用者新增至開發人員群組。

  • 在 Lake Formation 主控台中,設定開發人員群組的資料表許可。

  • 在 SQL Workbench 中,以商務分析師使用者身分執行測試查詢,並驗證權限變更對結果的影響。

若要準備測試用戶端
  1. 下載並從中解壓縮 Lake Formation 兼容的 Athena JDBC 驅動程序(2.0.14 或更高版本)。Connect 到 Amazon Athena JDBC

  2. 下載並安裝免費的工作台 SQL/J SQL 查詢工具,該工具可在修改後的 Apache 2.0 許可證下使用。

  3. 在 SQL Workbench 中,選擇 [檔案],然後選擇 [管理驅動程式]。

    選擇 Manage Drivers (管理驅動程式)。
  4. Manage Drivers (管理驅動程式) 對話方塊中,執行以下步驟:

    1. 選擇新驅動程式圖示。

    2. 對於 Name (名稱),輸入 Athena

    3. 對於圖書館,瀏覽並選擇您剛剛下載的 Simba Athena JDBC .jar 文件。

    4. 選擇確定

      將 Athena JDBC 驅動程式新增至SQL工作台。

您現在可以開始建立並測試 Athena Okta 使用者的連線。

若要為 Okta 使用者建立連線
  1. 依序選擇 File (檔案)、Connect window (連接視窗)。

    選擇 Connect window (連接視窗)。
  2. Connection profile (連線設定檔) 對話方塊中,輸入下列資訊來建立連線:

    • 在名稱方塊中,輸入 Athena_Okta_User_Connection

    • 對於驅動程序,選擇 Simba Athena JDBC 驅動程序。

    • 對於 URL,請執行下列其中一個動作:

      • 若要使用連線URL,請輸入單行連接字串。以下範例新增了換行以方便閱讀。

        jdbc:awsathena://AwsRegion=region-id; S3OutputLocation=s3://amzn-s3-demo-bucket/athena_results; AwsCredentialsProviderClass=com.simba.athena.iamsupport.plugin.OktaCredentialsProvider; user=athena-okta-user@anycompany.com; password=password; idp_host=okta-idp-domain; App_ID=okta-app-id; SSL_Insecure=true; LakeFormationEnabled=true;
      • 若要使用 AWS 以設定檔為基礎URL,請執行下列步驟:

        1. 配置 AWS 具有一個配置文件 AWS 憑據文件,如下面的例子。

          [athena_lf_dev] plugin_name=com.simba.athena.iamsupport.plugin.OktaCredentialsProvider idp_host=okta-idp-domain app_id=okta-app-id uid=athena-okta-user@anycompany.com pwd=password
        2. 對於 URL,輸入單行連接字串,如下列範例所示。該範例新增了換行以方便閱讀。

          jdbc:awsathena://AwsRegion=region-id; S3OutputLocation=s3://amzn-s3-demo-bucket/athena_results; profile=athena_lf_dev; SSL_Insecure=true; LakeFormationEnabled=true;

      請注意,這些範例是連線至 Athena URL 所需的基本說明。如需中支援的完整參數清單URL,請參閱JDBC文件

    下圖顯示使用連線的 SQL Workbench 連線設定檔URL。

    SQL工作台中的連線設定檔。

現在您已經為 Okta 使用者建立了連線,您可以擷取一些資料來進行測試。

若要測試 Okta 使用者的連線
  1. 選擇 Test (測試),然後確認連線成功。

  2. 從 SQL「工作台陳述式」視窗中,執行下列SQLDESCRIBE命令。確認已顯示所有資料欄。

    DESCRIBE "tripdb"."nyctaxi"
    已顯示所有資料欄。
  3. 從 SQL「工作台陳述式」視窗中,執行下列SQLSELECT命令。確認已顯示所有資料欄。

    SELECT * FROM tripdb.nyctaxi LIMIT 5
    確認已顯示所有資料欄。

接下來,您確認身為lf-business-analyst群組的成員,只能存取您先前在 Lake Formation 中指定之表格的前三欄。athena-ba-user

若要驗證存取權 athena-ba-user
  1. 在 SQL Workbench 的連線設定檔對話方塊中,建立另一個連線設定檔。

    • 對於連線設定檔名稱,輸入 Athena_Okta_Group_Connection

    • 對於驅動程序,請選擇 Simba Athena JDBC 驅動程序。

    • 對於 URL,請執行下列其中一個動作:

      • 若要使用連線URL,請輸入單行連接字串。以下範例新增了換行以方便閱讀。

        jdbc:awsathena://AwsRegion=region-id; S3OutputLocation=s3://amzn-s3-demo-bucket/athena_results; AwsCredentialsProviderClass=com.simba.athena.iamsupport.plugin.OktaCredentialsProvider; user=athena-ba-user@anycompany.com; password=password; idp_host=okta-idp-domain; App_ID=okta-application-id; SSL_Insecure=true; LakeFormationEnabled=true;
      • 若要使用 AWS 以設定檔為基礎URL,請執行下列步驟:

        1. 配置 AWS 具有憑據文件的配置文件,如以下示例所示。

          [athena_lf_ba] plugin_name=com.simba.athena.iamsupport.plugin.OktaCredentialsProvider idp_host=okta-idp-domain app_id=okta-application-id uid=athena-ba-user@anycompany.com pwd=password
        2. 對於 URL,輸入如下所示的單行連接字串。該範例新增了換行以方便閱讀。

          jdbc:awsathena://AwsRegion=region-id; S3OutputLocation=s3://amzn-s3-demo-bucket/athena_results; profile=athena_lf_ba; SSL_Insecure=true; LakeFormationEnabled=true;
  2. 選擇 Test (測試) 以確認連線是否成功。

  3. 在「SQL陳述式」視窗中,執行DESCRIBE與之前執行的相同SELECTSQL命令,並檢查結果。

    由於athena-ba-userlf-business-analyst群組的成員,因此只會傳回您在 Lake Formation 主控台中指定的前三個資料行。

    只會傳回前三個資料欄。
    來自前三個資料欄的資料。

接下來,您需返回 Okta 主控台,將 athena-ba-user 新增至 lf-developer Okta 群組。

要添加到 LF-開 athena-ba-user 發人員組
  1. 以指派的 Okta 網域的管理使用者身分登入 Okta 主控台。

  2. 選擇 Directory (目錄),然後選擇 Groups (群組)。

  3. 在 Groups (群組) 頁面上,選擇 lf-developer 群組。

    選擇 lf-developer 群組。
  4. 選擇 Manage People (管理人員)。

  5. 不是成員列表中,選擇athena-ba-user將其添加到 lf-developer 組。

  6. 選擇 Save (儲存)。

現在請返回 Lake Formation 主控台來設定 lf-developer 群組的資料表許可。

若要設定資料表權限 lf-developer-group
  1. 以資料湖管理員身分登入 Lake Formation 主控台。

  2. 在導覽窗格中,選擇 Tables (資料表)。

  3. 選取 nyctaxi 資料表。

  4. 依序選擇 Actions (動作) 和 Grant (授予)。

  5. Grant Permissions (授予許可) 對話方塊中,輸入下列資訊:

    • 對於SAML和 Amazon QuickSight 使用者和群組,請以下列格式輸入 Okta SAML lf-開發人員群ARN組:

    • 對於 Columns (資料欄)、Choose filter type (選擇篩選條件類型),選擇 Include columns (包含資料欄)。

    • 選擇 trip_type 資料欄。

    • 針對 [資料表] 權限,選擇SELECT

  6. 選擇 Grant (授予)。

現在,您可以使用SQL工作台來驗證 LF-開發人員組的權限更改。這種變化應該反映在可用的數據中 athena-ba-user,誰現在是 lf-developer 組的成員。

若要驗證的權限變更 athena-ba-user
  1. 關閉工SQL作台程式,然後重新開啟它。

  2. Connect 到的設定檔athena-ba-user

  3. 從「述式」視窗中,發出與先前執行的相同SQL陳述式:

    這一次將會顯示 trip_type 資料欄。

    第四個資料欄可用於查詢。

    因為現在athena-ba-userlf-developerlf-business-analyst群組的成員,因此這些群組的 Lake Formation 權限組合會決定傳回的資料行。

    資料結果中的第四個資料欄。

結論

在本教學課程中,您設定了 Athena 整合 AWS Lake Formation 使用 Okta 作為SAML提供者。您已使用 Lake Formation 並IAM控制資料湖中SAML使用者可用的資源 AWS Glue 資料目錄。

如需相關資訊,請參閱下列資源。