

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

# 什么是 AWS Lake Formation？
<a name="what-is-lake-formation"></a>

欢迎阅读 AWS Lake Formation 开发者指南。

AWS Lake Formation 帮助您集中管理、保护和全球共享用于分析和机器学习的数据。您可以对 Amazon Simple Storage Service (Amazon S3) 上的数据湖数据及其在 AWS Glue Data Catalog中的元数据进行精细访问控制。

Lake Formation 提供了自己的权限模型，该模型增强了 IAM 权限模型。Lake Formation 权限模型支持通过简单的授予或撤销机制对存储在数据湖中的数据以及外部数据来源（例如 Amazon Redshift 数据仓库、 Amazon DynamoDB 数据库和第三方数据来源）进行精细访问，这与关系数据库管理系统（RDBMS）非常相似。Lake Formation 权限是使用 AWS 分析和机器学习服务（包括亚马逊 Athena、Amazon Redsh Amazon Quick ift Spectrum、亚马逊 EMR 和）的列、行和单元格级别的精细控制来强制执行 Lake Formation 权限。 AWS Glue

借助 AWS Glue Data Catalog （数据目录）的 Lake Formation 混合访问模式，您可以使用 Lake Formation 权限和 Amazon S3 和 AWS Glue 操作的 IAM 权限策略来保护和访问已编目的数据。借助混合访问模式，数据管理员可以有选择地以增量方式加载 Lake Formation 权限，一次专注于一个数据湖用例。

Lake Formation 还允许您在多个 AWS 组织之间在内部和外部共享数据 AWS 账户，或者直接与另一个账户中的 IAM 委托人共享数据，从而提供对数据目录元数据和底层数据的精细访问权限。

