教程:使用 Lake Formation 成和 JDBC 配置 Okta 用户对 Athena 的联合访问 - Amazon Athena
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

教程:使用 Lake Formation 成和 JDBC 配置 Okta 用户对 Athena 的联合访问

本教程介绍如何配置 Okta、Amazon Lake Formation、Amazon Identity and Access Management权限和 Athena JDBC 驱动程序,以启用基于 SAML 的 Athena 联合使用。Lake Formation 成为基于 SAML 的用户对 Athena 中可用的数据提供细粒度访问控制。若要设置此配置,本教程使用 Okta 开发人员控制台AmazonIAM 和 Lake Formation 控制台以及 SQL 工作台 /J 工具。

Prerequisites

本教程假定您已执行以下操作:

第 1 步:创建一个 Okta 帐户

本教程使用 Okta 作为基于 SAML 的身份提供商。如果您还没有 Okta 账户,您可以创建免费账户。需要 Okta 帐户,以便您可以创建 Okta 应用程序进行 SAML 身份验证。

创建 Okta 帐户

  1. 要使用 Okta,请导航到Okta 开发者注册页面并创建一个免费的 Okta 试用帐户。开发人员版服务是免费的,不超过 Okta 指定的限制,网址为开发商 .okta.com/定价

  2. 当您收到激活电子邮件时,请激活您的帐户。

    Okta 域名将被分配给您。保存域名以供参考。稍后,您可以使用域名 (<okta-idp-domain>)在连接到 Athena 的 JDBC 字符串中。

第 2 步:将用户和组添加到 Okta

在此步骤中,您使用 Okta 控制台执行以下任务:

  • 创建两个 Okta 用户。

  • 创建两个 Okta 组。

  • 向每个 Okta 组添加一个 Okta 用户。

向 Okta 添加用户

  1. 激活 Okta 帐户后,以管理用户身份登录到指定的 Okta 域。

  2. 如果您位于开发者控制台,请使用页面左上角的选项选择经典用户界面

    
                        选择经典 UI。
  3. 经典用户界面中,选择目录,然后选择人员

  4. 选择添加人员添加将通过 JDBC 驱动程序访问 Athena 的新用户。

    
                        选择添加人员。
  5. 添加人员对话框中,输入所需信息。

    • 输入值。本教程使用雅典-奥克塔用户

    • 输入用户名主要电子邮件。本教程使用athena-okta-user@anycompany.com

    • 适用于密码中,选择由管理员设置,然后提供密码。本教程清除用户必须在首次登录时更改密码;您的安全要求可能会有所不同。

    
                        将用户添加到 Okta 应用程序。
  6. 选择保存并添加另一个

  7. 输入其他用户的信息。此示例添加了业务分析师用户athena-ba-user@anycompany.com

    
                        将用户添加到 Okta 应用程序。
  8. 选择 Save

在以下过程中,您可以通过 Athena JDBC 驱动程序通过添加 “业务分析师” 组和 “开发人员” 组来提供两个 Okta 组的访问权限。

添加 Okta 组

  1. 从 Okta 经典 UI 中,选择目录,然后选择Groups

  2. 在存储库的Groups页面上,选择添加组

    
                        选择 Add Group (添加组)。
  3. 添加组对话框中,输入所需信息。

    • 适用于名称输入业务分析师

    • 适用于组描述输入业务分析师

    
                        添加 Okta 组。
  4. 选择 Add Group (添加组)。

  5. 在存储库的Groups页面上,选择添加组。这一次,您将输入开发人员组的信息。

  6. 输入所需信息。

    • 适用于名称输入LF 开发人员

    • 适用于组描述输入开发人员

    
                        添加一个 “开发者” Okta 组。
  7. 选择 Add Group (添加组)。

现在您已有两个用户和两个组,您已准备就绪,可以向每个组添加一个用户。

