

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

# 跨区域访问表
<a name="data-access-across-region"></a>

Lake Formation 支持跨 AWS 区域查询数据目录表。您可以使用 Amazon Athena、Amazon EMR 和 [ETL 访问其他区域中的数据 AWS Glue ，方法是在其他区域创建指向源数据库和表](creating-resource-links.md)的资源链接。通过跨区域表访问功能，您可以跨区域访问数据，而无需将基础数据或元数据复制到数据目录中。

例如，您可以将制作者账户中的数据库或表共享给区域 A 中的使用者账户。接受区域 A 中的资源共享邀请后，使用者账户的数据湖管理员可以创建指向区域 B 中共享资源的资源链接。使用者账户管理员可以向区域 A 中该账户中的 IAM 主体授予对共享资源的权限，并可以授予区域 B 中的资源链接权限。使用资源链接，使用者账户中的主体可以查询区域 B 中的共享数据。

 您还可以在制作者账户中托管 A 区域的 Amazon S3 数据来源，并在区域 B 的中央账户中注册数据位置。您可以在中央账户中创建数据目录资源，设置 Lake Formation 权限，并与您账户中的使用者或区域 B 中的外部账户共享数据。跨区域功能让用户可以使用资源链接从区域 C 访问这些数据目录表。

使用此功能，您可以跨区域查询 Apache Hive 元存储中的联合数据库，还可以在运行查询时将本地区域中的表与其他区域的表联接起来。

Lake Formation 通过跨区域表访问功能支持以下功能：
+ 基于 LF 标签的访问控制
+ 细粒度访问控制权限
+ 使用适当的权限对共享数据库或表执行写入操作 
+ 在账户级别以及直接与 IAM 主体跨账户共享数据

具有 `Create_Database` 和 `Create_Table` 权限的非管理用户可以创建跨区域资源链接。

**注意**  
 您可以在任何区域创建跨区域资源链接并访问数据，而无需应用 Lake Formation 权限。对于未在 Lake Formation 中注册的 Amazon S3 中的源数据，访问权限由亚马逊 S3 的 IAM 权限策略和 AWS Glue 操作决定。

有关限制，请参阅[跨区域数据访问限制](x-region-considerations.md)。

## 工作流
<a name="cross-region-workflow"></a>

下图显示了使用同一 AWS 账户和外部账户跨 AWS 区域访问数据的工作流程。

### 访问同一个 AWS 账户内共享的表格的工作流程
<a name="cross-region-workflow-same-account"></a>

 在下图中，数据与美国东部（弗吉尼亚北部）地区的同一 AWS 账户中的用户共享，用户查询欧洲（爱尔兰）地区的共享数据。

