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