

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

# 将 AWS Glue 资源转换为混合资源
<a name="hybrid-access-mode-new"></a>

按照以下步骤在混合访问模式下注册 Amazon S3 位置，并在不中断现有数据目录用户数据访问的情况下引导新的 Lake Formation 用户。

场景描述 - 数据位置未在 Lake Formation 中注册，用户对数据目录数据库和表的访问权限由适用于 Amazon S3 和 AWS Glue 操作的 IAM 权限策略决定。  默认情况下，`IAMAllowedPrincipals` 组拥有对数据库中所有表的 `Super` 权限。

**为未在 Lake Formation 中注册的数据位置启用混合访问模式**

1. 

**注册 Amazon S3 位置，以启用混合访问模式。**

------
#### [ Console ]

   1. 以数据湖管理员身份登录 [Lake Formation 控制台](https://console.aws.amazon.com/lakeformation/)。

   1. 在导航窗格中，选择**管理**下的**数据湖位置**。

   1. 选择**注册位置**。  
![\[Register location form for Amazon S3 data lake with path input, IAM role selection, and permission mode options.\]](http://docs.aws.amazon.com/zh_cn/lake-formation/latest/dg/images/hybrid-access-register-s3.png)

   1. 在**注册位置**窗口中，选择要在 Lake Formation 中注册的 **Amazon S3** 路径。

   1. 对于 **IAM 角色**，选择 `AWSServiceRoleForLakeFormationDataAccess` 服务相关角色（默认）或符合[用于注册位置的角色的要求](registration-role.md)中要求的自定义 IAM 角色。

   1. 选择**混合访问模式**以应用精细的 Lake Formation 访问控制策略来选择主体以及指向注册位置的数据目录数据库和表。 

      选择 Lake Formation 以允许 Lake Formation 授权对注册位置的访问请求。 

   1. 选择**注册位置**。

------
#### [ AWS CLI ]

   以下是使用:true/false 向 Lake Formation 注册数据位置的 HybridAccessEnabled示例。`HybridAccessEnabled` 参数的默认值为 false。将 Amazon S3 路径、角色名称和 AWS 账户 ID 替换为有效值。

   ```
   aws lakeformation register-resource --cli-input-json file:file path
   json:
       {
           "ResourceArn": "arn:aws:s3:::s3-path",
           "UseServiceLinkedRole": false,
           "RoleArn": "arn:aws:iam::<123456789012>:role/<role-name>",
           "HybridAccessEnabled": true
       }
   ```

------

1. 

**授予权限并选择主体以在混合访问模式下对资源使用 Lake Formation 权限**

   在混合访问模式下选择主体和资源之前，请确认对于在该模式下已使用 Lake Formation 注册了位置的数据库和表，已向 `IAMAllowedPrincipals` 组授予了 `Super` 或 `All` 权限。
**注意**  
您不能向 `IAMAllowedPrincipals` 组授予对数据库中 `All tables` 的权限。您需要从下拉菜单中分别选择每个表，并授予权限。此外，在数据库中创建新表时，可以在**数据目录设置**中选择使用 `Use only IAM access control for new tables in new databases`。当您在数据库中创建新表时，此选项会自动向 `IAMAllowedPrincipals` 组授予 `Super` 权限。

------
#### [ Console ]

   1. 在 Lake Formation 控制台的 **Data Catalog** 下，选择**目录**、**数据库**或**表**。

   1. 从列表中选择目录、数据库或表，然后从**操作**菜单中选择**授予**。

   1. 选择要使用命名资源方法或 LF 标签授予其对数据库、表和列的权限的主体。

      或者，选择**数据权限**，从列表中选择要向其授予权限的主体，然后选择**授予**。

      有关授予数据权限的更多详细信息，请参阅[授予对数据目录资源的权限](granting-catalog-permissions.md)。
**注意**  
如果您要向主体授予创建表的权限，则还需要向主体授予数据位置权限 (`DATA_LOCATION_ACCESS`)。更新表不需要此权限。  
有关更多信息，请参阅 [授予数据位置权限](granting-location-permissions.md)。

   1. 当您使用**命名资源方法**授予权限时，**授予数据权限**页面的下半部分提供了用于选择主体和资源的选项。

      选择**让 Lake Formation 权限立即生效**，为主体和资源启用 Lake Formation 权限。  
![\[为 Data Catalog 资源选择混合访问模式的选项。\]](http://docs.aws.amazon.com/zh_cn/lake-formation/latest/dg/images/hybrid-access-grant-option.png)

   1. 选择**授权**。

       当您在指向数据位置的表 A 上选择主体 A 时，如果数据位置是在混合模式下注册的，则为主体 A 提供对该表的位置的 Lake Formation 权限。

------
#### [ AWS CLI ]

   以下是在混合访问模式下选择主体和表的示例。将角色名、 AWS 账户 ID、数据库名称和表名替换为有效值。

   ```
   aws lakeformation create-lake-formation-opt-in --cli-input-json file://file path
   json:
     {
           "Principal": {
               "DataLakePrincipalIdentifier": "arn:aws:iam::<123456789012>:role/<hybrid-access-role>"
           },
           "Resource": {
               "Table": {
                   "CatalogId": "<123456789012>",
                   "DatabaseName": "<hybrid_test>",
                   "Name": "<hybrid_test_table>"
               }
           }
       }
   ```

------

   1. 如果您选择 LF 标签来授予权限，则可以在单独的步骤中选择主体来使用 Lake Formation 权限。您可以通过在左侧导航栏的**权限**下选择**混合访问模式**来执行此操作。

   1.  在**混合访问模式**页面的下半部分，选择**添加**将资源和主体添加到混合访问模式下。

   1.  在**添加资源和主体**页面上，选择在混合访问模式下注册的目录、数据库和表。

      您可以选择数据库下的 `All tables` 以授予主体访问权限。  
![\[在混合访问模式下添加目录、数据库和表的界面。\]](http://docs.aws.amazon.com/zh_cn/lake-formation/latest/dg/images/hybrid-access-opt-in.png)

   1. 选择要选择在混合访问模式下使用 Lake Formation 权限的主体。
      +  **主体**：您可以选择同一个账户或另一个账户中的 IAM 用户和角色。您还可以选择 SAML 用户和组。
      + **属性**：根据属性选择要授予权限的属性。  
![\[使用属性表达式添加主体和资源的界面。\]](http://docs.aws.amazon.com/zh_cn/lake-formation/latest/dg/images/abac-hybrid-access.png)
      + 输入键值对，根据属性创建授予。在控制台中查看 Cedar 策略表达式。有关 Cedar 的更多信息，请参阅 [What is Cedar? \$1 Cedar 政策语言参考 GuideLink](https://docs.cedarpolicy.com/)。
      + 选择**添加**。

        所有 roles/users 具有匹配属性的 IAM 都被授予访问权限。

   1. 选择**添加**。