我们使用机器学习技术将英文博客翻译为简体中文。您可以点击导航栏中的“中文(简体)”切换到英文版本。
使用 亚马逊云科技 Glue 目录和 亚马逊云科技 Lake Formation 配置跨区域表格访问权限
当今的现代数据湖横跨多个账户、亚马逊云科技 区域和组织中的业务线。公司还拥有员工,并在多个地理区域甚至世界各地开展业务。他们的数据解决方案必须使他们能够安全地跨地区共享和访问数据,这一点很重要。
亚马逊云科技 Glue 数据目录是技术元数据的集中存储库,用于保存有关您在 亚马逊云科技 中的数据集的信息,可以使用 A
您可以将数据目录的跨区域表访问功能与 Lake Formation 的权限管理和跨账户共享功能结合使用。Lake Formation 是一项完全托管的服务,可轻松构建、保护和管理数据湖。通过使用对数据目录的跨区域访问支持以及Lake Formation提供的治理,组织可以在不花时间制作副本的情况下发现和访问跨区域的数据。一些企业在某些地区可能受到限制,无法运行计算。需要与有此类限制的企业共享其数据目录的组织现在可以创建和共享跨区域资源链接。
在这篇文章中,我们将引导你在两种场景下配置跨区域数据库和表访问权限。在第一个场景中,我们举了一个示例,客户想要使用同一个账户从区域 B 访问区域 A 中的 亚马逊云科技 Glue 数据库。在场景二中,我们演示了跨账户和跨区域访问,其中客户希望跨账户共享区域 A 中的数据库,并从收款人账户的区域 B 访问该数据库。
场景 1:相同的账户用例
在这种情况下,我们将引导您完成在同一 亚马逊云科技 账户内将数据目录数据库从一个区域共享到另一个区域所需的步骤。
举例来说,我们在
我们将此数据集共享给
美国东部 2
区域的 S3 存储桶中有一个示例数据集,并使用 AWS Glue 爬虫将该数据集抓取并编入美国东部 2 区域数据目录中的数据库。
美国西
部二区。您可以使用任何数据集进行跟进。下图说明了在同一 亚马逊云科技 账户内进行跨区域共享的架构。
先决条件
要为方案 1 设置数据目录数据库的跨区域共享,我们建议满足以下先决条件:
- 不用于生产用例的 亚马逊云科技 账户。
-
Lake Formation已经在账户中设置了Lake Formation管理员角色或类似角色,请按照本文中的说明进行操作。例如,我们正在使用名为
LF-Admin 的数据湖管理员角色。LF-Admin角色在 亚马逊云科技 Glue 爬虫角色上还拥有passR ole。要了解有关为数据湖管理员设置权限的更多信息,请参阅AWS 身份和访问管理 (IAM) 权限 iam:创建数据湖管理员 。 -
数据目录中包含几个表的示例数据库。例如,我们的示例数据库名为
salesdb_useast2,它有一组八个表,如以下屏幕截图所示。
为 us-east-2 设置权限
完成以下步骤以配置
us-east-2 区域
的权限:
-
登录 Lake Formation 控制台并选择数据库所在的区域。在我们的示例中,它是
us-east-2 区域。 -
向LF-Admin角色授予数据库 所有表的 SELECT 和 DESCRIBE 权限 salesdb_useast2。
- 您可以通过以 Athena 的数据湖管理员角色查询数据库和表来确认权限是否有效。
为 us-west-2 设置权限
完成以下步骤以配置
us-west-2 区域
的权限:
-
在 Lake Formation 控制台上选择
us-west-2区域。 -
将 LF-Admin 添加为数据湖管理员,并向 LF-Admin 授予 创建数据库 权限。
- 在导航窗格的 “ 数据目录 ” 下 ,选择 “ 数据库 ” 。
- 选择 “ 创建数据库 ” ,然后选择 “ 资源链接 ” 。
-
输入
rl_salesdb_from_useast2 作为资源链接的名称。 - 对于 共享数据库的区域 ,选择 美国东部(俄亥俄州) 。
-
对于
共享数据库
,选择
salesdb_useast2。 - 选择 “ 创建 ” 。
这会在 us-west-2 中创建 指向
us-east-2
中的数据库的数据库资源链接。
您会注意到数据库页面上 资源链接详细信息的 共享资源所有者区域 列填充为 us-east-2。
由于
LF-Admin
角色创建了资源链接
rl_salesdb_from_useast2
,因此该角色对资源链接具有隐式权限。
LF-Admin
已经有权在 us-east
-
2 区域查询该表。无需为
LF-
Admin 添加
目标 授予
权限。如果您要向其他用户或角色授予权限,则需要在资源链接
rl_salesdb_from_
useast2 上授予
描述
权限。
-
使用 Athena 中的资源链接以
LF-Admin 身份查询数据库。
在前面的步骤中,我们看到了如何在
您还可以在数据目录可用的任何其他区域中创建指向源数据库的资源链接。通过在引用数据库和表时提供额外的区域参数,您可以在 Amazon EMR 和 亚马逊云科技 Glue 中运行提取、转换和加载 (ETL) 脚本。有关更多详细信息,请参阅 getDat
us-west-2 中为 us-east-2
中的数据目录数据库创建资源链接。
此外,数据库、表和资源链接的数据目录权限以及底层 Amazon S3 数据权限可以由 IAM 策略和 S3 存储桶策略来管理,而不是 Lake Formation 权限。有关更多信息,请参阅
场景 2:跨账户用例
在这种情况下,我们将引导您完成在两个账户(生产者账户和消费者账户)之间共享数据目录数据库从一个区域到另一个区域所需的步骤。
为了展示高级用例,我们将源数据集托管在账户 A 的
然后,账户 A 中的数据湖管理员使用 Lake Formation 权限将数据库和表共享给账户 B。
us-east-2
中,并在 us-east-1 的数据目录中使用 AWS Glue 爬虫对其进行爬网。
账户 B 中的数据湖管理员接受
下图说明了生产者账户 A 和消费者账户 B 之间的跨区域共享架构。
us-east-1
中的份额, 并创建资源链接以查询 eu-west-1 中的表。
先决条件
要为场景 2 设置数据目录数据库的跨区域共享,我们建议满足以下先决条件:
- 两个不用于生产用例的 亚马逊云科技 账户
- 两个账户都有 Lake Formation 管理员角色
-
Lake Formation在两个账户中均设置了跨账户共享版本 3。有关更多详细信息,请参阅
文档 。 - 数据目录中包含几个表的示例数据库
在我们的示例中,我们将继续在场景 2 中使用相同的数据集和数据湖管理员角色
LF-Admin
。
设置账户 A 进行跨区域共享
要设置账户 A,请完成以下步骤:
-
以数据湖管理员角色登录
亚马逊云科技 管理控制台 。 -
使用有权访问 S3 存储桶的 IAM 角色在
us-east-1的 Lake Formation 中注册 S3 存储桶。有关说明,请参阅注册您 的 S3 位置 。
-
有关说明,请参阅设置并运行 AWS Glue 爬虫,将 us-east-2 S3 存储桶中的数据编目到 useast-1 中的数据目录数据库 useast2data_salesdb。亚马逊云科技 Glue 爬虫支持跨账户爬网以支持数据网格架构 。
如以下屏幕截图所示,该数据库有一组八个表。
-
向账户 B 授予 SELECT 和 DESCRIBE 以及对数据库所有表的可授予权限。
-
向 DESCRIBE 授予对数据库的可授予权限。
-
在 “
数据权限” 页面上验证授予的权限
。
- 注销账户 A
设置账户 B 进行跨区域共享
要设置账户 B,请完成以下步骤:
-
在 us-ea
st-1 的 Lake Formation 控制台上以数据湖管理员身份登录。
在我们的示例中,我们创建了数据湖管理员角色
LF-Admin
,类似于账户 A 和场景 1 中之前的管理员角色。
-
在
亚马逊云科技 资源访问管理器 (亚马逊云科技 RAM) 控制台上,查看并接受来自账户 A 的共享数据库和表对应的 亚马逊云科技 RAM 邀请。
LF-Admin
角色可以从生产者账户看到共享数据库
useast2dat
a_salesdb。
LF-Admin
可以访问数据库和表,因此不需要对共享数据库具有额外的权限。
-
您可以向来自 us-east
-1 区域的任何其他 IAM 委托人授予该共享数据库上的 DESCRIBE 权限和权限。All_Tables 上的 SELECT
-
在
eu-west-1(或任何已经设置了 Lake Formation 和 Athena 的区域)中打开 Lake Formation 控制台。 -
选择 创建数据库 并创建一个 名为rl_useast1db_crossaccount 的资源链接,指向 us-east-1 数据库 useast2data_salesdb。
您可以在 共享数据库的区域下 拉菜单中选择任何区域 ,然后从这些区域中选择数据库。
因为我们使用的是数据湖管理员角色
LF-Admin
,所以我们可以在消费者账户的数据目录中看到来自所有区域的所有数据库。权限受限的数据湖用户只能看到他们有权访问的数据库。
-
由于 LF-Admin 创建了资源链接,因此该角色有权使用资源链接 rl_useast1db_crossaccount 。对于其他 IAM 委托人,请授予数据库资源链接 rl_useast1db_crossaccount 的描述权限。 - 现在,您可以从 Athena 中查询数据库和表。
注意事项
跨区域查询涉及分析服务(例如雅典娜、亚马逊 EMR 和 亚马逊云科技 Glue ETL)传输的 Amazon S3 数据。因此,与同一区域的查询相比,跨区域查询可能会变慢,并且会产生更高的传输成本。某些分析服务(例如 亚马逊云科技 Glue 任务和 Amazon EMR)在从 Amazon S3 访问跨区域数据时可能需要访问互联网,具体取决于您的 VPC 设置。有关更多注意
结论
在这篇文章中,您看到了如何为同一个账户和两个账户中的数据库设置跨区域资源链接的示例。您还看到了如何使用跨区域资源链接在 Athena 中进行查询。您可以共享数据库中的选定表,而不是共享整个数据库。通过跨区域共享,您可以使用 “创建表” 选项为 表 创建 资源链接。
使用跨区域表格访问功能时,需要记住两个关键事项:
- 从其源区域授予对源数据库或表的权限。
- 从创建资源链接的区域授予对资源链接的权限。
也就是说,原始共享数据库或表在源区域中始终可用,资源链接在其本地区域中创建和共享。
要开始使用,请参阅
作者简介
Aarthi Srinivasan
是 亚马逊云科技 Lake Formation 的高级大数据架构师。她喜欢为 亚马逊云科技 客户和合作伙伴构建数据湖解决方案。不使用键盘时,她会探索最新的科学和技术趋势,并与家人共度时光。
*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。