将用户添加到组

  1. 在存储库的Groups页上,选择LF 开发人员组。您将以开发人员身份创建的 Okta 用户之一添加到此组中。

    
                        选择LF 开发人员。
  2. 选择管理人员

    
                        选择管理人员。
  3. 非成员列表中,选择雅典-奥克塔用户

    
                        选择要添加到成员列表的用户。

    用户的条目将从非成员列表添加到成员列表中的右侧。

    
                        Okta 用户添加到 Okta 组。
  4. 选择 Save

  5. 选择返回组,或选择目录,然后选择Groups

  6. 选择业务分析师组中)。

  7. 选择管理人员

  8. 添加雅典娜-巴用户添加到成员列表业务分析师组,然后选择Save

  9. 选择返回组,或选择目录Groups

    这些区域有:Groups页面现在显示每个组都有一个 Okta 用户。

    
                        Okta 控制台中的每个 Okta 组都添加了一个用户。

第 3 步:为 SAML 身份验证设置 Okta 应用程序

在该步骤中,您使用 Okta 开发人员控制台执行以下任务:

  • 添加一个 SAML 应用程序,以便与Amazon。

  • 将应用程序分配给 Okta 用户。

  • 将应用程序分配给 Okta 组。

  • 下载生成的身份提供程序元数据,以便日后与Amazon。

添加用于 SAML 身份验证的应用程序

  1. 从菜单中,选择应用程序,以便您可以将 Okta 应用程序配置为 Athena 的 SAML 身份验证。

  2. 单击添加应用程序

    
                        单击添加应用程序。
  3. 在搜索框中,搜索Redshift

  4. 选择Amazon Web Services Redshift。本教程中的 Okta 应用程序使用 Amazon Redshift 的现有 SAML 集成。

    
                        选择Amazon Web Services Redshift。
  5. 在存储库的Amazon Web Services Redshift页面上,选择Add为 Amazon Redshift 创建基于 SAML 的应用程序。

    
                        选择Add创建基于 SAML 的应用程序。
  6. 适用于应用程序标签输入Athena-LakeFormation-Okta,然后选择Done

    
                        输入 Okta 应用程序的名称。

现在您已创建 Okta 应用程序,您可以将其分配给您创建的用户和组。

将应用程序分配给用户和组

  1. 在应用程序上分配选项卡上,选择Assign分配给人员

    
                        选择Assign、分配给人员。
  2. 将雅典娜湖形-Okta 分配给人对话框中,找到雅典-奥克塔用户之前创建的用户。

  3. 选择Assign将用户分配给应用程序。

    
                        选择 Assign (分配)。
  4. 选择保存并返回

    
                        选择保存并返回。
  5. 选择完成

  6. 在存储库的分配选项卡上的雅典娜湖形-奥克塔应用程序,选择Assign分配给组

    
                        选择分配给组。
  7. 适用于业务分析师中,选择Assign以指定雅典娜湖形-奥克塔应用程序上传到业务分析师组,然后选择Done

    
                        将 Okta 应用程序分配给 Okta 用户组。

    此组将显示在应用程序的组列表中。

    
                        Okta 应用程序分配给 Okta 组。

现在您已准备就绪,可以下载身份提供商应用程序元数据,以用于Amazon。

下载应用程序元数据

  1. 选择 Okta 应用程序登录选项卡,然后右键单击身份提供商元数据

    
                        右键单击身份提供商元数据。
  2. 选择将链接另存为将身份提供程序元数据(XML 格式)保存到文件中。给它一个你可以识别的名称(例如,Athena-LakeFormation-idp-metadata.xml)。

    
                        保存身份提供程序元数据。

第 4 步:创建AmazonSAML 身份提供商和 Lake Formation 访问 IAM 角色

在此步骤中,您将使用Amazon用于执行以下任务的 Identity and Access Management (IAM) 控制台:

  • 创建身份提供程序Amazon。

  • 创建 IAM 角色以用于 Lake Conmation 访问。

  • 将卓越亚马逊 Access Management 策略添加到该角色。

  • 添加 Lake Formation 成和Amazon Glue添加到角色。

  • 将 Athena 查询结果的策略添加到角色。

