13594780223 sexist@126.com

资讯中心

  • 首页
  • 资讯中心
  • 通过在 AWS IAM 身份中心、AWS Lake Formation 和 Amazon S3 访问

通过在 AWS IAM 身份中心、AWS Lake Formation 和 Amazon S3 访问


2026-01-27 14:59:07

优化企业用户的数据湖访问控制:使用 AWS IAM 身份中心、AWS Lake Formation 和 Amazon S3 存取授权进行可信身份传递

作者:Shoukat Ghouse,2024年5月29日进阶学习 Amazon Athena Amazon QuickSight Amazon S3 AWS IAM 身份中心 AWS Lake Formation

文章重点

利用 AWS IAM 身份中心的可信身份传递来简化数据湖的访问控制。整合 AWS Analytics 服务与可信身份传递,实现统一的数据访问管理。探讨如何使用 AWS Lake Formation 和 Amazon S3 存取授权进行数据治理和安全控制。

许多组织使用外部身份提供者IdP,例如 Okta 或 Microsoft Azure Active Directory 来管理企业用户身份。这些用户在 AWS 数据分析服务中运行分析查询。为了使他们能够使用 AWS 服务,外部 IdP 的身份需要映射到 AWS 身份和访问管理 (IAM) 角色中,并由数据管理员将访问策略应用到这些 IAM 角色上。

由于涉及多种服务,访问数据可能需要不同的 IAM 角色,因此,管理员需要管理多个角色的许可,这在大规模环境中会变得繁琐。为了应对这一挑战,需要一种统一的解决方案,使用企业用户身份简化数据访问管理,而不仅仅依赖 IAM 角色。

AWS IAM 身份中心 通过其 可信身份传递 功能提供了解决方案,这一功能建立在 OAuth 20 授权框架之上。通过可信身份传递,数据访问管理基于用户身份进行,可以通过跨域身份管理系统SCIM协议将其同步到 IAM 身份中心。

express加速器软件

集成应用程序交换 OAuth 令牌,这些令牌在服务之间进行传递。这一方法使管理员可以根据从外部 IdP 统合的现有用户和组成员资格直接授予访问权限,而不必依赖于 IAM 用户或角色。

在这篇文章中,我们展示了 AWS 数据分析服务如何与可信身份传递无缝集成,并展示了一个端到端数据访问流程的架构。

解决方案概述

假设一个虚构公司 OkTank,该公司有多种用户角色使用不同的 AWS 数据分析服务。用户身份在外部 IdP如 Okta中受管理。用户1是数据分析师,使用 Amazon Athena 查询编辑器查询存储在 Amazon Simple Storage Service (S3) 中的 AWS Glue 数据目录 表。用户2是数据工程师,使用 Amazon EMR Studio 笔记本 查询数据目录表,还查询尚未编目到数据目录的原始数据。用户3是业务分析师,需要使用 Amazon Redshift 查询编辑器v2 查询存储在 Redshift 表中的数据。此外,该用户还为 Redshift 表中的数据生成 Amazon QuickSight 可视化。

OkTank 希望通过集中管理多种数据源、用户身份和工具的数据访问控制来简化治理。他们还希望直接在 Okta 的企业用户或组身份上定义许可,而不是为每个用户和组创建 IAM 角色,并在 IAM 角色上管理访问。此外,为了符合审计要求,他们需要将数据访问映射到 Okta 中用户的企业身份,以增强追踪和问责能力。

为了实现这些目标,我们使用可信身份传递与上述服务,并使用 AWS Lake Formation 和 Amazon S3 存取授权 进行访问控制。我们使用 Lake Formation 中央管理对数据目录表和共享给 Redshift 的 Redshift 表的许可。在我们的场景中,我们使用 S3 存取授权来授予对 Athena 查询结果位置 的许可。此外,我们还展示如何使用 EMR 笔记本访问受 S3 存取授权管理的原始数据桶。

数据访问通过 AWS CloudTrail 进行审计,并可通过 AWS CloudTrail Lake 查询。该架构展示了 AWS 数据分析服务的多功能性和有效性,能够支持不同用例和用户角色下的高效、安全数据分析工作流程。

我们使用 Okta 作为外部 IdP,但您也可以使用其他 IdP,如 Microsoft Azure Active Directory。来自 Okta 的用户和组会同步到 IAM 身份中心。在本文中,我们有三个组,如下图所示。

用户1 需要查询存储在 Amazon S3 中的数据目录表。该 S3 位置受 Lake Formation 控制和管理。该用户通过 Athena 查询编辑器与 EMR Studio 连接到启用 IAM 身份中心的 Athena 工作组。启用 IAM 身份中心的 Athena 工作组需要通过 S3 存取授权进行安全配置,以便访问 Athena 查询结果位置。使用此功能,您还可以启用基于身份的查询结果位置的创建,这些位置由 S3 存取授权进行管理。这些基于用户身份的 S3 前缀使用户在同一 Athena 工作组中保持查询结果的隔离。以下图示说明了这一架构。

用户2 需要查询与用户1相同的数据目录表。该表受 Lake Formation 角色管理。此外,该用户还需要访问另一个 S3 桶中未编目的原始数据,这些数据由 S3 存取授权控制;在以下图中,这被称为 S3 数据位置2。

通过在 AWS IAM 身份中心、AWS Lake Formation 和 Amazon S3 访问

