

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

# 注册 Amazon S3 位置
<a name="register-location"></a>

注册亚马逊简单存储服务 AWS Identity and Access Management (Amazon S3) 位置时，必须指定 (IAM) 角色。Lake Formation 在向访问该位置数据的集成 AWS 服务授予临时证书时担任该角色。

**重要**  
避免注册启用了**请求者付费**的 Amazon S3 存储桶。对于在 Lake Formation 中注册的存储桶，用于注册存储桶的角色始终被视为请求者。如果存储桶被其他 AWS 账户访问，则如果该角色与存储桶拥有者属于同一个账户，则该存储桶拥有者需要支付数据访问费用。

您可以使用 AWS Lake Formation 控制台、Lake Formation API 或 AWS Command Line Interface (AWS CLI) 注册亚马逊 S3 地点。

**开始前的准备工作**  
查看[用于注册位置的角色的要求](registration-role.md)。

**注册位置（控制台）**
**重要**  
以下过程假设 Amazon S3 位置与数据目录位于同一个 AWS 账户中，并且该位置中的数据未加密。本章中的其他部分介绍了跨账户注册和加密位置的注册。

1. 打开 AWS Lake Formation 控制台，网址为[https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)。以数据湖管理员或具有 `lakeformation:RegisterResource` IAM 权限的用户身份登录。

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

1. 选择**注册位置**，然后选择**浏览**以选择 Amazon Simple Storage Service (Amazon S3) 路径。

1. （可选，但强烈推荐）选择**查看位置权限**以查看所选 Amazon S3 位置中所有现有资源及其权限的列表。

   注册所选位置可能会导致 Lake Formation 用户可以访问该位置已有的数据。查看此列表有助于确保现有数据保持安全。

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

   只有在使用自定义 IAM 角色注册已注册位置时，您才能更新该位置或其他详细信息。要编辑使用服务相关角色注册的位置，应取消注册该位置，然后重新注册。

1. 选择 “**启用数据目录联**合” 选项，允许 Lake Formation 代入角色并向集成 AWS 服务提供临时凭证，以访问联合数据库下的表。如果某个位置已注册到 Lake Formation，并且您希望对联合数据库下的表使用同一位置，则需要使用**启用数据目录联合身份验证**选项注册该同一位置。

1. 选择**混合访问模式**以默认不启用 Lake Formation 权限。当您在混合访问模式下注册 Amazon S3 位置时，您可以通过选择该位置下的数据库和表的主体来启用 Lake Formation 权限。 

   有关设置混合访问模式的更多信息，请参阅[混合访问模式](hybrid-access-mode.md)。

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

**注册位置 (AWS CLI)**

1. 

**向 Lake Formation 注册新位置**

   此示例使用服务相关角色注册位置。您可以改用 `--role-arn` 参数来提供自己的角色。

   *<s3-path>*替换为有效的 Amazon S3 路径、*<s3-access-role>*使用有效 AWS 账户的账号以及有权注册数据位置的 IAM 角色。
**注意**  
如果已注册位置是使用服务相关角色注册的，则无法编辑该位置的属性。

   ```
   aws lakeformation register-resource \
    --resource-arn arn:aws:s3:::<s3-path> \
    --use-service-linked-role
   ```

   以下示例使用自定义角色注册位置。

   ```
   aws lakeformation register-resource \
    --resource-arn arn:aws:s3:::<s3-path> \
    --role-arn arn:aws:iam::<123456789012>:role/<s3-access-role>
   ```

1. 

**更新向 Lake Formation 注册的位置**

   仅当使用自定义 IAM 角色注册已注册位置时，您才能对其进行编辑。对于使用服务相关角色注册的位置，应取消注册该位置并重新注册。有关更多信息，请参阅 [取消注册 Amazon S3 位置](unregister-location.md)。

   ```
   aws lakeformation update-resource \
    --role-arn arn:aws:iam::<123456789012>:role/<s3-access-role>\
    --resource-arn arn:aws:s3:::<s3-path>
   ```

   ```
   aws lakeformation update-resource \
    --resource-arn arn:aws:s3:::<s3-path> \
    --use-service-linked-role
   ```

1. 

**在混合访问模式下使用联合身份验证注册数据位置**

   ```
   aws lakeformation register-resource \
    --resource-arn arn:aws:s3:::<s3-path> \
    --role-arn arn:aws:iam::<123456789012>:role/<s3-access-role> \
    --hybrid-access-enabled
   ```

   ```
   aws lakeformation register-resource \
    --resource-arn arn:aws:s3:::<s3-path> \
    --role-arn arn:aws:iam::<123456789012>:role/<s3-access-role> \
    --with-federation
   ```

   ```
   aws lakeformation update-resource \
    --resource-arn arn:aws:s3:::<s3-path> \
    --role-arn arn:aws:iam::<123456789012>:role/<s3-access-role> \
    --hybrid-access-enabled
   ```

有关更多信息，请参阅 [RegisterResource](https://docs.aws.amazon.com/lake-formation/latest/APIReference/API_RegisterResource.html)API 操作。

**注意**  
注册了 Amazon S3 位置后，任何指向该地点（或其任何子位置）的 AWS Glue 表都将返回`GetTable`调用`true`中`IsRegisteredWithLakeFormation`参数的值。存在一个已知限制，即数据目录 API 操作（如 `GetTables` 和 `SearchTables`）不会更新 `IsRegisteredWithLakeFormation` 参数的值，并返回默认值 false。建议使用 `GetTable` API 查看 `IsRegisteredWithLakeFormation` 参数的正确值。