创建AmazonSAML 身份提供商

  1. 登录到Amazon Web Services 账户 控制台作为Amazon Web Services 账户管理员并导航到IAM控制台 (https://console.aws.amazon.com/iam/)。

  2. 在导航窗格中,选择身份提供商,然后单击创建提供程序

    
                        在 IAM 控制台中创建身份提供商。
  3. 在存储库的配置提供程序屏幕上,输入以下信息:

    • 对于提供程序类型,选择 SAML。

    • 适用于提供商名称输入AthenaLakeFormationOkta

    • 适用于元数据文档中,选择您下载的身份提供程序 (IdP) 元数据 XML 文件。

    
                        配置 SAML 身份提供商。
  4. 选择 Next Step

  5. 在存储库的验证提供商信息页面上,选择Create

    
                        选择 Create (创建)。

    在 IAM 控制台中,雅典航空公司形式 Okta提供程序将显示在身份提供程序列表中。

    
                        在 IAM 控制台中创建的身份提供商。

接下来,您创建针对的 IAM 角色Amazon Lake Formation访问。您将两个内联策略添加到角色。其中一个策略提供访问 Lake Formation 成和Amazon GlueAPI。另一个策略提供了对 Amazon S3 中 Athena 和 Athena 查询结果位置的访问权限。

为 创建 IAM 角色Amazon Lake Formation访问

  1. 在 IAM 控制台导航窗格中,选择角色,然后选择创建角色

    
                        创建 IAM 角色。
  2. 在存储库的创建角色页面上,执行下列步骤:

    1. 适用于选择受信任实体的类型中,选择SAML 2.0 联合身份验证。

    2. 适用于SAML 提供商,选择雅典航空公司形式 Okta

    3. 适用于SAML 提供商中,选择选项允许编程和Amazon Web Services Management Console访问

    4. 选择 Next:。Permissions (下一步:权限)

    
                        配置 IAM 角色以使用 SAML 2.0。
  3. 在存储库的附加权限策略页面,用于筛选策略输入Athena

  4. 选择AmazonAthenaFullAccess托管策略,然后选择后续:标签

    
                        附加AmazonAthenaFullAccess托管策略添加到 IAM 角色。
  5. 在存储库的添加标签页面上,选择后续:审核

  6. 在存储库的审核页面,用于Role name (角色名称)中,输入角色的名称(例如,雅典娜湖形-奥克塔罗),然后选择创建角色

    
                        输入 IAM 角色的名称。

接下来,您可以添加允许访问 Lake Formation 状的内联策略,Amazon GlueAPI 和 Athena 查询 Amazon S3。

每当您使用 IAM 策略时,请确保遵循 IAM 最佳实践。有关更多信息,请参阅 。IAM 中的安全最佳实践中的IAM 用户指南

将内联策略添加到 Lake Formation 成和Amazon Glue

  1. 从 IAM 控制台的角色列表中,选择新创建的Athena-LakeFormation-OktaRole

  2. 在存储库的摘要页面上的Permissions (权限)选项卡上,选择添加内联策略

  3. 创建策略页面上,选择 JSON

  4. 添加一个内联策略,如下所示,该策略可提供访问 Lake Formation 成和Amazon GlueAPI。

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "lakeformation:GetMetadataAccess", "glue:GetUnfiltered*", "glue:GetTable", "glue:GetTables", "glue:GetDatabase", "glue:GetDatabases", "glue:CreateDatabase", "glue:GetUserDefinedFunction", "glue:GetUserDefinedFunctions" ], "Resource": "*" } }
  5. 选择查看策略

  6. 适用于名称中,输入策略的名称(例如,LakeFormationGlueInlinePolicy)。

  7. 选择 Create policy