**Topics**
+ [Lake Formation 特征](#lake-formation-features)
+ [AWS Lake Formation：工作原理](how-it-works.md)
+ [Lake Formation 组件](how-it-works-components.md)
+ [Lake Formation 术语](how-it-works-terminology.md)
+ [AWS 与 Lake Formation 的服务集成](service-integrations.md)
+ [Lake Formation 的其他资源](additional-resources.md)
+ [Lake Formation 入门](#what-is-lake-formation-start)

## Lake Formation 特征
<a name="lake-formation-features"></a>

Lake Formation 可帮助您打破数据孤岛，并将不同类型的结构化和非结构化数据合并到一个集中式存储库中。首先，确定 Amazon S3 或关系数据库和 NoSQL 数据库中的现有数据存储，然后将数据移动到数据湖中。然后对数据进行抓取、编目和准备以供分析。接下来，通过用户选择的分析服务，为他们提供对数据的安全自助访问。

您可以使用 Lake Formation 控制台，在 Data Catalog 中创建多级联合目录，并统一 Amazon S3 数据湖和 Amazon Redshift 数据仓库中的数据。您还可以整合来自操作数据库（例如，Google Amazon DynamoDB BigQuery、MySQL 等）的数据以及第三方数据源的数据。Data Catalog 提供了一个集中式元数据存储库，使管理和发现不同系统中的数据变得更加容易。

有关更多信息，请参阅 [将您的数据带入 AWS Glue Data Catalog](bring-your-data-overview.md)。

**Topics**
+ [数据摄取和管理](#features-general)
+ [安全管理](#Security-management)
+ [将数据引入 Data Catalog](#data-sharing)

### 数据摄取和管理
<a name="features-general"></a>

**从已有的数据库中导入数据 AWS**  
指定现有数据库的位置并提供访问凭证后，Lake Formation 就会读取数据及其元数据（架构）以了解数据来源的内容。然后，它会将数据导入您的新数据湖，并将元数据记录在中央目录中。借助 Lake Formation，您可以从在 Amazon RDS 中运行或托管在 Amazon EC2 中的 MySQL、PostgreSQL、SQL Server、MariaDB 和 Oracle 数据库导入数据。支持批量和增量数据加载。

**从其他外部来源导入数据**  
您可以使用 Lake Formation 通过与 Java Database Connectivity (JDBC) 连接来从本地数据库移动数据。确定您的目标来源并在控制台中提供访问凭证，然后 Lake Formation 会读取您的数据并将其加载到数据湖中 要从上面列出的数据库以外的数据库导入数据，您可以使用创建自定义 ETL 作业。 AWS Glue

**对数据进行编目和标记**  
您可以使用 AWS Glue 爬网程序读取 Amazon S3 中的数据，提取数据库和表架构，并将这些数据存储在可搜索的数据目录中。然后，使用 Lake Formation [Lake Formation 基于标签的访问控制](tag-based-access-control.md) (TBAC) 管理对数据库、表和列的权限。有关将表添加到数据目录的更多信息，请参阅[在中创建对象 AWS Glue Data Catalog](populating-catalog.md)。

### 安全管理
<a name="Security-management"></a>

**定义和管理访问控制**  
Lake Formation 提供了一个位置来管理数据湖中数据的访问控制。您可以定义安全策略，以限制对数据库、表、列、行和单元格级别的数据的访问。这些策略适用于 IAM 用户和角色，也适用于通过外部身份提供商进行联合身份验证时的用户和组。你可以使用精细的控制来访问由 Lake Formation 在 Amazon Redshift Spectrum、Athena、 AWS Glue ETL 和 Apache Spark 的亚马逊 EMR 中保护的数据。每当您创建 IAM 身份时，请确保遵循 IAM 最佳实践。有关更多信息，请参阅《IAM 用户指南》中的[安全最佳实践](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。

**混合访问模式**  
 Lake Formation 混合访问模式让您能够灵活地选择为 Data Catalog 中的数据库和表启用 Lake Formation 权限。在混合访问模式下，您现在有了增量路径，可您为一组特定的用户设置 Lake Formation 权限，而不会中断其他现有用户或工作负载的权限策略。有关更多信息，请参阅 [混合访问模式](hybrid-access-mode.md)。

**实施审计日志记录**  
Lake Formation 提供全面的审计日志， CloudTrail 用于监控访问情况并显示对集中定义策略的遵守情况。您可以跨分析和机器学习服务审核数据访问历史记录，这些服务通过 Lake Formation 读取数据湖中的数据。这使您可以查看哪些用户或角色尝试访问了哪些数据、使用了哪些服务以及何时访问了数据和使用了服务。您可以像使用 CloudTrail APIs 和控制台访问任何其他 CloudTrail 日志一样访问审核日志。有关 CloudTrail 日志的更多信息，请参阅[使用记录 AWS Lake Formation API 调用 AWS CloudTrail](logging-using-cloudtrail.md)。

**行和单元格级别安全功能**  
Lake Formation 提供了数据筛选条件，允许您限制对列和行组合的访问。使用行和单元格级别安全功能来保护敏感数据，例如个人身份信息 (PII)。有关行级别安全功能的更多信息，请参阅[Lake Formation 中的数据筛选和单元格级别安全性](data-filtering.md)。

**基于标签的访问控制**  
使用 Lake Formation [基于属性的访问控制](https://docs.aws.amazon.com/lake-formation/latest/dg/tag-based-access-control.html)，通过创建称为 LF 标签的自定义标签来管理数百甚至数千个数据权限。您现在可以定义 LF 标签并将其附加到数据库、表或列。然后，跨分析、机器学习 (ML) 和提取、转换、加载 (ETL) 服务共享受控访问权限以供使用。LF 标签通过将数千个资源的策略定义替换为几个逻辑标签，确保可以轻松扩展数据治理。Lake Formation 提供了对这些元数据的基于文本的搜索，因此您的用户可以快速找到他们需要分析的数据。

**基于属性的访问控制**  
使用[基于属性的访问控制](https://docs.aws.amazon.com/lake-formation/latest/dg/attribute-based-access-control.html)来授予对 Data Catalog 对象的访问权限。基于属性的访问控制 (ABAC) 是一种基于属性定义权限的授权策略。 AWS 调用这些属性标签。您可以使用 ABAC 向同一账户或另一个账户中的主体授予对 Data Catalog 资源的访问权限。具有匹配 IAM 标签或会话标签键和值的任何 IAM 主体都可以获得资源的访问权限。您必须对资源拥有可授予的权限才能进行这些授予。

**跨账户访问**  
Lake Formation 权限管理功能通过集中式方法简化了跨多个 AWS 账户的分布式数据湖的保护和管理，提供了对数据目录和 Amazon S3 位置的精细访问控制。有关更多信息，请参阅 [Lake Formation 中的跨账户数据共享](cross-account-permissions.md)。

### 将数据引入 Data Catalog
<a name="data-sharing"></a>

联合身份验证功能使您能够对存储在不同数据来源（如 Amazon Redshift）中的数据集创建联合目录和设置权限，而无需将数据或元数据迁移到 Amazon S3 或 AWS Glue Data Catalog。您可以使用以下方法在 Lake Formation 中引入数据并管理对外部数据集的权限：

有关更多信息，请参阅[将数据引入 AWS Glue Data Catalog](https://docs.aws.amazon.com/lake-formation/latest/dg/bring-your-data-overview.html)。
+ **将 Amazon Redshift 数据仓库中的数据引入 AWS Glue Data Catalog**：向 Data Catalog 注册现有的 [Amazon Redshift](https://docs.aws.amazon.com/redshift/index.html) 命名空间或集群，然后在 Data Catalog 中创建多级联合目录。

  您可以使用任何与 Apache Iceberg REST 目录 OpenAPI 规格兼容的查询引擎（例如，Amazon EMR Serverless 和 Amazon Athena）访问您的数据。

  有关更多信息，请参阅 [将亚马逊 Redshift 数据引入 AWS Glue Data Catalog](managing-namespaces-datacatalog.md)。
+ **从外部数据源联合到数据目录 — 使用 AWS Glue 连接将数据**目录连接到外部数据源，并创建联合目录以使用 Lake Formation 集中管理数据集的访问权限。无需将元数据迁移到 Data Catalog。

  有关更多信息，请参阅 [联合到外部数据源中 AWS Glue Data Catalog](federated-catalog-data-connection.md)。
+ **将 Amazon S3 表存储桶与数据目录**集成 — 您可以通过 Lake Formation 控制台或使用 AWS Glue APIs将 Amazon S3 表作为数据目录对象发布和编目，并将该目录注册为 Lake Formation 数据位置。

  有关更多信息，请参阅 [Amazon S3 表格与 AWS Glue Data Catalog 和的集成 AWS Lake Formation](create-s3-tables-catalog.md)。
+ **创建目录来管理 Data Catalog 中的 Amazon Redshift 表**：您现在可能没有可用的 Amazon Redshift 创建器集群或 Amazon Redshift 数据共享，但想使用 Data Catalog 来创建和管理 Amazon Redshift 表。首先，您可以使用 `glue:CreateCatalog` API 创建 AWS Glue 托管目录，也可以将目录类型设置为 Red AWS Lake Formation shift，也可以通过将目录类型设置`Catalog source`为 `Managed` **Red** shift 来创建托管目录。

  有关更多信息，请参阅 [在中创建亚马逊 Redshift 托管目录 AWS Glue Data Catalog](create-rms-catalog.md)。
+ **将 Lake Formation 与 Amazon Redshift 数据共享集成** – 使用 Lake Formation 集中管理 [Amazon Redshift](https://docs.aws.amazon.com/redshift/index.html) 数据共享的数据库、表、列和行级别访问权限，并限制用户对数据共享内对象的访问。
+ **将数据目录连接到外部元数据仓库** — 使用 Lake Formation AWS Glue Data Catalog 连接到外部元数据仓库以管理 Amazon S3 中数据集的访问权限。无需将元数据迁移到 Data Catalog。

   有关更多信息，请参阅 [管理对使用外部元存储的数据集的权限](data-sharing-hms.md)。
+ **将 Lake Form AWS ation 与 Data Exchang** e 集成 — Lake Formation 支持通过许可访问您的数据 AWS Data Exchange。如果您有兴趣获得 Lake Formation 数据的许可，请参阅《AWS Data Exchange 用户指南》**中的[什么是 AWS Data Exchange？](https://docs.aws.amazon.com/data-exchange/latest/userguide/what-is.html)。

# AWS Lake Formation：工作原理
<a name="how-it-works"></a>

 AWS Lake Formation 提供了关系数据库管理系统 (RDBMS) 权限模型，以用于授予或撤销对数据目录资源（例如，Amazon S3 中含基础数据的数据库、表和列）的访问权限。易于管理的 Lake Formation 权限取代了复杂的 Amazon S3 存储桶策略和相应的 IAM 策略。

在 Lake Formation 中，您可以在两个级别实施权限：
+ 对数据目录资源（例如，数据库和表）强制实施元数据级别权限
+ 代表集成引擎管理 Amazon S3 上存储的基础数据的存储访问权限 

## Lake Formation 权限管理工作流
<a name="lf-workflow"></a>

Lake Formation 与分析引擎集成，以查询已在 Lake Formation 中注册的 Amazon S3 数据存储和元数据对象。下图说明了 Lake Formation 中权限管理的工作原理。

![\[Diagram showing Lake Formation permissions enforcement layers and data access flow.\]](http://docs.aws.amazon.com/zh_cn/lake-formation/latest/dg/images/lf-workflow.png)


**Lake Formation 权限管理主要步骤**

[*数据湖管理员*](initial-lf-config.md#create-data-lake-admin)或具有管理权限的用户需设置单个数据目录表用户策略以允许或拒绝使用 Lake Formation 权限访问数据目录表，之后，Lake Formation 方可提供对数据湖中数据的访问控制。

然后，数据湖管理员或管理员委派的用户向各用户授予对数据目录数据库和表的 Lake Formation 权限，并将该表的 Amazon S3 位置注册到 Lake Formation 中。

1. **获取元数据** — 主体（用户）向[集成分析引擎](working-with-services.md)（例如 Amazon Athena、AWS Glue、Amazon EMR 或 Amazon Redshift Spectrum）提交查询或 ETL 脚本。集成分析引擎可识别正在请求的表，并将元数据请求发送到数据目录。

1. **检查权限** – 数据目录检查用户在 Lake Formation 中的权限，如果用户有权访问该表，则会将允许该用户查看的元数据返回给引擎。

1. **获取凭证** — 数据目录会告知引擎，该表是否由 Lake Formation 管理。如果基础数据已在 Lake Formation 中注册，则分析引擎会请求 Lake Formation 通过授予临时访问权限来提供数据访问权限。

1. **获取数据** – 如果用户有权访问该表，Lake Formation 将提供对集成分析引擎的临时访问权限。通过使用临时访问权限，分析引擎可从 Amazon S3 获取数据，并执行必要的筛选，例如列、行或单元格筛选。当引擎运行完作业后，它会将结果返回给用户。此过程称为[凭证售卖](using-cred-vending.md)。

   如果该表不是由 Lake Formation 管理的，则分析引擎会直接向 Amazon S3 进行第二次调用。系统会对相关 Amazon S3 存储桶策略和 IAM 用户策略进行评估以确定是否支持访问数据。

   每当您使用 IAM policy 时，请确保遵循 IAM 最佳实践。有关更多信息，请参阅《[IAM 用户指南](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)》中的 *IAM 安全最佳实践*。

**Topics**
+ [Lake Formation 权限管理工作流](#lf-workflow)
+ [元数据权限](metadata-permissions.md)
+ [存储访问管理](storage-permissions.md)
+ [Lake Formation 中的跨账户数据共享](cross-data-sharing-lf.md)

# 元数据权限
<a name="metadata-permissions"></a>

 Lake Formation 提供对数据目录的授权和访问控制。当 IAM 角色从任何系统进行数据目录 API 调用时，数据目录会验证用户的数据权限，并且仅返回用户有权访问的元数据。例如，如果某 IAM 角色只能访问数据库中的一个表，并且担任该角色的服务或用户执行 `GetTables` 操作，则无论数据库中有多少个表，响应都将只包含一个表。

 **默认设置 - `IAMAllowedPrincipal` 组权限**

 默认情况下，AWS Lake Formation 将对所有数据库和表的权限设置为一个名为 `IAMAllowedPrincipal` 的虚拟组。该组独一无二，只显示在 Lake Formation 中。`IAMAllowedPrincipal` 组包括所有通过 IAM 主体策略和 AWS Glue 资源策略访问数据目录资源的 IAM 主体。如果针对数据库或表存在此权限，则将授予所有主体访问该数据库或表的权限。

如果您想提供对数据库或表的更精细的权限，请删除 `IAMAllowedPrincipal` 权限，之后 Lake Formation 会强制实施与该数据库或表关联的所有其他策略。例如，如果存在允许用户 A 使用 `DESCRIBE` 权限访问数据库 A 的策略，并且 `IAMAllowedPrincipal` 中含有所有权限，则用户 A 将继续执行所有其他操作，直到 `IAMAllowedPrincipal` 权限被撤销。

此外，默认情况下，在创建所有新数据库和表时，`IAMAllowedPrincipal` 组便拥有对这些数据库和表的权限。有两种配置可以控制这种行为。第一种是可为新创建的数据库启用此功能的账户和区域级别配置，第二种是数据库级别配置。要修改默认设置，请参阅[更改默认权限模式或使用混合访问模式](initial-lf-config.md#setup-change-cat-settings)。

## 授予权限
<a name="grant-permissions"></a>

数据湖管理员可以向主体授予数据目录权限，以便主体可以创建和管理数据库和表，并且可以访问基础数据。

 **数据库和表级别权限**

在 Lake Formation 中授予权限时，授予者必须指定要将权限授予的主体、要针对其授予权限的资源以及被授权者应有权执行的操作。对于 Lake Formation 中的大多数资源，主体列表和要针对其授予权限的资源都相似，但被授权者可以执行的操作因资源类型而异。例如，使用 `SELECT` 权限可以读取表，但对于数据库，则无法实施 `SELECT` 权限。`CREATE_TABLE` 权限可针对数据库实施，但不能针对表实施。

您可以使用两种方法授予 AWS Lake Formation 权限：
+ [命名资源方法](granting-cat-perms-named-resource.md) – 允许您在向用户授予权限时选择数据库和表名。
+ [基于 LF 标签的访问控制 (LF-TBAC)](granting-catalog-perms-TBAC.md) — 用户可创建 LF 标签，将其与数据目录资源关联，授予对 LF 标签的 `Describe` 权限，将权限关联到单个用户，以及使用 LF 标签为不同的用户编写 LF 权限策略。此类基于 LF 标签的策略应用于所有与这些 LF 标签值关联的数据目录资源。
**注意**  
LF 标签是 Lake Formation 所独有的。它们仅在 Lake Formation 中显示，不应将其与 AWS 资源标签混淆。

  LF-TBAC 是一项功能，允许用户将资源分组为用户定义的 LF 标签类别并对这些资源组应用权限。因此，这是跨大量数据目录资源扩展权限的最佳方式。

  有关更多信息，请参阅 [Lake Formation 基于标签的访问控制](tag-based-access-control.md)。

 当您向主体授予权限时，Lake Formation 会将权限作为该用户的所有策略的并集进行评估。例如，如果针对某主体有两项表策略，其中一项策略通过命名资源方法授予对列 col1、col2 和 col3 的权限，另一项策略通过 LF 标签向同一主体授予对同一表中 col5 和 col6 的权限，则有效权限将是对 col1、col2、col3、col5 和 col6 的权限的并集。这还包括数据筛选条件和行。

**数据位置权限**  
数据位置权限使非管理用户能够在特定的 Amazon S3 位置创建数据库和表。如果用户尝试在他们无权创建数据库或表的位置创建数据库或表，则创建任务将失败。这是为了防止用户在数据湖中的任意位置创建表，并控制这些用户可以在何处读取和写入数据。在用于创建数据库的 Amazon S3 位置创建表时，存在隐式权限。有关更多信息，请参阅 [授予数据位置权限](granting-location-permissions.md)。

**创建表和数据库权限**  
默认情况下，非管理用户无权创建数据库，也无权在数据库中创建表。对于数据库的创建，是使用 Lake Formation 设置在账户级别控制的，因此只有获得授权的主体才能创建数据库。有关更多信息，请参阅 [创建数据库](creating-database.md)。要创建表，主体需要对创建该表所在的数据库拥有 `CREATE_TABLE` 权限。有关更多信息，请参阅 [创建表建筑物 AWS Glue Data Catalog 视图](creating-tables.md)。

**隐式和显式权限**  
Lake Formation 根据角色和角色执行的操作提供隐式权限。例如，数据湖管理员可自动获得对数据目录中所有资源的 `DESCRIBE` 权限、对所有位置的数据位置权限、在所有位置创建数据库和表的权限以及对任何资源的 `Grant` 和 `Revoke` 权限。数据库创建者自动获得对他们创建的数据库的所有数据库权限，而表创建者则获得对他们创建的表的所有权限。有关更多信息，请参阅 [隐式 Lake Formation 权限](implicit-permissions.md)。

**可授予的权限**  
数据湖管理员能够通过提供可授予的权限将权限管理任务委派给非管理用户。当主体获得对资源的可授予权限和一组权限时，该主体能够向其他主体授予对该资源的权限。

# 存储访问管理
<a name="storage-permissions"></a>

 Lake Formation 使用[凭证售卖](using-cred-vending.md)功能提供对 Amazon S3 数据的临时访问权限。凭证售卖或令牌售卖是一种常见的模式，它向用户、服务或一些其他实体提供临时凭证，以授予其对资源的短期访问权限。

Lake Formation 利用这种模式提供对 Athena 等 AWS 分析服务的短期访问权限，以使被授予者能够代表调用主体访问数据。在授予权限时，用户无需更新其 Amazon S3 存储桶策略或 IAM 策略，也无需直接访问 Amazon S3。

下图显示了 Lake Formation 如何提供对注册位置的临时访问权限：

![\[Diagram showing Lake Formation's process for providing temporary access to registered locations.\]](http://docs.aws.amazon.com/zh_cn/lake-formation/latest/dg/images/storage-permissions-workflow.png)


1. 主体（用户）通过可信的集成服务（例如 Athena、Amazon EMR、Redshift Spectrum 或 AWS Glue）输入对表数据的查询或请求。

1. 该集成服务会检查 Lake Formation 针对表和所请求的列提供的授权，并做出授权决定。如果用户未获得授权，Lake Formation 将拒绝用户访问数据，并且查询将失败。

1. 授权成功且为表和用户开启存储授权后，集成服务将从 Lake Formation 检索临时凭证以访问数据。

1. 该集成服务使用 Lake Formation 提供的临时凭证请求 Amazon S3 中的对象。

1. Amazon S3 向集成服务提供 Amazon S3 对象。Amazon S3 对象包含表中的所有数据。

1. 集成服务对 Lake Formation 策略执行必要的强制实施，例如列级别、行级别和/或单元格级别筛选。集成服务会处理查询并将结果返回给用户。

**为数据目录表启用存储级别权限强制实施**  
默认情况下，不对数据目录中的表启用存储级别强制实施。要启用存储级别强制实施，您必须在 Lake Formation 中注册源数据的 Amazon S3 位置并提供 IAM 角色。将为与 Amazon S3 位置具有相同的表位置路径或前缀的所有表启用存储级别权限。

当集成服务代表用户请求访问数据位置时，Lake Formation 服务将担任此角色，将凭证返回给所请求的服务，并在确保可以访问数据的情况下缩小对资源的权限范围。已注册的 IAM 角色必须对 Amazon S3 位置（包括 AWS KMS 密钥）拥有所有必需访问权限。

有关更多信息，请参阅 [注册 Amazon S3 位置](register-location.md)。

**支持的 AWS 服务**  
Athena、Redshift Spectrum、Amazon EMR、AWS Glue、Amazon Quick 和 Amazon SageMaker AI 等 AWS 分析服务使用 Lake Formation 凭证售卖 API 操作与 AWS Lake Formation 集成。要查看与 Lake Formation 集成的 AWS 服务的完整列表以及它们支持的粒度级别和表格格式，请参阅[使用其他 AWS 服务](working-with-services.md)。

# Lake Formation 中的跨账户数据共享
<a name="cross-data-sharing-lf"></a>

 借助 Lake Formation，您可以使用命名资源方法或 LF 标签，通过简单设置在 AWS 账户内和跨账户共享数据目录资源（数据库和表）。您可以将整个数据库或数据库中的部分表共享给账户中的任何 IAM 主体（IAM 角色和用户）、账户级别的其他 AWS 账户，或者直接共享给另一个账户中的 IAM 主体。

您还可以利用数据筛选条件将数据目录表共享，以限制对行级别和单元格级别详细信息的访问。Lake Formation 使用 AWS Resource Access Manager (AWS RAM) 促进在账户之间授予权限的过程。在两个账户之间共享资源时，AWS RAM 会向接收方账户发送邀请。当用户接受 AWS RAM 共享邀请时，AWS RAM 会向其提供必要的 Lake Formation 权限以确保数据目录资源可用并启用存储级别强制实施。有关更多信息，请参阅 [Lake Formation 中的跨账户数据共享](cross-account-permissions.md)。

当接收方账户的数据湖管理员接受 AWS RAM 共享时，共享资源将在接收方账户中可用。数据湖管理员会向接收方账户中的其他 IAM 主体授予对共享资源的更多 Lake Formation 权限（前提是管理员拥有对共享资源的 `GRANTABLE` 权限）。

但是，如果没有资源链接，主体就无法使用 Athena 或 Redshift Spectrum 来查询共享资源。资源链接是数据目录中的一个实体，类似于 Linux-Symlink 的概念。

接收方账户的数据湖管理员会针对共享资源创建资源链接。管理员会向其他用户授予对资源链接的 `Describe` 权限以及对原共享资源的必需权限。然后，接收方账户中的用户可以通过该资源链接，使用 Athena 和 Redshift Spectrum 查询共享资源。有关资源链接的更多信息，请参阅[创建资源链接](creating-resource-links.md)。

# Lake Formation 组件
<a name="how-it-works-components"></a>

AWS Lake Formation 依赖于多个组件之间的交互来创建和管理数据湖。

## Lake Formation 控制台
<a name="components-console"></a>

您可以使用 Lake Formation 控制台定义和管理数据湖，并授予和撤销 Lake Formation 权限；可以在该控制台上使用蓝图来发现、清理、转换和摄取数据；还可以启用或禁用单个 Lake Formation 用户对该控制台的访问。

## Lake Formation API 和命令行界面
<a name="components-cli"></a>

Lake Formation 通过多个特定于语言的 SDK 和 AWS Command Line Interface (AWS CLI) 提供 API 操作。Lake Formation 与 AWS Glue API 结合使用。Lake Formation API 主要侧重于管理 Lake Formation 权限，而 AWS Glue API 则提供数据目录 API 和托管式基础设施，用于定义、安排和运行对数据的 ETL 操作。

有关 AWS Glue API 的信息，请参阅 [AWS Glue 开发人员指南](https://docs.aws.amazon.com/glue/latest/dg/)。有关使用 AWS CLI 的信息，请参阅 [AWS CLI 命令参考](https://docs.aws.amazon.com/cli/latest/reference/)。

## 其他 AWS 服务
<a name="components-other-services"></a>

Lake Formation 使用以下服务：
+ [https://docs.aws.amazon.com/glue/latest/dg/](https://docs.aws.amazon.com/glue/latest/dg/)：用于编排作业和爬网程序以使用 AWS Glue 转换来转换数据。
+ [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/)：用于向 Lake Formation 主体授予权限策略。Lake Formation 权限模型增强了 IAM 权限模型，以保护您的数据湖。

# Lake Formation 术语
<a name="how-it-works-terminology"></a>

以下是您将在本指南中遇到的一些重要术语。

## 数据湖
<a name="terminology-data-lake"></a>

**“数据湖”是存储在 Amazon S3 中并由 Lake Formation 使用数据目录管理的持久性数据。数据湖通常存储以下内容：
+ 结构化数据和非结构化数据
+ 原始数据和转换后的数据

要使 Amazon S3 路径位于数据湖内，必须向 Lake Formation 注册该路径。**

## 数据访问
<a name="terminology-data-access"></a>

Lake Formation 通过增强 AWS Identity and Access Management (IAM) 策略的新授予/撤销权限模型，提供对数据的安全和精细访问。

分析师和数据科学家可以使用完整的 AWS 分析和机器学习服务组合（如 Amazon Athena）来访问数据。配置的 Lake Formation 安全策略有助于确保用户只能访问自己有权访问的数据。

## 混合访问模式
<a name="terminology-hybridaccessmode"></a>

混合访问模式允许您使用 Lake Formation 权限以及 IAM 和 Amazon S3 权限来保护和访问已编目的数据。混合访问模式允许数据管理员有选择地以增量方式加载 Lake Formation 权限，一次专注于一个数据湖用例。

## 蓝图
<a name="terminology-blueprint"></a>

**“蓝图”是一种数据管理模板，可让您轻松地将数据摄取到数据湖中。Lake Formation 提供了多个蓝图，每个蓝图都适用于预定义的源类型，例如关系数据库或 AWS CloudTrail 日志。在蓝图中，您可以创建工作流。工作流由 AWS Glue 爬网程序、作业和触发器组成，生成它们是为了编排数据的加载和更新。蓝图将数据来源、数据目标和计划作为配置工作流的输入。

## 工作流
<a name="terminology-data-importer"></a>

**“工作流”是一组相关 AWS Glue 作业、爬网程序和触发器的容器。您可以在 Lake Formation 中创建工作流，然后在 AWS Glue 服务中执行。Lake Formation 可以将工作流作为单个实体跟踪其状态。

定义工作流时，您可以选择其所基于的蓝图。然后可以按需或按计划运行工作流。

您在 Lake Formation 中创建的工作流在 AWS Glue 控制台中显示为有向无环图 (DAG) 形式。使用 DAG，您可以跟踪工作流的进度并执行问题排查。

## 数据目录
<a name="terminology-data-catalog"></a>

**“数据目录”是持久性元数据存储。它是一项托管式服务，可让您在 AWS 云中存储、注释和共享元数据，就像在 Apache Hive 元存储中一样。它提供了一个统一的存储库，不同的系统可以在其中存储和查找元数据来跟踪数据孤岛中的数据，然后使用该元数据来查询和转换数据。Lake Formation 使用 AWS Glue 数据目录来存储有关数据湖、数据来源、转换和目标的元数据。

有关数据来源和目标的元数据采用数据库和表的形式。表存储架构信息、位置信息等。数据库是表的集合。Lake Formation 提供权限层次结构来控制对数据目录中的数据库和表的访问权限。

每个 AWS 账户在每个 AWS 区域都有一个数据目录。

## 基础数据
<a name="terminology-underlying-data"></a>

**“基础数据”是指数据目录表指向的数据湖中的源数据或数据。

## 主体
<a name="terminology-principal"></a>

**“主体”是 AWS Identity and Access Management (IAM) 用户或角色或者 Active Directory 用户。

## 数据湖管理员
<a name="terminology-admin"></a>

**“数据湖管理员”是可以向任何主体（包括自己）授予对任何数据目录资源或数据位置的任何权限的主体。将数据湖管理员指定为数据目录的第一个用户。然后，此用户可以向其他主体授予更精细的资源权限。

**注意**  
IAM 管理用户（使用 `AdministratorAccess` AWS 托管式策略的用户）不会自动成为数据湖管理员。例如，他们无法授予 Lake Formation 对目录对象的权限，除非他们已获得相应权限。但是，他们可以使用 Lake Formation 控制台或 API 将自己指定为数据湖管理员。

有关数据湖管理员功能的信息，请参阅[隐式 Lake Formation 权限](implicit-permissions.md)。有关将用户指定为数据湖管理员的信息，请参阅[创建数据湖管理员](initial-lf-config.md#create-data-lake-admin)。

# AWS 与 Lake Formation 的服务集成
<a name="service-integrations"></a>

您可以使用 Lake Formation 来管理对存储在 Amazon S3 中的数据的数据库、表和列级访问权限。在 Lake Formation 中注册数据后，您可以使用亚马逊雅典娜 AWS Glue、亚马逊 Redshift Spectrum、亚马逊 EMR 等 AWS 分析服务来查询数据。以下 AWS 服务与 Lake Formation 的权限集成 AWS Lake Formation 并遵守。


| AWS 服务 | 集成详细信息 | 
| --- | --- | 
| [https://docs.aws.amazon.com/glue/latest/dg/](https://docs.aws.amazon.com/glue/latest/dg/) |  参考主题：[AWS Lake Formation 与一起使用 AWS Glue](glue-features-lf.md) AWS Glue 与 Lake Formation 共享同一数据目录。对于控制台操作（例如查看表列表）和所有 API 操作，AWS Glue 用户只能访问自己对其具有 Lake Formation 权限的数据库和表。  | 
| [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/) |  参考主题：[在亚马逊 A AWS Lake Formation thena 上使用](athena-lf.md) 使用 Lake Formation 允许或拒绝读取 Amazon S3 中数据的权限。当 Amazon Athena 用户在查询编辑器中选择 AWS Glue 目录时，他们只能查询自己对其具有 Lake Formation 权限的数据库、表和列。不支持使用清单的查询。 目前，Lake Formation 不支持管理对采用开放表格格式的表的写入操作（例如 `VACUUM`、`MERGE`、`UPDATE` 和 `OPTIMIZE`）权限。 除了 AWS Identity and Access Management 通过 (IAM) 向 Athena 进行身份验证的委托人外，Lake Formation 还支持通过 JDBC 或 ODBC 驱动程序连接并通过 SAML 进行身份验证的 Athena 用户。支持的 SAML 提供商包括 Okta 和 Microsoft Active Directory 联合身份验证服务 (AD FS)。  | 
| [Amazon Redshift Spectrum](https://docs.aws.amazon.com/redshift/latest/dg/c-using-spectrum.html) |  参考主题：[AWS Lake Formation 与亚马逊 Redshift Spectrum 一起使用](RSPC-lf.md) 当 Amazon Redshift 用户在中的数据库上创建外部架构时 AWS Glue Data Catalog，他们只能查询该架构中他们拥有 Lake Formation 权限的表和列。  | 
| [Amazon Quick 企业版](https://docs.aws.amazon.com/quicksight/latest/user/welcome.html) | 参考：[与 Quick AWS Lake Formation 一起使用](qs-integ-lf.md) 当 Amazon Quick Enterprise Edition 用户查询 Amazon S3 位置的数据集时，该用户必须拥有该数据的 Lake Formation `SELECT` 权限。  | 
| [Amazon EMR](https://docs.aws.amazon.com/emr/latest/DeveloperGuide/)  | 参考：[AWS Lake Formation 与 Amazon EMR 一起使用](emr-integ-lf.md) 创建具有运行时角色的 Amazon EMR 集群时，您可以集成 Lake Formation 权限。 运行时角色是您与 Amazon EMR 任务或查询关联的 IAM 角色，然后 Amazon EMR 使用此角色访问资源。 AWS   | 

Lake Formation 与 [AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) (AWS KMS) 集成，使您能够更轻松地设置这些集成服务，以加密和解密 Amazon Simple Storage Service (Amazon S3) 位置中的数据。

# Lake Formation 的其他资源
<a name="additional-resources"></a>

 有关 AWS Lake Formation 的更多信息，我们建议您使用以下资源，继续详细了解本指南中介绍的概念：

**Topics**
+ [博客](#lf-blogs)
+ [技术讲座和网络研讨会](#talks-webinars)
+ [现代架构](#modern-day-architecture)
+ [数据网格资源](#data-mesh-resources)
+ [最佳实践指南](#best-practice-lf)

## 博客
<a name="lf-blogs"></a>
+  [AWS Lake Formation 2022 年回顾](https://aws.amazon.com/blogs/big-data/aws-lake-formation-2022-year-in-review/) 
+ [高弹性的多区域现代数据架构](https://aws.amazon.com/blogs/big-data/build-a-multi-region-and-highly-resilient-modern-data-architecture-using-aws-glue-and-aws-lake-formation/)
+  [使用 LF 标签进行跨账户共享，以引导 IAM 主体](https://aws.amazon.com/blogs/big-data/enable-cross-account-sharing-with-direct-iam-principals-using-aws-lake-formation-tags/) 
+ [Lake Formation 权限清单控制面板](https://aws.amazon.com/blogs/big-data/build-an-aws-lake-formation-permissions-inventory-dashboard-using-aws-glue-and-amazon-quicksight/) 
+ [事件驱动型数据网格](https://aws.amazon.com/blogs/big-data/use-an-event-driven-architecture-to-build-a-data-mesh-on-aws/)

## 技术讲座和网络研讨会
<a name="talks-webinars"></a>
+ re: Invent 2020 – [数据湖：轻松构建、保护安全以及和 AWS Lake Formation 共享](https://www.youtube.com/watch?v=r5F0hvuq9kY) 
+ re:Invent 2022 – [Amazon S3 上构建和运行数据湖](https://www.youtube.com/watch?v=YCNVdK5kPWk)
+ AWS 2022 年 SF 峰会 – [了解和实现现代数据架构](https://www.youtube.com/watch?v=rWQQDcqgcdw) 
+ AWS 2022 年 ATL 峰会 – [现代数据湖及 AWS Lake Formation、Amazon Redshift 和 AWS Glue](https://www.youtube.com/watch?v=7H15CYpJRRI) 
+ AWS 2022 年 ANZ 峰会 – [数据湖、智能湖仓和数据网格：什么、为什么、如何？](https://www.youtube.com/watch?v=3354wJV3X58)
+ AWS在线技术讲座 – [简化数据湖中的权限和监管](https://www.youtube.com/watch?v=OybeggHYfRI) 

## 现代架构
<a name="modern-day-architecture"></a>
+ [现代架构模式](https://docs.aws.amazon.com/wellarchitected/latest/analytics-lens/modern-data-architecture.html)

## 数据网格资源
<a name="data-mesh-resources"></a>
+  [使用 AWS Lake Formation 基于标签的访问控制大规模构建现代数据架构和数据网格模式](https://aws.amazon.com/blogs/big-data/build-a-modern-data-architecture-and-data-mesh-pattern-at-scale-using-aws-lake-formation-tag-based-access-control/) 
+ [JPMorgan Chase 如何构建数据网格架构以大幅增加价值，从而增强其企业数据平台](https://aws.amazon.com/blogs/big-data/how-jpmorgan-chase-built-a-data-mesh-architecture-to-drive-significant-value-to-enhance-their-enterprise-data-platform/)
+ [在 AWS 上构建数据网格](https://catalog.us-east-1.prod.workshops.aws/workshops/23e6326b-58ee-4ab0-9bc7-3c8d730eb851/en-US)

## 最佳实践指南
<a name="best-practice-lf"></a>
+ [AWS Lake Formation 最佳实践指南](https://aws.github.io/aws-lakeformation-best-practices/) 

## Lake Formation 入门
<a name="what-is-lake-formation-start"></a>

我们建议您首先阅读以下部分：
+ [AWS Lake Formation：工作原理](how-it-works.md) - 了解基本术语以及各个组件的交互方式。
+ [Lake Formation 入门](getting-started-setup.md) - 获取有关先决条件的信息，并完成重要的设置任务。
+ [AWS Lake Formation 教程](getting-started-tutorials.md)— 按照 step-by-step教程学习如何使用 Lake Formation。
+ [AWS Lake Formation 中的安全](security.md) - 了解如何帮助用户在 Lake Formation 中安全地访问数据。