![\[Diagram showing data sharing between AWS 账户 across regions with numbered steps.\]](http://docs.aws.amazon.com/zh_cn/lake-formation/latest/dg/images/cross-region-same-account.png)


数据湖管理员执行以下活动（第 1-2 步）：

1. 数据湖管理员使用数据目录数据库和表设置 AWS 账户，并在美国东部（弗吉尼亚北部）区域的 Lake Formation 中注册一个 Amazon S3 数据位置。

   向同一账户中的主体（用户）授予对数据目录资源（图中为 Product 表）的 `Select` 权限。

1. 在欧洲地区（爱尔兰）区域中创建指向美国东部（弗吉尼亚州北部）区域中源表的资源链接。向主体授予对欧洲地区（爱尔兰）区域资源链接的 `DESCRIBE` 权限。

1. 用户从欧洲地区（爱尔兰）区域使用 Athena 查询该表。

### 访问与外部 AWS 账户共享的表格的工作流程
<a name="cross-region-workflow-x-account"></a>

在下图中，制作者账户（账户 A）托管 Amazon S3 存储桶，注册数据位置，并与美国东部（弗吉尼亚州北部）区域的使用者账户（账户 B）共享数据目录表，使用者账户（账户 B）中的用户从欧洲地区（爱尔兰）区域查询该表。

![\[Diagram showing data sharing between AWS 账户 across regions using Amazon S3 and Data Catalog.\]](http://docs.aws.amazon.com/zh_cn/lake-formation/latest/dg/images/cross-region-x-account.png)


1. 数据湖管理员使用数据目录资源和在美国东部（弗吉尼亚北部）区域的 Lake Formation 注册的 Amazon S3 数据位置来设置一个账户（创建者账户）。 AWS 

1.  制作者账户的数据湖管理员与使用者账户共享数据目录表。

1. 使用者账户的数据湖管理员接受美国东部（弗吉尼亚州北部）区域的数据共享邀请，并向来自同一区域的主体授予对共享表的 `Select` 权限。

1. 使用者账户的数据湖管理员在欧洲地区（爱尔兰）区域创建指向美国东部（弗吉尼亚州北部）区域的目标共享表的资源链接，并向用户授予对欧洲地区（爱尔兰）区域中该资源链接的 `DESCRIBE` 权限。

1.  用户从欧洲地区（爱尔兰）区域使用 Athena 查询数据。

# 设置跨区域表访问权限
<a name="setup-cross-region-access"></a>

要从其他区域访问数据，您需要先在注册 Amazon S3 数据位置的区域中设置数据目录数据库和表。您可以与您的账户中或其他账户中的主体共享数据目录数据库和表。然后，您需要创建数据湖管理员，他们可以创建指向用户查询数据的区域中目标共享数据位置的资源链接。

**从不同区域查询同一个账户内的共享数据**

在本节中，目标共享表区域是区域 A，用户从区域 B 运行查询。

1. 

**区域 A 中的账户设置（您可以在该区域中创建和共享数据）**

   数据湖管理员需要完成以下操作：

   1. 注册 Amazon S3 位置。

      有关更多信息，请参阅 [向数据湖添加 Amazon S3 位置](register-data-lake.md)。

   1.  在账户中创建数据库和表。这也可以由有权创建数据库和表的非管理用户来完成。

   1. 使用 `Grantable permissions` 向主体授予对表的数据权限。

      有关更多信息，请参阅[授予对数据目录资源的权限](granting-catalog-permissions.md)。

1. 

**在区域 B（您访问数据的位置）中设置账户**

   数据湖管理员需要完成以下操作：

   1. 在区域 B 中创建指向区域 A 中目标共享表的资源链接。在**创建表**屏幕上指定**共享表所有者区域**。  
![\[Create table interface showing options for resource link creation and shared table details.\]](http://docs.aws.amazon.com/zh_cn/lake-formation/latest/dg/images/cross-region-resource-link.png)

      有关创建指向数据库和表的资源链接的说明，请参阅[创建资源链接](creating-resource-links.md)。

   1. 向 IAM 主体授予对区域 B 中资源链接的 `Describe` 权限。

      有关授予资源链接权限的更多信息，请参阅[授予资源链接权限](granting-link-permissions.md)。

      区域 B 中的 IAM 主体可以使用 Athena 通过链接查询目标表。

**访问来自不同区域的跨账户数据**

1. 

**制作者/授予者账户设置**

   数据湖管理员需要完成以下操作：

   1. 在区域 A 中设置 producer/grantor 账户

   1.  在区域 A 中注册 Amazon S3 数据位置 

   1.  创建数据库和表。这可以由有权创建表的非管理用户完成。

   1. 使用向该 consumer/grantee 账户授予区域 A 中表的数据权限`Grantable permissions`。

      有关更多信息，请参阅 [跨外部账户 AWS 账户 或来自外部账户的 IAM 委托人共享数据目录表和数据库](cross-account-data-share-steps.md)。

1. 

**使用者/被授权者账户设置**

   数据湖管理员需要完成以下操作：

   1.  接受区域 A AWS RAM 中的资源共享邀请

   1. 在区域 B 中创建指向共享表的资源链接。用户需要在区域 B 中查询表。

   1. 向区域 A 中的 IAM 主体授予对共享表的数据权限。
**注意**  
您必须在共享表的同一区域中授予对该共享表的权限。

   1. 向主体授予对区域 B 中资源链接的权限。

      然后，区域 B 中使用者账户中的主体使用 Athena 查询区域 B 中的共享表。