将内联策略添加到 Athena 查询结果位置的角色

  1. 在存储库的摘要页面Athena-LakeFormation-OktaRole角色,在Permissions (权限)选项卡上,选择添加内联策略

  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. 选择查看策略

  5. 适用于名称中,输入策略的名称(例如,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. 选择雅典航空公司形式 Okta提供商。

  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 应用程序 ID。

将用户和组 Lake Formation URL 属性添加到 Okta 应用程序

  1. 登录 Okta 开发人员控制台。

  2. 选择应用程序选项卡,然后选择Athena-LakeFormation-Okta应用程序.

    
                        选择 Athena-LakeFormation-Okta 应用程序。
  3. 登录选项卡,然后选择编辑

    
                        编辑 Okta 应用程序。
  4. Expand属性(可选)

  5. INTR属性语句(可选),添加以下属性:

    • 对于 Name (名称),请输入 https://lakeformation.amazon.com/SAML/Attributes/Username

    • 适用于输入user.login

      
                                将用户 Lake Formation 成 URL 属性添加到 Okta 应用程序。
  6. INTR组属性语句(可选),添加以下属性:

    • 对于 Name (名称),请输入 https://lakeformation.amazon.com/SAML/Attributes/Groups

    • 适用于名称格式输入Basic

    • 适用于筛选条件中,选择匹配正则表达式,然后输入.*在筛选框中。

    
                        将组 Lake Formation URL 属性添加到 Okta 应用程序。
  7. 向下滚动到高级登录设置部分,您将在其中将身份提供商和 IAM 角色 ARN 添加到 Okta 应用程序。

将身份提供商和 IAM 角色的 ARN 添加到 Okta 应用程序

  1. 适用于Idp ARN 和角色 ARN,输入Amazon身份提供程序 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 和 IAM 角色 ARN。
  2. 选择 Save

接下来,您复制 Okta 应用程序 ID。您稍后将需要为连接到 Athena 的 JDBC 字符串进行此操作。

查找和复制 Okta 应用程序 ID

  1. 选择常规选项卡。

    
                        选择常规选项卡。
  2. 向下滚动到应用程序嵌入链接部分。

  3. 嵌入链接,复制并安全地保存 URL 的 Okta 应用程序 ID 部分。Okta 应用程序 ID 是amazon_aws_redshift/但在下一个正斜杠之前。例如,如果 URL 包含amazon_aws_redshift/aaa/bbb,应用程序 ID 为aaa

    
                        复制 Okta 应用程序的 ID。

第 6 步:通过授予用户和组权限Amazon Lake Formation

在此步骤中,您可以使用 Lake Formation 成控制台向 SAML 用户和组授予对表的权限。您执行以下任务:

  • 指定 Okta SAML 用户的 ARN 以及对表的关联用户权限。

  • 指定 Okta SAML 组的 ARN 以及对表的关联组权限。

  • 验证您授予的权限。

为 Okta 用户授予 Lake Formation 成中的权限

  1. 以数据湖管理员身份登录Amazon Web Services Management Console。

  2. 打开 Lake Formation 成控制台,网址为https://console.aws.amazon.com/lakeformation/

  3. 从导航窗格中,选择,然后选择您要授予权限的表。本教程使用nyctaxi表)tripdb数据库。

    
                        选择您要授予权限的表。
  4. 操作中,选择Grant

    
                        选择Grant。
  5. 授予权限对话框中,输入以下信息:

    1. INTRSAML 和 Amazon QuickSight 用户和组中,请按以下格式输入 Okta SAML 用户 ARN:

      arn:aws:iam::<account-id>:saml-provider/AthenaLakeFormationOkta:user/<athena-okta-user>@<anycompany.com>
    2. 适用于, 用于选择筛选条件类型,然后选择包括列或者排除列

    3. 使用选择一列或多列下拉列表指定要包含或排除用户的列。

    4. 适用于表权限中,选择Select。本教程仅授予SELECT权限;您的要求可能会有所不同。

      
                                将表和列级别权限授予 Okta 用户。
  6. 选择Grant

现在,您对 Okta 组执行类似的步骤。

