

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

# 混合访问模式的工作原理
<a name="hybrid-access-workflow"></a>

下图显示了查询数据目录资源时 Lake Formation 授权在混合访问模式下的工作原理。

![流程图显示了混合访问模式下的 Lake Formation 授权过程，包括决策点和数据流路径。](http://docs.amazonaws.cn/lake-formation/latest/dg/images/hybrid-workflow.png)


在访问数据湖中的数据之前，数据湖管理员或具有管理权限的用户会设置单个数据目录表用户策略以允许或拒绝访问数据目录中的表。然后，有权执行 `RegisterResource` 操作的主体在混合访问模式下向 Lake Formation 中注册表的 Amazon S3 位置。如果数据位置未向 Lake Formation 注册，则管理员向特定用户授予对 Data Catalog 数据库和表的 Lake Formation 权限，并选择他们以使他们能够在混合访问模式下对这些数据库和表使用 Lake Formation 权限。

1. **提交查询**-委托人使用集成服务（例如亚马逊 Athena、Amazon EMR 或 Amazon Glue Amazon Redshift Spectrum）提交查询或 ETL 脚本。

1. **请求数据** - 集成分析引擎可识别正在请求的表，并向数据目录发送元数据请求（`GetTable`、`GetDatabase`）。

1. **检查权限** - 数据目录可通过 Lake Formation 验证查询主体的访问权限。

   1. 如果该表未附加 `IAMAllowedPrincipals` 组权限，则会强制实施 Lake Formation 权限。

   1. 如果主体选择在混合访问模式下使用 Lake Formation 权限，并且该表附加了 `IAMAllowedPrincipals` 组权限，则会强制实施 Lake Formation 权限。查询引擎应用从 Lake Formation 接收的筛选条件，并将数据返回给用户。

   1. 如果表位置未在 Lake Formation 中注册，并且主体未选择在混合访问模式下使用 Lake Formation 权限，则数据目录将检查该表是否附加了 `IAMAllowedPrincipals` 组权限。如果针对该表存在此权限，则该账户中的所有主体均将获得对该表的 `Super` 或 `All` 权限。

      除非数据位置已向 Lake Formation 注册，否则即使选择加入，也无法自动提供 Lake Formation 凭证。

1. **获取凭证** - 数据目录会检查表位置是否已在 Lake Formation 中注册并将结果告知引擎。如果基础数据已在 Lake Formation 中注册，则分析引擎会请求 Lake Formation 提供临时凭证，以访问 Amazon S3 存储桶中的数据。

1. **获取数据** - 如果主体有权访问表数据，Lake Formation 将提供对集成分析引擎的临时访问权限。通过使用临时访问权限，分析引擎可从 Amazon S3 获取数据，并执行必要的筛选，例如列、行或单元格筛选。当引擎运行完作业后，它会将结果返回给用户。此过程称为凭证售卖。有关更多信息，请参阅[将第三方服务与 Lake Formation 集成](Integrating-with-LakeFormation.md)。

1.  如果表的数据位置未在 Lake Formation 中注册，则分析引擎将直接向 Amazon S3 进行第二次调用。系统会对相关 Amazon S3 存储桶策略和 IAM 用户策略进行评估以确定是否支持访问数据。每当您使用 IAM 策略时，请确保遵循 IAM 最佳实践。有关更多信息，请参阅《IAM 用户指南》中的 [IAM 中的安全最佳实践](https://docs.amazonaws.cn/IAM/latest/UserGuide/best-practices.html)。