本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:使用 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 工具。
必要條件
此教學課程假設您已完成下列作業:
-
已建立 Amazon Web Services 帳戶。若要建立帳戶,請造訪 Amazon Web Services 首頁
。 -
在 Amazon S3 中為 Athena 設定查詢結果位置。
-
向 Lake Formation 註冊 Amazon S3 資料儲存貯體位置
-
定義了一個數據庫和表 AWS Glue 指向您在 Amazon S3 中資料的資料型錄。
-
如果您尚未定義表格,請執行 AWS Glue 爬行者程式或使用 Athena 為您要存取的資料定義資料庫和一或多個表格。
-
本教程使用基於開放數據註冊表中可用的NYC出租車行程數據集
的表格 AWS 。 此自學課程使用資料庫名稱 tripdb
和表格名稱nyctaxi
。
-
教學步驟
步驟 1:建立 Okta 帳戶
本教學課程使用 Okta 做為SAML基礎的身分識別提供者。如果您還沒有 Okta 帳戶,您可以建立免費的帳戶。需要 Okta 帳戶,以便您可以創建 Okta 應用程序進SAML行身份驗證。
若要建立 Okta 帳戶
-
若要使用 Okta,請導覽至 Okta 開發人員註冊頁面
並建立免費的 Okta 試用帳戶。開發人員版服務免費提供,最高可達 Okta 在 developer.okta.com/pricing 指定的限制。 -
收到啟用電子郵件時,請啟用您的帳戶。
Okta 網域名稱將會指派給您。儲存網域名稱以供參考。稍後,您使用域名(
<okta-idp-domain>
)在連接到 Athena 的JDBC字符串中。
步驟 2:將使用者和群組新增至 Okta
在此步驟中,您可以使用 Okta 主控台來執行以下任務:
-
建立兩個 Okta 使用者。
-
建立兩個 Okta 群組。
-
在每個 Okta 群組中新增一個 Okta 使用者。
若要將使用者新增至 Okta
-
啟用 Okta 帳戶之後,請以管理使用者身分登入指派的 Okta 網域。
-
在左側導覽窗格中,選擇 Directory (目錄),然後選擇 People (人員)。
-
選擇新增人員以新增將透過JDBC驅動程式存取 Athena 的新使用者。
-
在 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 (使用者首次登入時必須變更密碼) 的選項;您的安全需求可能會有所不同。
-
-
選擇 Save and Add Another (儲存並新增另一個)。
-
輸入另一個使用者的資訊。此範例會新增商務分析師使用者
athena-ba-user@anycompany.com
. -
選擇 Save (儲存)。
在下列程序中,您可以透過 Athena JDBC 驅動程式新增「商業分析師」群組和「開發人員」群組,為兩個 Okta 群組提供存取權。
若要新增 Okta 群組
-
在 Okta 導覽窗格中選擇 Directory (目錄),然後選擇 Groups (群組)。
-
在 Groups (群組) 頁面上,選擇 Add Group (新增群組)。
-
在 Add Group (新增群組) 對話方塊中,輸入所需資訊。
-
在「名稱」中,輸入
lf-business-analyst
. -
在群組說明中,輸入
Business Analysts
.
-
-
選擇 Add Group (新增群組)。
-
在 Groups (群組) 頁面上,再次選擇 Add Group (新增群組)。現在輸入開發人員群組的資訊。
-
輸入所需資訊。
-
在「名稱」中,輸入
lf-developer
. -
在群組說明中,輸入
Developers
.
-
-
選擇 Add Group (新增群組)。
現在您已擁有兩個使用者和兩個群組,可以在每個群組中新增使用者。
若要將使用者新增至群組
-
在 Groups (群組) 頁面上,選擇您剛建立的 lf-developer 群組。您需將您建立為開發人員的 Okta 使用者之一新增至此群組。
-
選擇 Manage People (管理人員)。
-
從「非成員」清單中選擇athena-okta-user。
使用者的項目會從左側的 Not Members (非成員) 清單移動至右側的 Members (成員) 清單。
-
選擇 Save (儲存)。
-
選擇 Back to Group (返回群組),或選擇 Directory (目錄),接著選擇 Groups (群組)。
-
選擇lf-business-analyst群組。
-
選擇 Manage People (管理人員)。
-
新增athena-ba-user至lf-business-analyst群組的 [成員] 清單,然後選擇 [儲存]。
-
選擇 Back to Group (返回群組),或依序選擇 Directory (目錄)、Groups (群組)。
Groups (群組) 頁面現在顯示每個群組都有一個 Okta 使用者。
步驟 3:設定 Okta 應用程式以進行驗證 SAML
在此步驟中,您需使用 Okta 開發人員主控台以執行下列任務:
-
新增與搭配使用的SAML應用程式 AWS.
-
將應用程式指派給 Okta 使用者。
-
將應用程式指派給 Okta 群組。
-
下載產生的身分識別提供者中繼資料供日後使用 AWS.
若要新增應用程式以進行SAML驗證
-
在「Okta」導覽窗格中,選擇「應用程式」、「應用程式」,以便設定 Okta 應用程式,以便向 Athena 進行SAML驗證。
-
按一下 Browse App Catalog (瀏覽應用程式目錄)。
-
在搜尋方塊中,輸入
Redshift
。 -
選擇 Amazon Web Services Redshift。本教學中的 Okta 應用程式使用 Amazon Redshift 的現有SAML整合。
-
在 Amazon Web Services 紅移頁面上,選擇新增以建立適用於 Amazon Redshift 的SAML基礎應用程式。
-
在 Application (應用程式) 標籤中輸入
Athena-LakeFormation-Okta
,然後選擇 Done (完成)。
現在您已建立 Okta 應用程式,您可以將其指派給您建立的使用者和群組。
若要將應用程式指派給使用者和群組
-
在 [應用程式] 頁面上,選擇 Athena LakeFormation-Okta 應用程式。
-
在 Assignments (指派) 索引標籤上,依序選擇 Assign (指派)、Assign to People (指派給人員)。
-
在「將 Athena-LakeFormation-Okta 指派給人員」對話方塊中,找到您先前建立的athena-okta-user使用者。
-
選擇 Assign (指派) 將使用者指派給應用程式。
-
選擇 Save and Go Back (儲存並返回)。
-
選擇 Done (完成)。
-
在 Athena-LakeFormation Okta 應用程式的 [指派] 索引標籤上,選擇 [指派] > [指派給群組]。
-
對於 lf-business-analyst,選擇 [指派] 將 Athena LakeFormation-Okta 應用程式指派給lf-business-analyst群組,然後選擇 [完成]。
該群組會出現在應用程式的群組清單中。
現在,您已準備好下載身分識別提供者應用程式中繼資料,以便與 AWS.
若要下載應用程式中繼資料
-
選擇 Okta 應用程式 Sign On (登入) 索引標籤,然後以滑鼠右鍵按一下 Identity Provider metadata (身分提供者中繼資料)。
-
選擇「另存連結為」,將身分識別提供者中繼資料 (格式為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 身分提供者
-
以 Amazon Web Services 帳戶管理員身分登入 Amazon Web Services 帳戶主控台,然後導覽至IAM主控台 (https://console.aws.amazon.com/iam/
)。 -
在導覽窗格中,選擇 Identity providers (身分提供者),然後按一下 Add provider (新增供應商)。
-
在 Configure provider (設定供應商) 畫面上,輸入以下資訊:
-
針對提供者類型,選擇SAML。
-
對於 Provider name (供應商名稱),輸入
AthenaLakeFormationOkta
。 -
對於「中繼資料」文件,請使用「選擇檔案」選項來上傳您下載的身分識別提供者 (IdP) 中繼資料XML檔案。
-
-
選擇 Add provider (新增提供者)。
接下來,您建立的IAM角色 AWS Lake Formation 訪問。您可以將兩個內嵌政策新增至該角色。一個策略提供訪問 Lake Formation 的權限和 AWS Glue APIs。另一個政策可用於存取 Athena 和在 Amazon S3 中的 Athena 查詢結果位置。
若要建立IAM角色 AWS Lake Formation 存取
-
在IAM主控台瀏覽窗格中,選擇 [角色],然後選擇 [建立角色]。
-
在 Create role (建立角色) 頁面上,執行以下步驟:
-
針對 [選取信任實體的類型],選擇 [SAML2.0 同盟]。
-
對於SAML提供者,請選取AthenaLakeFormationOkta。
-
對於SAML提供者,選擇選項允許程序化和 AWS Management Console 訪問。
-
選擇 Next: Permissions (下一步:許可)。
-
-
在 Attach Permissions policies (連接許可政策) 頁面上,對於 Filter policies (篩選條件政策),輸入
Athena
。 -
選取受AmazonAthenaFullAccess管理的策略,然後選擇下一步:標籤。
-
在 Add tags (新增標籤) 頁面上,選擇 Next: Review (下一步:檢閱)。
-
在 [複查] 頁面上,對於角色名稱,輸入角色的名稱 (例如
Athena-LakeFormation-OktaRole
),然後選擇 [建立角色]。
接下來,您添加允許訪問 Lake Formation 的內嵌政策, AWS Glue APIs和 Athena 查詢結果在 Amazon S3。
每當您使用IAM原則時,請務必遵循IAM最佳做法。如需詳細資訊,請參閱《IAM使用指南》IAM中的「安全性最佳作法」。
為 Lake Formation 的角色添加內嵌政策 AWS Glue
-
從IAM主控台的角色清單中,選擇新建立的角色
Athena-LakeFormation-OktaRole
。 -
在角色的 Summary (摘要) 頁面之 Permissions (許可) 索引標籤上,選擇 Add inline policy (新增內嵌政策)。
-
在 [建立原則] 頁面上,選擇JSON。
-
新增內嵌政策,如下所示,提供對 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": "*" } }
-
選擇 Review policy (檢閱政策)。
-
對於 Name (名稱),輸入政策名稱 (例如
LakeFormationGlueInlinePolicy
)。 -
選擇 Create policy (建立政策)。
若要針對 Athena 查詢結果位置將內嵌政策新增至角色
-
在
Athena-LakeFormation-OktaRole
角色 的 Summary (摘要) 頁面之 Permissions (許可) 索引標籤上,選擇 Add inline policy (新增內嵌政策)。 -
在 [建立原則] 頁面上,選擇JSON。
-
新增內嵌政策 (如下所示),該政策允許對 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>
/*" ] } ] } -
選擇 Review policy (檢閱政策)。
-
對於 Name (名稱),輸入政策名稱 (例如
AthenaQueryResultsInlinePolicy
)。 -
選擇 Create policy (建立政策)。
接下來,您將複製 Lake Formation 存取角色和您建立ARN的SAML提供者的角色。ARN當您在教學課程的下一節中設定 Okta SAML 應用程式時,這些都是必要的。
若要複製角色ARN和SAML身分識別提供者 ARN
-
在IAM主控台中角色的 [摘要] 頁面上,選擇 [
Athena-LakeFormation-OktaRole
角色] 旁邊的 [複製到剪貼簿] 圖示ARN。具ARN有以下格式:arn:aws:iam::
<account-id>
:role/Athena-LakeFormation-OktaRole -
ARN安全地保存完整文件以供日後參考。
-
在IAM主控台瀏覽窗格中,選擇身分識別提供者。
-
選擇提AthenaLakeFormationOkta供者。
-
在 [摘要] 頁面上,選擇 [提供者] 旁邊的 [複製到剪貼簿] 圖示ARN。ARN應該如下所示:
arn:aws:iam::
<account-id>
:saml-provider/AthenaLakeFormationOkta -
ARN安全地保存完整文件以供日後參考。
步驟 5:將IAM角色和SAML身分識別提供者新增至 Okta 應用程式
在此步驟中,您需返回 Okta 開發人員主控台並執行下列任務:
-
將使用者和群組 Lake Formation URL 屬性新增至 Okta 應用程式。
-
將身分識別提ARN供者的和IAM角色ARN的新增至 Okta 應用程式。
-
複製 Okta 應用程式 ID。連線至 Athena 的JDBC設定檔中需要 Okta 應用程式識別碼。
將使用者和群組 Lake Formation URL 屬性新增至 Okta 應用程式
-
登入 Okta 開發人員主控台。
-
選擇 Applications (應用程式) 索引標籤,然後選擇
Athena-LakeFormation-Okta
應用程式。 -
選擇應用程式的 Sign On (登入) 索引標籤,然後選擇 Edit (編輯)。
-
選擇 Attributes (optional) (屬性 (選填)) 以將其展開。
-
對於 Attribute Statements (optional) (屬性陳述式 (選填)),新增下列屬性:
-
對於 Name (名稱),輸入
https://lakeformation.amazon.com/SAML/Attributes/Username
。 -
對於 Value (值),輸入
user.login
-
-
在 Group Attribute Statements (optional) (群組屬性陳述式 (選填)) 下,新增下列屬性:
-
對於 Name (名稱),輸入
https://lakeformation.amazon.com/SAML/Attributes/Groups
。 -
對於 Name format (名稱格式),輸入
Basic
-
對於 Filter (篩選條件),選擇 Matches regex (符合 regex),然後在篩選條件方塊中輸入
.*
。
-
-
向下捲動至「進階登入設定」區段,您可以在其中將身分識別提供者和IAM角色新增ARNs至 Okta 應用程式。
將身分識別提供者和IAM角色新增至 Okta 應ARNs用程式的步驟
-
針對 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 -
選擇 Save (儲存)。
接下來,複製 Okta 應用程式 ID。您稍後將需要這個連接到 Athena 的JDBC字符串。
若要尋找並複製 Okta 應用程式 ID
-
選擇 Okta 應用程式的 General (一般) 索引標籤。
-
向下捲動至 App Embed Link (應用程式內嵌連結) 區段。
-
從嵌入連結,複製並安全地儲存的 Okta 應用程式 ID 部URL分。Okta 應用程式 ID 是之URL後
amazon_aws_redshift/
但在下一個正斜線之前的一部分。例如,如果URL包含amazon_aws_redshift/aaa/bbb
,則應用程式 ID 為aaa
。
注意
無法使用嵌入的連結直接登入 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 使用者授予許可
-
以資料湖管理員身分登入 AWS Management Console.
開啟 Lake Formation 控制台的位置https://console.aws.amazon.com/lakeformation/
。 -
從導覽窗格中,選擇 Tables (資料表),然後選取您要為其授予許可的資料表。本教學課程使用來自
tripdb
資料庫的nyctaxi
資料表。 -
從 Actions (動作),選擇 Grant (授予)。
-
在 Grant permissions (授予許可) 對話方塊中,輸入下列資訊:
-
在SAML和 Amazon 使 QuickSight 用者和群組下,以下列格式輸入 Okta SAML 使用者ARN:
arn:aws:iam::
<account-id>
:saml-provider/AthenaLakeFormationOkta:user/<athena-okta-user>
@<anycompany.com>
-
對於 Columns (資料欄)、Choose filter type (選擇篩選條件類型),選擇性地選擇 Include columns (包含資料欄) 或 Exclude columns (排除資料欄)。
-
使用篩選條件下的 Choose one or more columns (選擇一或多個資料欄) 下拉式清單,以指定您要包含或排除使用者的資料欄。
-
對於 Table permissions (資料表許可),選擇 Select (選取)。本教學課程僅授予
SELECT
許可;您的需求可能會有所不同。
-
-
選擇 Grant (授予)。
現在再針對 Okta 群組執行類似的步驟。
若要在 Lake Formation 中為 Okta 群組授予許可
-
在 Lake Formation 主控台的 Tables (資料表) 頁面上,確定仍選取 nyctaxi 資料表。
-
從 Actions (動作),選擇 Grant (授予)。
-
在 Grant permissions (授予許可) 對話方塊中,輸入下列資訊:
-
在SAML和 Amazon QuickSight 使用者和群組下,以下列格式輸入 Okta SAML 群ARN組:
arn:aws:iam::
<account-id>
:saml-provider/AthenaLakeFormationOkta:group/lf-business-analyst -
對於 Columns (資料欄)、Choose filter type (選擇篩選條件類型),選擇 Include columns (包含資料欄)。
-
對於 Choose one or more columns (選擇一或多個資料欄),選擇資料表的前三個資料欄。
-
對於 Table permissions (資料表許可),選擇要授予的特定存取許可。本教學課程僅授予
SELECT
許可;您的需求可能會有所不同。
-
-
選擇 Grant (授予)。
-
若要確認您授予的許可,請選擇 Actions (動作)、View permissions (檢視許可)。
nyctaxi
表格的 [資料權限] 頁面會顯示athena-okta-user和lf-business-analyst群組的權限。
步驟 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 中,以商務分析師使用者身分執行測試查詢,並驗證權限變更對結果的影響。
若要準備測試用戶端
-
下載並從中解壓縮 Lake Formation 兼容的 Athena JDBC 驅動程序(2.0.14 或更高版本)。Connect 到 Amazon Athena JDBC
-
下載並安裝免費的工作台 SQL/J SQL 查詢工
具,該工具可在修改後的 Apache 2.0 許可證下使用。 -
在 SQL Workbench 中,選擇 [檔案],然後選擇 [管理驅動程式]。
-
在 Manage Drivers (管理驅動程式) 對話方塊中,執行以下步驟:
-
選擇新驅動程式圖示。
-
對於 Name (名稱),輸入
Athena
。 -
對於圖書館,瀏覽並選擇您剛剛下載的 Simba Athena JDBC
.jar
文件。 -
選擇確定。
-
您現在可以開始建立並測試 Athena Okta 使用者的連線。
若要為 Okta 使用者建立連線
-
依序選擇 File (檔案)、Connect window (連接視窗)。
-
在 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,請執行下列步驟:
-
配置 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
-
對於 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。
-
現在您已經為 Okta 使用者建立了連線,您可以擷取一些資料來進行測試。
若要測試 Okta 使用者的連線
-
選擇 Test (測試),然後確認連線成功。
-
從 SQL「工作台陳述式」視窗中,執行下列SQL
DESCRIBE
命令。確認已顯示所有資料欄。DESCRIBE "tripdb"."nyctaxi"
-
從 SQL「工作台陳述式」視窗中,執行下列SQL
SELECT
命令。確認已顯示所有資料欄。SELECT * FROM tripdb.nyctaxi LIMIT 5
接下來,您確認身為lf-business-analyst群組的成員,只能存取您先前在 Lake Formation 中指定之表格的前三欄。athena-ba-user
若要驗證存取權 athena-ba-user
-
在 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,請執行下列步驟:
-
配置 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
-
對於 URL,輸入如下所示的單行連接字串。該範例新增了換行以方便閱讀。
jdbc:awsathena://AwsRegion=
region-id
; S3OutputLocation=s3://amzn-s3-demo-bucket/athena_results; profile=athena_lf_ba
; SSL_Insecure=true; LakeFormationEnabled=true;
-
-
-
-
選擇 Test (測試) 以確認連線是否成功。
-
在「SQL陳述式」視窗中,執行
DESCRIBE
與之前執行的相同SELECT
SQL命令,並檢查結果。由於athena-ba-user是lf-business-analyst群組的成員,因此只會傳回您在 Lake Formation 主控台中指定的前三個資料行。
接下來,您需返回 Okta 主控台,將 athena-ba-user
新增至 lf-developer
Okta 群組。
要添加到 LF-開 athena-ba-user 發人員組
-
以指派的 Okta 網域的管理使用者身分登入 Okta 主控台。
-
選擇 Directory (目錄),然後選擇 Groups (群組)。
-
在 Groups (群組) 頁面上,選擇 lf-developer 群組。
-
選擇 Manage People (管理人員)。
-
從不是成員列表中,選擇athena-ba-user將其添加到 lf-developer 組。
-
選擇 Save (儲存)。
現在請返回 Lake Formation 主控台來設定 lf-developer 群組的資料表許可。
若要設定資料表權限 lf-developer-group
-
以資料湖管理員身分登入 Lake Formation 主控台。
-
在導覽窗格中,選擇 Tables (資料表)。
-
選取 nyctaxi 資料表。
-
依序選擇 Actions (動作) 和 Grant (授予)。
-
在 Grant Permissions (授予許可) 對話方塊中,輸入下列資訊:
-
對於SAML和 Amazon QuickSight 使用者和群組,請以下列格式輸入 Okta SAML lf-開發人員群ARN組:
-
對於 Columns (資料欄)、Choose filter type (選擇篩選條件類型),選擇 Include columns (包含資料欄)。
-
選擇 trip_type 資料欄。
-
針對 [資料表] 權限,選擇SELECT。
-
-
選擇 Grant (授予)。
現在,您可以使用SQL工作台來驗證 LF-開發人員組的權限更改。這種變化應該反映在可用的數據中 athena-ba-user,誰現在是 lf-developer 組的成員。
若要驗證的權限變更 athena-ba-user
-
關閉工SQL作台程式,然後重新開啟它。
-
Connect 到的設定檔athena-ba-user。
-
從「陳述式」視窗中,發出與先前執行的相同SQL陳述式:
這一次將會顯示 trip_type 資料欄。
因為現在athena-ba-user是 lf-developer 和lf-business-analyst群組的成員,因此這些群組的 Lake Formation 權限組合會決定傳回的資料行。
結論
在本教學課程中,您設定了 Athena 整合 AWS Lake Formation 使用 Okta 作為SAML提供者。您已使用 Lake Formation 並IAM控制資料湖中SAML使用者可用的資源 AWS Glue 資料目錄。
相關資源
如需相關資訊,請參閱下列資源。
-
授與和撤銷中的資料目錄權限 AWS Lake Formation 開發人員指南。
-
IAM使用者指南中的身分識別提供者和同盟。
-
在IAM使用者指南中建立IAMSAML身分識別提供者。
-
啟用同盟 AWS 使用視窗作用中目錄和 SAML 2.0 ADFS
AWS 安全部落格。