授予 Okta 组在 Lake Formation 成中的权限

  1. 在存储库的页面 Lake Formation,请确保尼克出租车表仍处于选定状态。

  2. 操作中,选择Grant

  3. 授予权限对话框中,输入以下信息:

    1. INTRSAML 和 Amazon QuickSight 用户和组中,请按以下格式输入 Okta SAML 组 ARN:

      arn:aws:iam::<account-id>:saml-provider/AthenaLakeFormationOkta:group/lf-business-analyst
    2. 适用于选择筛选条件类型中,选择包括列

    3. 适用于选择一列或多列中,选择表的前三列。

    4. 适用于表权限下,选择要授予的特定访问权限。本教程仅授予SELECT权限;您的要求可能会有所不同。

      
                                向 Okta 组授予表权限。
  4. 选择Grant

  5. 要验证您授予的权限,请选择操作查看权限

    
                        选择查看权限以验证已授予的权限。

    这些区域有:数据权限页面nyctaxi表显示了雅典-奥克塔用户业务分析师组中)。

    
                        查看授予 Okta 用户和组的权限。

步骤 7:通过 Athena JDBC 客户端验证访问

现在,您可以使用 JDBC 客户端以 Okta SAML 用户身份执行与 Athena 的测试连接。

在本节中,您执行以下任务:

  • 准备测试客户端 — 下载 Athena JDBC 驱动程序,安装 SQL 工作台,然后将驱动程序添加到工作台。本教程使用 SQL Workbench 通过 Okta 身份验证访问 Athena,并验证 Lake Formation 成权限。

  • 在 SQL 工作台中:

    • 为 Athena Okta 用户创建连接。

    • 以 Athena Okta 用户身份运行测试查询。

    • 为业务分析师用户创建和测试连接。

  • 在 Okta 控制台中,将业务分析师用户添加到开发人员组。

  • 在 Lake Formation 成控制台中,为开发人员组配置表权限。

  • 在 SQL Workbench 中,以业务分析师用户身份运行测试查询,并验证权限更改如何影响结果。

准备测试客户端

  1. 下载并提取兼容的 Lake Formation 成 Athena JDBC 驱动程序(2.0.14 或更高版本)从将 Athena 与 JDBC 驱动程序结合使用

  2. 下载并安装免费的SQL Workbench /JSQL 查询工具,可在修改后的 Apache 2.0 许可证下使用。

  3. 在 SQL 工作台中,选择File (文件),然后选择管理驱动程序

    
                        选择 Manage Drivers。
  4. 管理驱动程序对话框中,执行以下步骤:

    1. 选择新驱动程序图标。

    2. 对于 Name (名称),请输入 Athena

    3. 适用于,浏览并选择辛巴 Athena JDBC.jar文件。

    4. 选择 OK (确定)

      
                                将 Athena JDBC 驱动程序添加到 SQL Workbench。

现在,您可以为 Athena Okta 用户创建和测试连接。

