

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

# 管理对使用外部元存储的数据集的权限
<a name="data-sharing-hms"></a>

借助 Amazon Glue Data Catalog 元数据联合（数据目录联合），您可以将数据目录连接到存储您的 Amazon S3 数据元数据的外部元数据存储，并使用 Amazon Lake Formation安全地管理数据访问权限。您不必将元数据从外部元存储迁移到数据目录中。

数据目录提供了一个集中式元数据存储库，使管理和发现不同系统中的数据变得更加容易。当您的组织管理数据目录中的数据时，您可以使用 Amazon Lake Formation 控制对 Amazon S3 中数据集的访问权限。

**注意**  
目前，我们仅支持 Apache Hive（版本 3 及更高版本）元存储联合身份验证。

为了设置数据目录联合，我们在HiveMetastore中提供了一个名为 [GlueDataCatalogFederation-](https://console.amazonaws.cn/lambda/home#/create/app?applicationId=arn:aws:serverlessrepo:us-east-1:766175011753:applications/GlueDataCatalogFederation-HiveMetastore) 的 Amazon Serverless Application Model (Amazon SAM) 应用程序 Amazon Serverless Application Repository。

该参考实现 GitHub 作为开源项目在 Federation [-Hive Meta](https://github.com/awslabs/aws-glue-data-catalog-federation) store 上提供。Amazon Glue Data Catalog 

该 Amazon SAM 应用程序创建并部署将数据目录连接到 Hive 元数据仓所需的以下资源：
+ ** Amazon Lambda 函数** — 托管联合身份验证服务的实现，该服务在数据目录和 Hive 元数据仓之间进行通信。 Amazon Glue 调用此 Lambda 函数从 Hive 元数据存储中检索元数据对象。
+ **Amazon API Gateway** – Hive 元存储的连接端点，该存储充当将所有调用路由到 Lambda 函数的代理。
+ **IAM 角色** – 具有在数据目录和 Hive 元存储之间创建连接所需权限的角色。
+ **Amazon Glue connec** tion — Amazon API Gateway 一种存储 Amazon API Gateway 终端节点和用于调用它的 IAM 角色的 Amazon Glue 连接类型。

当您查询表时，该 Amazon Glue 服务会对 Hive 元数据仓进行运行时调用并获取元数据。Lambda 函数充当 Hive 元存储和数据目录之间的转换器。

建立连接后，为了将 Hive 元存储中的元数据与数据目录同步，您需要使用 Hive 元存储连接详细信息在数据目录中创建*联合数据库*，并将该数据库映射到 Hive 数据库。当数据库指向数据目录外的实体时，该数据库被称为“联合数据库”。

您可以使用基于标签的访问控制和联合数据库上的命名资源方法来应用 Lake Formation 权限，并在多个 Amazon Web Services 账户 Amazon Organizations、和组织单位之间共享该权限（OUs）。您也可以直接与其他账户的 IAM 主体共享联合数据库。

 您可以使用 Lake Formation 数据筛选条件在外部 Hive 表上定义列级、行级和单元格级的细粒度权限。您可以使用 Amazon Athena、Amazon Redshift 或 Amazon EMR 来查询 Lake Formation 托管的外部 Hive 表。

有关跨账户数据共享和数据筛选的更多信息，请参阅：
+ [Lake Formation 中的跨账户数据共享](cross-account-permissions.md)
+ [Lake Formation 中的数据筛选和单元格级别安全性](data-filtering.md)

**数据目录元数据联合身份验证主要步骤**

1. 您可以创建具有部署 Amazon SAM 应用程序和创建联合数据库所需的相应权限的 IAM 用户和角色。

1. 通过为使用外部 Hive 元存储的数据集的选择 `Enable Data Catalog federation` 选项，您可以在 Lake Formation 中注册 Amazon S3 数据位置。

1. 您可以配置 Amazon SAM 应用程序设置（Amazon Glue 连接名称、Hive 元数据仓的 URL 和 Lambda 函数参数）并部署应用程序。 Amazon SAM 

1.  Amazon SAM 应用程序部署将外部 Hive 元数据仓与数据目录连接所需的资源。

1. 要对 Hive 数据库和表应用 Lake Formation 权限，您需要使用 Hive 元存储连接详细信息在数据目录中创建数据库，并将该数据库映射到 Hive 数据库。

1. 向您的账户或其他账户中的主体授予对联合数据库的权限。

**注意**  
无需应用 Lake Formation 权限，即可将数据目录连接到外部 Hive 元存储、创建联合数据库以及在 Hive 数据库和表上运行查询和 ETL 脚本。对于未在 Lake Formation 中注册的 Amazon S3 中的源数据，访问权限由亚马逊 S3 的 IAM 权限策略和 Amazon Glue 操作决定。

有关限制，请参阅[Hive 元数据存储数据共享注意事项和限制](notes-hms.md)。

**Topics**
+ [工作流](#hms-workflow)
+ [将数据目录连接到 Hive 元存储的先决条件](hms-prerequisites.md)
+ [将数据目录连接到外部 Hive 元存储](hms-setup.md)
+ [其他资源](additional-resources-hms.md)

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

下图显示了连接到外部 Hive 元数据仓的工作流程。 Amazon Glue Data Catalog 

![\[Workflow diagram showing Hive metastore connection to Amazon Glue Data Catalog with numbered steps.\]](http://docs.amazonaws.cn/lake-formation/latest/dg/images/hms-workflow.png)


1. 主体使用 Athena 或 Redshift Spectrum 等集成服务提交查询。

1. 集成服务调用数据目录获取元数据，然后数据目录会调用后面可用的 Hive 元数据仓端点 Amazon API Gateway，并接收对元数据请求的响应。

1. 集成服务向 Lake Formation 发送请求，以验证表信息和用于访问表的凭证。

1.  Lake Formation 对请求进行授权，并将临时凭证售卖给集成应用程序以允许其访问数据。

1. 该集成服务使用从 Lake Formation 收到的临时凭证从 Amazon S3 读取数据并将结果共享给主体。