2026-01
将您的劳动力身份带入 Amazon EMR Studio 和 Athena 大数据博客
在 Amazon EMR Studio 和 Athena 中使用您的工作群体身份
作者:Manjit Chakraborty 和 Neeraj Roy 日期:2024年3月5日
关键要点
用户身份管理:通过 AWS IAM 身份中心,可以更有效地管理用户访问和审核,简化多应用程序的数据访问控制。与 Okta 集成:IAM 身份中心支持 Okta 等身份提供商的统一认证,简化了用户登录和权限分配。数据分析环境:使用 Amazon EMR Studio 和 Amazon Athena,不需额外登录即可直接运行查询,提升了数据工程和数据科学的效率。详细权限控制:可以基于用户角色和属性在 Athena 和 AWS Lake Formation 中设置细粒度的访问控制,确保安全合规。现代企业在管理数据访问工作流中,往往面临无法有效实施用户级别的访问控制与审计的难题。当一个应用程序代表用户访问另一个应用程序中的数据时,实施基于用户身份的最小权限访问控制成为一大挑战。这迫使您要么为所有用户提供广泛的访问权限,无需审计;要么尝试实施复杂的自定义解决方案来映射用户角色。
现在,通过使用 AWS IAM 身份中心,您可以将用户身份传播到一系列 AWS 服务,从而减少构建和维护复杂自定义系统的需要。IAM 身份中心还提供了一个用户和组的集中视图,供互联应用程序用于授权和审计。
IAM 身份中心使得使用如 Okta 等身份提供商集中管理用户对 AWS 帐户和应用程序的访问成为可能。用户只需使用现有的公司凭据一次登录,即可无缝访问下游支持身份传播的 AWS 服务。通过 IAM 身份中心,Okta 用户身份和组可以使用 SCIM 20 自动同步,以确保在 AWS 中的信息准确。
Amazon EMR Studio是一个统一的数据分析环境,在这里可以开发数据工程和数据科学应用。从 EMR Studio 可以直接开发和运行 Amazon Athena 的交互式查询。Athena 用户可以通过启用 IAM 身份中心的联合访问,无需登录 AWS 管理控制台,来访问 EMR Studio。这消除了在身份提供商、EMR Studio 和 Athena 之间维护不同身份和角色映射的复杂性。
您可以基于来自 Okta 的用户属性管理 Athena 工作组,从而控制查询访问和费用。同时,AWS Lake Formation 也可以利用 Okta 身份实施细粒度的访问控制。
IAM 身份中心和 Okta 单点登录 (SSO) 的集成简化了对 EMR Studio 和 Athena 的访问,提供了集中认证。用户可以使用工作群体凭据进行熟悉的登录体验,以安全地在 Athena 中运行查询。对于 Athena 工作组和 Lake Formation 权限的访问策略为基于 Okta 用户资料的治理提供了支持。

