

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

# 亚马逊与 AWS Lake Formation 混合模式 DataZone 集成
<a name="hybrid-mode"></a>

亚马逊 DataZone 已与 La AWS ke Formation 混合模式集成。这种集成使您能够轻松地通过亚马逊发布和共享您的 AWS Glue 表， DataZone而无需先在 AWS Lake Formation 中注册它们。混合模式允许您开始通过 AWS Lake For AWS mation 管理您的 Glue 表的权限，同时继续保持对这些表的任何现有 IAM 权限。

首先，您可以在 Amazon DataZone 管理控制台中启用**DefaultDataLake**蓝图下的**数据位置注册**设置。

**启用与 AWS Lake Formation 混合模式的集成**

1. 前往位于 [https://console.aws.amazon.com/datazone](https://console.aws.amazon.com/datazone) 的亚马逊 DataZone 控制台，然后使用您的账户凭证登录。

1. 选择 “**查看域**”，然后选择要在其中启用与 AWS Lake Formation 混合模式集成的域。

1. 在域详细信息页面上，导航到**蓝图**选项卡。

1. 从**蓝图**列表中选择**DefaultDataLake**蓝图。

1. 确保 DefaultDataLake 蓝图已启用。如果未启用此蓝图，请按照[在拥有 Amazon DataZone 域 AWS 名的账户中启用内置蓝图](working-with-blueprints.md#enable-default-blueprint)中的步骤操作，在您的 AWS 账户中启用它。

1. 在 DefaultDataLake 详细信息页面上，打开**配置**选项卡，然后选择页面右上角的**编辑**按钮。

1. 选中**数据位置注册**下方的框以启用数据位置注册。

1. 对于数据位置管理角色，您可以创建新 IAM 角色或选择现有 IAM 角色。亚马逊 DataZone 使用此角色通过 Lake Formation 混合访问模式管理对为数据湖选择的 Amazon S3 存储桶的读/写权限。 AWS 有关更多信息，请参阅 [AmazonDataZone<region>S3Manage--<domainId>](AmazonDataZoneS3Manage.md)。

1. 或者，如果您不希望亚马逊在混合模式下自动注册某些 Amazon S3 地点 DataZone ，则可以选择将其排除在外。为此，请完成以下步骤：
   + 选择切换按钮以排除指定的 Amazon S3 位置。
   + 提供要排除的 Amazon S3 存储桶的 URI。
   + 要添加其他存储桶，请选择**添加 S3 位置**。
**注意**  
Amazon DataZone 仅允许排除 S3 根位置。系统将自动从注册中排除根 S3 位置路径内的任何 S3 位置。
   + 选择**保存更改**。

 在 AWS 账户中启用数据位置注册设置后，当数据使用者订阅通过 IAM 权限管理的 AWS Glue 表时，亚马逊 DataZone 将首先以混合模式注册该表的 Amazon S3 位置，然后通过 La AWS ke Formation 管理表的权限，向数据使用者授予访问权限。这样可以确保使用新授予的 La AWS ke Formation 权限继续存在表上的 IAM 权限，而不会中断任何现有工作流程。

## 在亚马逊启用 AWS Lake Formation 混合模式集成时如何处理加密的亚马逊 S3 位置 DataZone
<a name="hybrid-mode-encryption"></a>

如果您使用的是使用客户托 AWS 管或托管 KMS 密钥加密的 Amazon S3 位置，则 **AmazonDataZoneS3Manag** e 角色必须有权使用 KMS 密钥加密和解密数据，或者 KMS 密钥策略必须向该角色授予密钥使用权限。

如果您的 Amazon S3 位置使用 AWS 托管密钥加密，请向该**AmazonDataZoneDataLocationManagement**角色添加以下内联策略：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
        }
    ]
}
```

------

如果您的 Amazon S3 位置已使用客户自主管理型密钥进行加密，请执行以下操作：

1. 在 [https://console.aws.amazon.com/ AWS kms 上打开 KMS](https://console.aws.amazon.com/kms) 控制台，然后以 AWS 身份和访问管理 (IAM) 管理用户或可以修改用于加密位置的 KMS 密钥策略的用户身份登录。

1. 在导航窗格中，选择**客户自主管理型密钥**，然后选择所需的 KMS 密钥的名称。

1. 在 KMS 密钥详细信息页面上，选择**密钥策略**选项卡，然后执行以下任一操作将您的自定义角色或 Lake Formation 服务相关角色添加为 KMS 密钥用户：
   + 如果显示默认视图（包括 “密钥管理员”、“密钥删除”、“密钥用户” 和 “其他 AWS 账户” 部分），请在 “**密钥用户**” 部分下添加**AmazonDataZoneDataLocationManagement**角色。
   + 如果显示密钥策略 (JSON)，请编辑策略以向 “允许使用密钥” 对象添加**AmazonDataZoneDataLocationManagement**角色，如以下示例所示

     ```
     ...
             {
                 "Sid": "Allow use of the key",
                 "Effect": "Allow",
                 "Principal": {
                     "AWS": [
                         "arn:aws:iam::111122223333:role/service-role/AmazonDataZoneDataLocationManage-<region>-<domain-id>"
                     ]
                 },
                 "Action": [
                     "kms:Encrypt",
                     "kms:Decrypt",
                     "kms:ReEncrypt*",
                     "kms:GenerateDataKey*",
                     "kms:DescribeKey"
                 ],
                 "Resource": "*"
             },
             ...
     ```

**注意**  
如果 KMS 密钥或 Amazon S3 位置与数据目录不在同[一个 AWS 账户中，请按照跨 AWS 账户注册加密的 Amazon S3 位置](https://docs.aws.amazon.com/lake-formation/latest/dg/register-cross-encrypted.html)中的说明进行操作。