该用户使用 EMR Studio 笔记本在 EMR 集群上运行 Spark 查询。EMR 集群使用与 IAM 身份中心进行身份验证的安全配置,并使用 Lake Formation 进行授权。该 EMR 集群还被 启用 用于 S3 存取授权。通过这种混合访问管理,您可以使用 Lake Formation 在数据目录中为已编目数据集中央管理许可,并使用 S3 存取授权中央管理未编目到数据目录的原始数据的访问权限。这为您提供了灵活性,可以从同一笔记本中访问由任一访问控制机制管理的数据。

用户3 使用 Redshift 查询编辑器 V2 查询 Redshift 表。该用户还通过 QuickSight 访问同一表。为了演示,我们为简化而使用了一个单一用户角色,但实际上这些可能是完全不同的用户角色。为了启用与 Lake Formation 的 Redshift 表访问控制,我们使用 Lake Formation 中的数据共享。

特定用户的数据访问请求被记录到 CloudTrail 中。在本文的后面部分,我们简要讨论使用 CloudTrail Lake 查询这些数据访问事件。

在接下来的部分中,我们展示如何构建这一架构。我们使用 AWS CloudFormation 来预配置资源。AWS CloudFormation 能够通过将基础架构视为代码来建模、配置和管理 AWS 和第三方资源。我们还使用 AWS 命令行界面 (AWS CLI) 和 AWS 管理控制台 来完成一些步骤。

以下图示展示了端到端的架构。

前置条件

完成以下前置步骤:

拥有一个 AWS 帐户。如果您没有帐户,可以 创建一个。在特定 AWS 区域设置好 IAM 身份中心。在整个设置和验证步骤中确保使用设置 IAM 身份中心的相同区域。在这篇文章中,我们使用 useast1 区域。在 Okta 中设置三个不同的组和用户,并启用与 IAM 身份中心的同步。请参考 使用 Okta 和 IAM 身份中心配置 SAML 和 SCIM 了解具体步骤。

在 Okta 组推送到 IAM 身份中心后,您可以在 IAM 身份中心控制台上查看用户和组,如下屏幕截图所示。您需要在 CloudFormation 模板中传递这三个组的组 ID。

为了使用户2 可以访问 EMR 集群,您需要在 S3 存储桶中有 SSL 证书 zip 文件。您可以 下载以下示例证书 以用于本文。在生产使用案例中,您应该创建和使用自己的证书。您需要在 AWS CloudFormation 中参考存储桶名称和证书包 zip 文件。如果您不打算部署 EMR 集群,可以忽略此步骤。拥有一个管理员用户或角色来运行 CloudFormation 堆栈。该用户或角色还应是 Lake Formation 管理员,以授予许可。

部署 CloudFormation 堆栈

本文中提供的 CloudFormation 模板使您能够选择要部署的解决方案架构中的组件。在这篇文章中,我们启用了所有组件,如下屏幕截图所示。

运行提供的 CloudFormation 堆栈 以创建解决方案资源。请参考下表了解主要参数的列表。

参数组描述参数名称期望值选择要部署的组件。选择您希望部署的组件。DeployAthenaFlow是/否。如果选择否,可以忽略“Athena 配置”组中的参数。DeployEMRFlow是/否。如果选择否,可以忽略“EMR 配置”组中的参数。DeployRedshiftQEV2Flow是/否。如果选择否,可以忽略“Redshift 配置”组中的参数。CreateS3AGInstance是/否。如果您已经有 S3 存取授权实例,请选择否。否则,选择是以允许堆栈创建新的 S3 存取授权实例。 用于用户1和用户2的 S3 存取授权实例是必需的。身份中心配置IAM 身份中心参数。IDCGroup1Id对应于 IAM 身份中心的 Group1 的组 ID。IDCGroup2Id对应于 IAM 身份中心的 Group2 的组 ID。IDCGroup3Id对应于 IAM 身份中心的 Group3 的组 ID。IAMIDCInstanceArnIAM 身份中心实例 ARN。可以在 IAM 身份中心的 设置 部分获取。Redshift 配置Redshift 参数。选择 DeployRedshiftQEV2Flow 为否时可忽略。RedshiftServerlessAdminUserNameRedshift 管理员用户名。RedshiftServerlessAdminPasswordRedshift 管理员密码。RedshiftServerlessDatabase用于创建表的 Redshift 数据库。EMR 配置EMR 参数。选择参数 DeployEMRFlow 为否时可忽略。SSlCertsS3BucketName储存 SSL 证书的存储桶名称。SSlCertsZip用于使用本文中提供的示例证书的 SSL 证书文件名称 (mycertszip)。Athena 配置Athena 参数。选择参数 DeployAthenaFlow 为否时可忽略。IDCUser1Id对应于 IAM 身份中心的 User1 的用户 ID。

CloudFormation 堆栈部署了以下资源:

包含公共子网和私有子网的 VPC。如果选择 Redshift 组件,它还会创建三个附加子网。用于数据和 Athena 查询结果位置存储的 S3 存储桶。它还将一些示例数据复制到这些存储桶中。集成 IAM 身份中心的 EMR Studio。[与 IAM 身份中心集成的 Amazon EMR 安全配置](https//docsawsamazoncom/emr/latest/ManagementGuide/emridcstart
成本效益高的文档分类:使用 Amazon Titan 多模态嵌入模型 机器学习博客

成本效益高的文档分类:使用 Amazon Titan 多模态嵌入模型 机器学习博客

2026-01-27 14:15:00

使用 Amazon Titan 多模态嵌入模型的经济高效文档分类作者 Sumit Bhati David Girling George Belsian 和 Ravi Avula 日期 2024年4月11日 发布于 高级 (300)、Amazon Bedrock、Amazon Titan、生成式 AI...