

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

# 设置混合访问模式的先决条件
<a name="hybrid-access-prerequisites"></a>

以下是设置混合访问模式的先决条件：

**注意**  
 我们建议 Lake Formation 管理员在混合访问模式下注册 Amazon S3 位置，并选择主体和资源。

1. 授予数据位置权限 (`DATA_LOCATION_ACCESS`)，以创建指向 Amazon S3 位置的数据目录资源。数据位置权限可控制创建指向特定 Amazon S3 位置的 Data Catalog 目录、数据库和表的能力。

1. 要在混合访问模式下与其他账户共享数据目录资源（无需从资源中移除`IAMAllowedPrincipals`组权限），您需要将**跨账户版本设置更新为版本** 4 或更高版本。要使用 Lake Formation 控制台更新**版本，请在**数据目录**设置页面的**跨账户版本设置**下选择版本 4** **或版本 5**。

   您也可以使用`put-data-lake-settings` Amazon CLI 命令将`CROSS_ACCOUNT_VERSION`参数设置为版本 4 或 5：

   ```
   aws lakeformation put-data-lake-settings --region us-east-1 --data-lake-settings file://settings
   {
   "DataLakeAdmins": [
           {
   "DataLakePrincipalIdentifier": "arn:aws:iam::{{<111122223333>}}:user/{{<user-name>}}"
           }
       ],
       "CreateDatabaseDefaultPermissions": [],
       "CreateTableDefaultPermissions": [],
       "Parameters": {
   "CROSS_ACCOUNT_VERSION": "5"
       }
   }
   ```

1.  要在混合访问模式下授予跨账户权限，授予者必须拥有 Amazon Glue 和 Amazon RAM 服务所需的 IAM 权限。 Amazon 托管策略`AWSLakeFormationCrossAccountManager`授予所需的权限。  为了在混合访问模式下启用跨账户数据共享，我们通过添加两项新的 IAM 权限更新了 `AWSLakeFormationCrossAccountManager` 托管策略：
   + 内存:ListResourceSharePermissions
   + 内存:AssociateResourceSharePermission
**注意**  
如果您未使用授予者角色的 Amazon 托管策略，请将上述策略添加到您的自定义策略中。

## Amazon S3 存储桶位置和用户访问权限
<a name="w2aac11c34c21c15b9"></a>

在中创建目录、数据库或表时 Amazon Glue Data Catalog，您可以指定基础数据的 Amazon S3 存储桶位置并将其注册到 Lake Formation。下表根据表或数据库的 Amazon S3 数据位置描述了权限如何适用 Amazon Glue 于 Lake Formation 用户（委托人）。


**注册到 Lake Formation 的 Amazon S3 位置**  

| 数据库的 Amazon S3 位置 | Amazon Glue 用户 | Lake Formation 用户 | 
| --- | --- | --- | 
| 已在 Lake Formation 中注册（在混合访问模式或 Lake Formation 模式下） | 通过继承 IAMAllowed委托人组的权限（超级 read/write 访问权限）权限，可以访问 Amazon S3 数据位置。 | 从授予的 CREATE TABLE 权限中继承创建表的权限。 | 
| 没有关联的 Amazon S3 位置 | 运行 CREATE TABLE 和 INSERT TABLE 语句时需要明确的 DATA LOCATION 权限。 | 运行 CREATE TABLE 和 INSERT TABLE 语句时需要明确的 DATA LOCATION 权限。 | 

****IsRegisteredWithLakeFormation**表属性**  
表的 `IsRegisteredWithLakeFormation` 属性表示该表的数据位置是否已在 Lake Formation 中为请求者注册。如果位置的权限模式注册为 Lake Formation，那么对于访问数据位置的所有用户来说，`IsRegisteredWithLakeFormation` 属性都为 `true`，因为所有用户都被视为已选择使用该表。如果位置是以混合访问模式注册的，那么只有对于已选择使用该表的用户来说，才会将该值设为 `true`。


**`IsRegisteredWithLakeFormation` 的工作原理**  

| 权限模式 | 用户/角色 |  `IsRegisteredWithLakeFormation`  | 说明 | 
| --- | --- | --- | --- | 
| Lake Formation | 全部 | True | 在 Lake Formation 中注册位置后，所有用户的 `IsRegisteredWithLakeFormation` 属性都将设为 true。这意味着，Lake Formation 中定义的权限适用于已注册的位置。凭证售卖将由 Lake Formation 完成。 | 
| 混合访问模式 | 已选择使用 | True | 对于已选择使用 Lake Formation 对表进行数据访问和管理的用户，该表的 `IsRegisteredWithLakeFormation` 属性将设为 `true`。这些用户受 Lake Formation 中为已注册位置定义的权限策略的约束。 | 
| 混合访问模式 | 未选择使用 | False | 对于尚未选择使用 Lake Formation 权限的用户，`IsRegisteredWithLakeFormation` 属性设为 `false`。这些用户不受 Lake Formation 中为已注册位置定义的权限策略的约束。相反，用户将遵守 Amazon S3 权限策略。 | 