本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
借助 AWS Glue Data Catalog 元数据联合身份验证(数据目录联合身份验证),您可以将数据目录连接到存储您 Amazon S3 数据的元数据的外部元存储,并使用 AWS Lake Formation 安全地管理数据访问权限。您不必将元数据从外部元存储迁移到数据目录中。
数据目录提供了一个集中式元数据存储库,使管理和发现不同系统中的数据变得更加容易。当您的组织管理数据目录中的数据时,您可以使用 AWS Lake Formation 控制对 Amazon S3 中数据集的访问。
注意
目前,我们仅支持 Apache Hive(版本 3 及更高版本)元存储联合身份验证。
为了设置数据目录联合身份验证,我们在 AWS Serverless Application Repository 中提供了一个名为 GlueDataCatalogFederation-HiveMetastore
参考实施在 GitHub 上作为 AWS Glue Data Catalog 联合身份验证 - Hive 元存储
AWS SAM 应用程序创建并部署将数据目录连接到 Hive 元存储所需的以下资源:
AWS Lambda 函数 – 托管在数据目录和 Hive 元存储之间进行通信的联合身份验证服务的实施。AWS Glue 调用此 Lambda 函数从 Hive 元存储中检索元数据对象。
Amazon API Gateway – Hive 元存储的连接端点,该存储充当将所有调用路由到 Lambda 函数的代理。
IAM 角色 – 具有在数据目录和 Hive 元存储之间创建连接所需权限的角色。
AWS Glue 连接 – Amazon API Gateway 类型的 AWS Glue 连接,负责存储 Amazon API Gateway 端点和调用该端点的 IAM 角色。
当您查询表时,AWS Glue 服务会对 Hive 元存储进行运行时调用并获取元数据。Lambda 函数充当 Hive 元存储和数据目录之间的转换器。
建立连接后,为了将 Hive 元存储中的元数据与数据目录同步,您需要使用 Hive 元存储连接详细信息在数据目录中创建联合数据库,并将该数据库映射到 Hive 数据库。当数据库指向数据目录外的实体时,该数据库被称为“联合数据库”。
您可以使用基于标签的访问控制和命名资源方法对联合数据库应用 Lake Formation 权限,并在多个 AWS 账户、AWS Organizations 和组织单位(OU)之间共享该权限。您也可以直接与其他账户的 IAM 主体共享联合数据库。
您可以使用 Lake Formation 数据筛选条件在外部 Hive 表上定义列级、行级和单元格级的细粒度权限。您可以使用 Amazon Athena、Amazon Redshift 或 Amazon EMR 来查询 Lake Formation 托管的外部 Hive 表。
有关跨账户数据共享和数据筛选的更多信息,请参阅:
数据目录元数据联合身份验证主要步骤
-
您可以创建具有部署 AWS SAM 应用程序和创建联合数据库所需的相应权限的 IAM 用户和角色。
-
通过为使用外部 Hive 元存储的数据集的选择
Enable Data Catalog federation
选项,您可以在 Lake Formation 中注册 Amazon S3 数据位置。 您可以配置 AWS SAM 应用程序设置(AWS Glue 连接名称、Hive 元存储 URL 和 Lambda 函数参数)并部署 AWS SAM 应用程序。
-
AWS SAM 应用程序部署将外部 Hive 元存储与数据目录连接所需的资源:
-
要对 Hive 数据库和表应用 Lake Formation 权限,您需要使用 Hive 元存储连接详细信息在数据目录中创建数据库,并将该数据库映射到 Hive 数据库。
向您的账户或其他账户中的主体授予对联合数据库的权限。
注意
无需应用 Lake Formation 权限,即可将数据目录连接到外部 Hive 元存储、创建联合数据库以及在 Hive 数据库和表上运行查询和 ETL 脚本。对于未向 Lake Formation 注册的 Amazon S3 中的源数据,访问权限由适用于 Amazon S3 和 AWS Glue 操作的 IAM 权限策略决定。
有关限制,请参阅Hive 元数据存储数据共享注意事项和限制。
工作流
以下图表显示了将 AWS Glue Data Catalog 连接到外部 Hive 元存储的工作流。

-
主体使用 Athena 或 Redshift Spectrum 等集成服务提交查询。
集成服务会调用数据目录以获取元数据,然后数据目录会调用在 Amazon API Gateway 后面提供的 Hive 元存储端点并接收对元数据请求的响应。
-
集成服务向 Lake Formation 发送请求,以验证表信息和用于访问表的凭证。
-
Lake Formation 对请求进行授权,并将临时凭证售卖给集成应用程序以允许其访问数据。
该集成服务使用从 Lake Formation 收到的临时凭证从 Amazon S3 读取数据并将结果共享给主体。