注册 Amazon S3 位置 - AWS Lake Formation

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

注册 Amazon S3 位置

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

重要

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

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

开始前的准备工作

查看用于注册位置的角色的要求

注册位置(控制台)
重要

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

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

  2. 在导航窗格的 “管理” 下,选择 “数据湖位置”。

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

  4. (可选,但强烈推荐)选择查看位置权限以查看所选 Amazon S3 位置中所有现有资源及其权限的列表。

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

  5. 对于IAM角色,请选择AWSServiceRoleForLakeFormationDataAccess服务相关角色(默认)或满足中用于注册位置的角色的要求要求的自定义IAM角色。

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

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

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


    有关设置混合访问模式的更多信息,请参阅混合访问模式

  8. 选择注册位置

注册位置 (AWS CLI)
  1. 向 Lake Formation 注册新位置

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

    Replace(替换) <s3-path> 具有有效的 Amazon S3 路径、具有有效 AWS 账户的账号以及 <s3-access-role> 具有注册数据位置权限的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>
  2. 更新向 Lake Formation 注册的位置

    只有使用自定义IAM角色注册了已注册的地点,您才能对其进行编辑。对于使用服务相关角色注册的位置,应取消注册该位置并重新注册。有关更多信息,请参阅 取消注册 Amazon S3 位置

    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
  3. 在混合访问模式下使用联合身份验证注册数据位置
    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

有关更多信息,请参阅RegisterResourceAPI操作。

注意

注册了 Amazon S3 位置后,任何指向该地点(或其任何子位置)的 AWS Glue 表都将返回GetTable调用trueIsRegisteredWithLakeFormation参数的值。有一个已知的限制,即数据目录API操作(如GetTablesSearchTables)不会更新IsRegisteredWithLakeFormation参数的值,而是返回默认值,即 false。建议使用GetTableAPI来查看IsRegisteredWithLakeFormation参数的正确值。