本文将介绍如何通过 IAM 身份中心与 Okta 的集成启用对 EMR Studio 的单点登录,展示如何将 Okta 身份传播到 Athena 和 Lake Formation,以提供对查询和数据的细粒度访问控制。该解决方案通过使用工作群体凭据,实现了对分析工具的简化访问及集中认证。它利用了 AWS IAM 身份中心、Amazon EMR Studio、Amazon Athena 和 AWS Lake Formation。
解决方案概述
IAM 身份中心允许用户在无需管理员手动配置 AWS 身份与访问管理 (IAM) 角色和权限的情况下连接到 EMR Studio。它可以将 IAM 身份中心的组映射到现有的公司身份角色和组。管理员可以分配权限给角色和组,并将用户分配给它们,从而实现对用户访问的细粒度控制。IAM 身份中心提供了 AWS 中所有用户的中央存储库。您可以直接在 IAM 身份中心中创建用户和组,也可以从 Okta、Ping Identity 或 Azure AD 等提供者连接现有用户和组。它通过您选择的身份源处理身份验证,并维护一个用户和组目录以供 EMR Studio 接入。已知的用户身份和记录的数据访问有助于通过 AWS CloudTrail 进行合规性审计。
解决方案架构图
EMR Studio 工作流概述
最终用户通过 IAM 身份中心管理员提供的 AWS 访问门户 URL 启动 EMR Studio。URL 会将最终用户重定向到工作群体 IdP Okta,用户在此输入工作群体身份凭据。经过身份验证成功后,用户将作为联合用户登录 AWS 控制台。用户打开 EMR Studio,并通过 EMR Studio 中的链接访问 Athena 查询编辑器。用户根据角色选择正确的工作组以运行 Athena 查询。查询结果将以用户身份为前缀存储在不同的 Amazon S3 位置。实施解决方案的步骤
将 Okta 与 IAM 身份中心集成,以同步用户和组。将 IAM 身份中心与 EMR Studio 集成。将 IAM 身份中心中的用户或组分配给 EMR Studio。设置 IAM 身份中心中的 Lake Formation。基于传播的公司身份使用 Lake Formation 配置细粒度基于角色的授权。在 Athena 中设置工作组以管理访问权限。设置 Amazon S3 访问授予,以实现对 Amazon S3 资源如桶、前缀或对象的细粒度访问。通过 IAM 身份中心访问 EMR Studio。在 EMR Studio 中的 Athena SQL 编辑器中运行查询。审查工作群体身份的端到端审计跟踪。前提条件
要跟随本文,您需要准备以下内容:
一个 AWS 账户 如果没有,可以 在这里注册。一个 具有有效订阅的 Okta 账户 需要管理员角色以在 Okta 上设置应用程序。如果您是 Okta 新手,可以注册 免费试用 或 开发者账户。有关如何将 Okta 与 IAM 身份中心配置的说明,请参考 使用 Okta 和 IAM 身份中心配置 SAML 和 SCIM。
将 Okta 与 IAM 身份中心集成以同步用户和组
成功将 Okta 中的用户或组同步到 IAM 身份中心后,您可以在 IAM 身份中心控制台上查看它们,如下图所示。本帖中,我们创建并同步了两组用户:
数据工程师数据科学家接下来,在 IAM 身份中心创建一个受信任的令牌颁发者:
在 IAM 身份中心控制台中,选择导航窗格中的 设置。选择 创建受信任的令牌颁发者。在 颁发者 URL 中输入受信任的令牌颁发者的 URL。在 受信任的令牌颁发者名称 中输入 Okta。在 映射属性 中,将 IdP 属性 Email 映射到 IAM 身份中心属性 Email。选择 创建受信任的令牌颁发者。以下截图显示了在 IAM 身份中心控制台上的新受信任的令牌颁发者。
将 IAM 身份中心与 EMR Studio 集成
开始在 EMR Studio 中创建一个启用受信任身份传播的应用程序。
EMR Studio 管理员必须执行步骤以将 EMR Studio 配置为支持 IAM 身份中心的应用程序。这使得 EMR Studio 能够自动发现和连接到 IAM 身份中心,以接收登录和用户目录服务。
启用 EMR Studio 作为 IAM 身份中心管理的应用程序的目的是让您能够从 IAM 身份中心内部或与之集成的第三方 IdP在这种情况下是 Okta控制用户和组的权限。当用户登录 EMR Studio例如 dataengineer 或 datascientist时,它会检查他们在 IAM 身份中心的组,这些组会映射到 Lake Formation 中的角色和权利。这样,一个组就可以映射到一个 Lake Formation 数据库角色,允许对一组表或列进行读取访问。
以下步骤展示了如何将 EMR Studio 创建为一个与 IAM 身份中心集成的 AWS 管理应用程序,然后我们看到 Lake Formation 和 Athena 等下游应用程序是如何使用现有的公司凭证传播这些角色和权利的。
在 Amazon EMR 控制台中,导航至 EMR Studio。选择 创建工作室。在 设置 选项中,选择 自定义。在 工作室名称 处,输入名称。在 工作区存储的 S3 位置 中,选择 选择现有位置 并输入 Amazon S3 位置。配置 EMR Studio 权限详细信息。请注意,当您选择 查看权限详细信息 下的 服务角色 时,将会弹出新窗口。您需要创建一个与弹出窗口中显示的相同策略的 IAM 角色。您可以将其用于 服务角色 和 IAM 角色。
在 创建工作室 页面,选择 认证,选择 AWS IAM 身份中心 。在 用户角色 中,选择你的用户角色。在 受信任的身份传播 下,选择 启用受信任的身份传播。在 应用访问 中,选择 仅限已分配用户和组。在 VPC 中,输入您的 VPC。在 子网 中,输入您的子网。在 安全和访问 中,选择 默认安全组。选择 创建工作室。此时,应在 Amazon EMR 控制台上看到启用了 IAM 身份中心的 EMR Studio。
当 EMR Studio 管理员创建并保存配置时,EMR Studio 实例会作为 IAM 身份中心支持的应用程序出现在 IAM 身份中心控制台上。
从 IAM 身份中心将用户或组分配到 EMR Studio
在与 IAM 同步后,您可以从 IAM 身份中心目录将用户和组分配给 EMR Studio 应用程序。EMR Studio 管理员决定将哪些 IAM 身份中心用户或组纳入应用程序。例如,如果您在 IAM 身份中心中有 10 个组,但不希望所有组都访问该实例的 EMR Studio,可以选择包含哪些组。
以下步骤将组分配给 EMR Studio 启用的 IAM 身份中心应用程序:
在 EMR Studio 控制台中,导航到新的 EMR Studio 实例。在 已分配组 选项卡中,选择 分配组。选择您希望包含在应用程序中的 IAM 身份中心组。例如,您可以选择 DataScientist 和 DataEngineer 组。选择 完成。这允许 EMR Studio 管理员选择特定的 IAM 身份中心组以访问这个与 IAM 身份中心集成的特定实例。只选定的组将被同步并获得访问权限,而不是 IAM 身份中心目录中的所有组。
设置与 IAM 身份中心的 Lake Formation
要将 Lake Formation 与 IAM 身份中心集成,确保您已将 Okta 配置为 IAM 身份中心的 IdP,并确认来自 Okta 的用户和组现在在 IAM 身份中心中可用。然后完成以下步骤:
在 Lake Formation 控制台中,在导航窗格中选择 IAM 身份中心集成 下的 管理。您将看到消息 “IAM 身份中心已启用” 以及 IAM 身份中心应用程序的 ARN。
选择 创建。几分钟后,您将看到一条消息,指示 Lake Formation 已成功与您的集中 IAM 身份集成。具体来说,消息会声明“成功创建身份中心与应用程序 ARN 的集成”,这表明 Lake Formation 和在 Okta 中管理的身份之间的集成已经完成。
使用 Lake Formation 在传播的公司身份上配置细粒度基于角色的授权
现在我们将在 Lake Formation 中设置细粒度的授权,以便对数据访问进行控制。本文总结了在 Lake Formation 控制台上使用现有的公司身份提供相关控制和治理的步骤,以便稍后通过 Athena 查询编辑器对数据进行查询。有关在 Lake Formation 中设置数据库和表的详细信息,请参阅 开始使用 AWS Lake Formation
黑豹机场本帖将不详细讨论 Lake Formation 的全部内容,而是专注于在 Lake Formation 中引入的新功能基于与 IAM 身份中心同步的现有公司身份设置权限的能力。
这种集成使 Lake Formation 能够使用您组织的 IdP 和访问管理策略来控制对数据湖的权限。与其为 Lake Formation 特定地从头定义权限,您现在可以依靠现有的用户、组和访问控制来确定谁可以访问数据目录和底层数据源。总体而言,这种与 IAM 身份中心的新集成简化了使用您的公司身份管理数据湖工作负载的权限。这减少了在多个系统中保持权限对齐的管理开销。随着 AWS 持续增强 Lake Formation,此类功能将进一步提升其作为全面数据湖管理环境的可行性。
在本文中,我们创建了一个名为 zipcodedbtip 的数据库,并授予用户组 DataEngineer 对该数据库底层表的查询完全访问权限。请完成以下步骤:
在 Lake Formation 控制台中,选择 授予数据湖权限。在 主体 中,选择 IAM 身份中心。对于 用户和组,选择 DataEngineer。对于 LF标签