

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

# 使用混合访问模式共享 Lake Formation 资源
<a name="hybrid-access-mode-cross-account-IAM"></a>

允许外部账户中的新数据目录用户使用基于 IAM 的策略访问数据目录数据库和表，而无需中断现有的 Lake Formation 跨账户共享权限。

场景描述 - 制作者账户拥有在账户级别或 IAM 主体级别与外部（使用者）账户共享的 Lake Formation 托管数据库和表。数据库的数据位置在 Lake Formation 中注册。`IAMAllowedPrincipals` 组没有对数据库及其表的 `Super` 权限。

**在不中断现有 Lake Formation 权限的情况下，通过基于 IAM 的策略向新的数据目录用户授予跨账户访问权限**

1. 

**制作者账户设置**

   1. 以拥有以下权限的角色登录 Lake Formation 控制台：`lakeformation:PutDataLakeSettings`。

   1. 前往**数据目录设置**，然后在**跨账户版本设置**中选择`Version 4`。

      如果您当前使用的是版本 1 或 2，请参阅有关更新至版本 3 的[更新跨账户数据共享版本设置](optimize-ram.md)说明。

      从版本 3 升级到 4 无需更改权限策略。

   1. 列出您已授予主体的对数据库和表的权限。有关更多信息，请参阅 [在 Lake Formation 中查看数据库和表权限](viewing-permissions.md)。

   1.  通过选择主体和资源来重新授予现有的 Lake Formation 跨账户权限。
**注意**  
在将数据位置注册更新为混合访问模式以授予跨账户权限之前，您需要为每个账户重新授予至少一个跨账户数据共享。要更新附加到 AWS RAM 资源共享的 AWS RAM 托管权限，必须执行此步骤。  
2023 年 7 月，Lake Formation 更新了用于共享数据库和表格的 AWS RAM 托管权限：  
`arn:aws:ram::aws:permission/AWSRAMLFEnabledGlueAllTablesReadWriteForDatabase`（数据库级别共享策略）
`arn:aws:ram::aws:permission/AWSRAMLFEnabledGlueTableReadWrite`（表级别共享策略） 
2023 年 7 月之前授予的跨账户权限没有这些更新的 AWS RAM 权限。  
如果您已直接向主体授予跨账户权限，则需要单独向主体重新授予这些权限。如果跳过此步骤，访问共享资源的主体可能会遇到非法组合错误。

   1. 回[https://console.aws.amazon.com/ram/家](https://console.aws.amazon.com/ram/home)。

   1.  AWS RAM 控制台中的 “**由我共享**” 选项卡显示您与外部账户或委托人共享的数据库和表名。

       确保附加到共享资源的权限具有正确的 ARN。

   1. 验证 AWS RAM 共享中的资源是否处于`Associated`状态。如果状态显示为 `Associating`，请等待，直到它们进入 `Associated` 状态。如果状态变为 `Failed`，请停下来联系 Lake Formation 服务团队。

   1. 在左侧导航栏中的**权限**下选择**混合访问模式**，然后选择**添加**。

   1.  “**添加委托人和资源**” 页面显示了有权访问的数据库、 and/or 表和委托人。您可以通过添加或删除主体和资源来进行所需的更新。

   1.  选择对要更改为混合访问模式的数据库和表拥有 Lake Formation 权限的主体。选择数据库和表。

   1.  选择**添加**以选择要在混合访问模式下强制实施 Lake Formation 权限的主体。

   1.  向虚拟组 `IAMAllowedPrincipals` 授予对您的数据库和所选表的 `Super` 权限。

   1. 将 Amazon S3 位置的 Lake Formation 注册编辑为混合访问模式。

   1. 使用 IAM 权限策略为外部（消费者）账户中的 AWS Glue 用户授予对 Amazon S3 AWS Glue 操作的权限。

1. 

**使用者账户设置**

   1. 以数据湖管理员的身份登录 Lake [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)Formation 控制台。

   1. 返回[https://console.aws.amazon.com/ram/主页](https://console.aws.amazon.com/ram/home)并接受资源共享邀请。 AWS RAM 页面中的 “**与我共享的资源**” 选项卡显示与您的账户共享的数据库和表名。

       对于 AWS RAM 共享，请确保附加的权限具有共享 AWS RAM 邀请的正确 ARN。检查 AWS RAM 共享中的资源是否处于`Associated`状态。如果状态显示为 `Associating`，请等待，直到它们进入 `Associated` 状态。如果状态变为 `Failed`，请停下来联系 Lake Formation 服务团队。

   1.  在 Lake Formation 中创建指向共享数据库 and/or 表的资源链接。

   1.  向您（使用者）账户中的 IAM 主体授予对资源链接的 `Describe` 权限和对原共享资源的 `Grant on target` 权限。

   1. 接下来，为您账户中的主体设置对共享数据库或表的 Lake Formation 权限。

      在左侧导航栏中的**权限**下选择**混合访问模式**。

   1.  在**混合访问模式**页面的下半部分选择**添加**，从制作者账户中选择主体以及与您共享的数据库或表。

   1.  使用 IAM 权限策略向账户中的 AWS Glue 用户授予对 Amazon S3 AWS Glue 操作的权限。

   1.  使用 Athena 在表格上运行单独的示例查询，测试用户的 Lake Formation AWS Glue 权限和权限

      （可选）为处于混合访问模式的主体清除 Amazon S3 的 IAM 权限策略。