为 Okta 用户创建连接

  1. 选择File (文件)“Connect” 窗口

    
                        选择“Connect” 窗口。
  2. 连接配置文件对话框中,输入以下信息来创建连接:

    • 在名称框中,输入Athena_Okta_User_Connection

    • 适用于驱动程序下,选择辛巴 Athena JDBC 驱动程序。

    • 适用于URL,请执行以下操作之一:

      • 要使用连接 URL,请输入单行连接字符串。为便于阅读,以下示例添加换行符。

        jdbc:awsathena://AwsRegion=region-id; S3OutputLocation=s3://athena-query-results-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;
      • 使用Amazon基于配置文件的 URL,请执行以下步骤:

        1. 配置Amazon配置文件具有Amazon凭证文件,如下例所示。

          [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://athena-query-results-bucket/athena_results; profile=athena_lf_dev; SSL_Insecure=true; LakeFormationEnabled=true;

      请注意,这些示例是连接到 Athena 所需 URL 的基本表示形式。有关 URL 支持的参数的完整列表,请参阅辛巴 Athena JDBC 驱动程序安装指南。JDBC 安装指南还提供了用于以编程方式连接到 Athena 的示例 Java 代码。

    下图显示了使用连接 URL 的 SQL 工作台连接配置文件。

    
                        SQL 工作台中的连接配置文件。

现在您已为 Okta 用户建立了连接,您可以通过检索某些数据来测试它。

测试 Okta 用户的连接

  1. 选择测试,然后验证连接是否成功。

  2. 从 SQL 工作台Statement窗口中,运行以下 SQLDESCRIBE命令。验证是否显示了所有列。

    DESCRIBE "tripdb"."nyctaxi"
    
                        显示所有列。
  3. 从 SQL 工作台Statement窗口中,运行以下 SQLSELECT命令。验证是否显示了所有列。

    SELECT * FROM tripdb.nyctaxi LIMIT 5
    
                        验证是否显示了所有列。

接下来,您将验证雅典娜-巴用户,作为业务分析师组中,只能访问您之前在 Lake Formation 成中指定的表的前三列。

要验证对雅典娜-巴用户

  1. 在 SQL 工作台中,在连接配置文件对话框中,创建另一个连接配置文件。

    • 对于连接配置文件名称,输入 Athena_Okta_Group_Connection

    • 适用于驱动程序下,选择辛巴 Athena JDBC 驱动程序。

    • 适用于URL,请执行以下操作之一:

      • 要使用连接 URL,请输入单行连接字符串。为便于阅读,以下示例添加换行符。

        jdbc:awsathena://AwsRegion=region-id; S3OutputLocation=s3://athena-query-results-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;
      • 使用Amazon基于配置文件的 URL,请执行以下步骤:

        1. 配置Amazon配置文件具有类似以下示例的凭证文件。

          [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://athena-query-results-bucket/athena_results; profile=athena_lf_ba; SSL_Insecure=true; LakeFormationEnabled=true;
  2. 选择测试以确认连接是否成功。

  3. SQL 语句窗口中,运行相同的DESCRIBESELECT之前执行的 SQL 命令并检查结果。

    由于雅典娜-巴用户业务分析师组中,将仅返回您在 Lake Formation 控制台中指定的前三列。

    
                        仅返回前三列。
    
                        前三列中的数据。

接下来,您返回到 Okta 控制台以添加athena-ba-user添加到lf-developerOkta 集团

将雅典娜-巴-用户添加到 lf 开发人员组

  1. 以分配的 Okta 域的管理用户身份登录到 Okta 控制台。

  2. 切换到经典用户界面

  3. 选择目录,然后选择Groups

  4. 在组页面上,选择LF 开发人员组中)。

    
                        选择LF 开发人员组中)。
  5. 选择管理人员

  6. 非成员列表中,选择雅典娜-巴用户将其添加到LF 开发人员组

  7. 选择 Save

现在,您将返回到 Lake Formation 成控制台,以配置LF 开发人员组中)。

为 lf 开发人员组配置表权限的步骤

  1. 以数据湖管理员身份登录 Lake Formation 成控制台。

  2. 在导航窗格中,选择 Tables (表)

  3. 选择尼克出租车表。

  4. 选择操作Grant

  5. 授予权限对话框中,输入以下信息:

    • 适用于SAML 和 Amazon QuickSight 用户和组,请按以下格式输入 Okta SAML lf 开发人员组 ARN:

    • 适用于选择筛选条件类型中,选择包括列

    • 选择旅行类型column.

    • 适用于表权限中,选择选择

  6. 选择Grant

现在,您可以使用 SQL 工作台验证LF 开发人员组中)。更改应反映在可用的数据雅典娜-巴用户,他现在是LF 开发人员组中)。

验证雅典 A-BA 用户的权限更改

  1. 关闭 SQL 工作台程序,然后重新打开它。

  2. Connect 到配置文件雅典娜-巴用户

  3. Statement窗口中,发出与之前运行的相同的 SQL 语句:

    这一次,旅行类型列显示。

    
                        第四列可用于查询。

    由于雅典娜-巴用户现在是LF 开发人员业务分析师组时,这些组的 Lake Formation 权限的组合将决定返回的列。

    
                        数据结果中的第四列。

Conclusion

在本教程中,您将 Athena 与Amazon Lake Formation使用 Okta 作为 SAML 提供程序。您使用 Lake Formation 和 IAM 控制可供 SAML 用户在数据湖中使用的资源Amazon Glue数据目录。

有关相关信息,请参阅以下资源: