设置 AWS Lake Formation - AWS Lake Formation
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

设置 AWS Lake Formation

完成以下任务以设置使用 Lake Formation:

注册 AWS

当您注册 AWS 时,您的 AWS 账户会自动注册 AWS 中的所有服务,包括 Lake Formation。您只需为使用的服务付费。

如果您已有一个 AWS 账户,请跳到下一个任务。如果您还没有 AWS 账户,请使用以下步骤创建。

创建 AWS 账户

  1. 打开 https://portal.amazonaws.cn/billing/signup

  2. 按照屏幕上的说明进行操作。

    在注册时,您将接到一通电话,要求您使用电话键盘输入一个验证码。

请记下您的 AWS 账号,因为在下一个任务中您会用到它。

创建 IAM 管理员用户

AWS 中的服务 (例如 Lake Formation) 要求您在访问时提供凭证,以便服务可以确定您是否有权限访问其资源。我们建议您不要使用AWS帐户的凭证访问AWS。相反,我们建议您使用 AWS Identity and Access Management (IAM)。您可以创建 IAM 用户,然后将用户添加到 IAM 组,或授予此用户管理权限。然后,您可以使用的凭证访问AWS IAM 用户。

如果您注册了AWS,但尚未创建管理 IAM 用户,您可以使用 IAM 控制台。如果您不熟悉如何使用控制台,请参阅使用 AWS 管理控制台中的概述内容。

自行创建管理员用户并将该用户添加到管理员组(控制台)

  1. 通过选择 根用户,然后输入您的 AWS 账户的电子邮件地址,以账户拥有者身份登录到 IAM 控制台。在下一页上,输入您的密码。

    注意

    强烈建议您遵守以下使用 Administrator IAM 用户的最佳实践,妥善保存根用户凭证。只在执行少数账户和服务管理任务时才作为根用户登录。

  2. 在导航窗格中,选择用户,然后选择添加用户

  3. 对于 User name (用户名),输入 Administrator

  4. 选中 AWS 管理控制台 访问 旁边的复选框。然后选择自定义密码,并在文本框中输入新密码。

  5. (可选)默认情况下,AWS 要求新用户在首次登录时创建新密码。您可以清除 User must create a new password at next sign-in (用户必须在下次登录时创建新密码) 旁边的复选框以允许新用户在登录后重置其密码。

  6. 选择下一步: 权限

  7. 设置权限下,选择将用户添加到组

  8. 选择创建组

  9. Create group (创建组) 对话框中,对于 Group name (组名称),输入 Administrators

  10. 选择 Filter policies (筛选策略),然后选择 AWS managed-job function (AWS 托管的工作职能) 以筛选表内容。

  11. 在策略列表中,选中 AdministratorAccess 的复选框。然后选择 Create group (创建组)

    注意

    您必须先激活 IAM 用户和角色对账单的访问权限,然后才能使用 AdministratorAccess 权限访问 AWS Billing and Cost Management 控制台。为此,请按照“向账单控制台委派访问权限”教程第 1 步中的说明进行操作。

  12. 返回到组列表中,选中您的新组所对应的复选框。如有必要,选择 Refresh 以在列表中查看该组。

  13. 选择下一步: 标签

  14. (可选)通过以键值对的形式附加标签来向用户添加元数据。有关在 IAM 中使用标签的更多信息,请参阅 IAM 用户指南 中的标记 IAM 实体

  15. 选择 Next: Review (下一步: 审核) 以查看要添加到新用户的组成员资格的列表。如果您已准备好继续,请选择 Create user

您可使用此相同的流程创建更多的组和用户,并允许您的用户访问 AWS 账户资源。要了解有关使用策略限制用户对特定 AWS 资源的权限的信息,请参阅访问管理示例策略

创建 IAM 工作流的角色

有 AWS Lake Formation,您可以使用导入数据 工作流. 工作流程定义了将数据导入的数据来源和计划。您可以使用 蓝图、或模板, Lake Formation 提供。

创建工作流程时,您必须为其分配 AWS Identity and Access Management (人IAM)授予的角色 Lake Formation 必要的权限,以拷贝数据。

以下程序假设熟悉 IAM.

要创建 IAM 工作流角色

  1. 打开 IAM 控制台位于 https://console.aws.amazon.com/iam 并作为 IAM 创建的管理员用户 创建 IAM 管理员用户 或作为IAM用户使用 AdministratorAccess AWS管理策略。

  2. 在导航窗格中,选择 角色,然后 创建角色.

  3. 创建角色 页面,选择 AWS服务,然后选择 胶水. 选择 Next:Permissions (下一步: 权限)

  4. 搜索 AWSGlueServiceRole 管理策略,并选中列表中策略名称旁边的复选框。然后完成 创建角色 向导,命名角色 LakeFormationWorkflowRole。要完成,请选择 创建角色.

  5. 回到 角色 页面,搜索 LakeFormationWorkflowRole 并选择角色名称。

  6. 在职 总结 页面,在 权限 选项卡,选择 添加在线策略,并添加以下内联策略。建议该政策的名称是 LakeFormationWorkflow.

    重要

    在以下策略中,替换 <account-id> 使用有效的AWS帐号。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "lakeformation:GrantPermissions" ], "Resource": "*" }, { "Effect": "Allow", "Action": ["iam:PassRole"], "Resource": [ "arn:aws:iam::<account-id>:role/LakeFormationWorkflowRole" ] } ] }

    以下是此策略中权限的简要说明:

    • lakeformation:GetDataAccess 使工作流创建的作业能够写入到目标位置。

    • lakeformation:GrantPermissions 允许工作流程授予 SELECT 目标表的权限。

    • iam:PassRole 使服务能够承担 LakeFormationWorkflowRole 创建爬网器和作业,并将角色附加到已创建的爬网器和作业。

  7. 验证角色 LakeFormationWorkflowRole 附有两个政策。

  8. 如果您正在摄取位于数据湖位置之外的数据,请添加授予读取源数据权限的内嵌策略。

创建DataLake管理员

数据湖管理员最初是唯一的 AWS Identity and Access Management (人IAM)可以授予的用户或角色 Lake Formation 数据位置的权限和 Data Catalog 资源给任何承运人(包括自己)。有关数据湖管理员功能的更多信息,请参阅 隐含的 Lake Formation 权限.

您可以使用 Lake Formation 控制台或 PutDataLakeSettings 操作 Lake Formation API。

要创建数据湖管理员,需要以下权限。的 Administrator IAM用户具有这些隐式权限。

  • lakeformation:PutDataLakeSettings

  • lakeformation:GetDataLakeSettings

要创建数据湖管理员(控制台)

  1. 如果 IAM 数据湖管理员的用户不存在,请使用 IAM 控制台以创建它。否则,查看现有的 IAM 将成为数据湖管理员的用户。

    注意

    我们建议您不要选择 IAM 管理用户(具有 AdministratorAccess AWS managedpolicy)作为datalake管理员。

    附加以下内容 AWS 管理策略:

    策略 必填? 备注
    AWSLakeFormationDataAdmin 必需 基本数据湖管理员权限。
    AWSGlueConsoleFullAccess, CloudWatchLogsReadOnlyAccess 可选 如果数据湖管理员将解决从中创建的工作流问题,请附加这些策略 Lake Formation 蓝图。这些策略使数据湖管理员能够在 AWS Glue 控制台和 Amazon CloudWatch Logs 控制台。有关工作流的信息,请参阅 使用中的工作流导入数据 Lake Formation.
    AWSLakeFormationCrossAccountManager 可选 附加此策略以启用数据湖管理员在上授予和撤销跨帐户权限 Data Catalog 资源。有关更多信息,请参阅跨账户访问
    AmazonAthenaFullAccess 可选 如果数据湖管理员将在 Amazon Athena.
  2. 附加以下内联策略,授予数据湖管理员创建 Lake Formation 服务链接角色。建议该政策的名称是 LakeFormationSLR.

    服务链接角色使数据湖管理员能够更轻松地注册 Amazon S3 具有 Lake Formation. 有关 Lake Formation 服务相关角色的更多信息,请参阅对 Lake Formation 使用服务相关角色

    重要

    在以下所有政策中,请更换 <account-id> 使用有效的AWS帐号。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringEquals": { "iam:AWSServiceName": "lakeformation.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "iam:PutRolePolicy" ], "Resource": "arn:aws:iam::<account-id>:role/aws-service-role/lakeformation.amazonaws.com/AWSServiceRoleForLakeFormationDataAccess" } ] }
  3. (可选)附加以下内容 PassRole 用户的内联策略。此策略使数据湖管理员能够创建和运行工作流。的 iam:PassRole 权限使工作流能够承担 LakeFormationWorkflowRole 创建爬网器和作业,并将角色附加到已创建的爬网器和作业。建议的保单名称为 UserPassRole.

    重要

    Replace <account-id> 使用有效的AWS帐号。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "PassRolePermissions", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<account-id>:role/LakeFormationWorkflowRole" ] } ] }
  4. (可选)如果您的账户将授予或接收交叉账户,请附加此附加内联政策 Lake Formation 权限。此策略使数据湖管理员能够查看和接受 AWS Resource Access Manager (人AWS RAM)资源共享邀请。此外,对于数据湖管理员, AWS Organizations 管理账户,该策略包括启用跨帐户授予组织的权限。有关更多信息,请参阅跨账户访问

    建议该政策的名称是 RAMAccess.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ram:AcceptResourceShareInvitation", "ram:RejectResourceShareInvitation", "ec2:DescribeAvailabilityZones", "ram:EnableSharingWithAwsOrganization" ], "Resource": "*" } ] }
  5. 打开 AWS Lake Formation 控制台位于 https://console.amazonaws.cn/lakeformation/ 并作为 IAM Administrator 您所创建的用户 创建 IAM 管理员用户 或任何IAM管理用户。

  6. 执行下列操作之一:

    • 如果出现欢迎消息,请选择 添加管理员.

    • 在导航窗格中,位于 权限,选择 管理员和数据库创建者. 然后低于 数据湖管理员,选择 授予.

  7. 管理数据湖管理员 对话框,用于 IAM用户和角色,选择 IAM 在第1步中创建或选择的用户,然后选择 保存.

变更 Data Catalog 设置

Lake Formation starts with the "Use only IAM access control" settings enabled for compatibility with existing AWS Glue 数据目录 behavior. We recommend that you disable these settings to enable fine-grained access control with Lake Formation permissions.

For more information, see 更改DataLake的默认安全设置.

重要

If you have existing AWS Glue 数据目录 databases and tables, do not follow the instructions in this section. Instead, follow the instructions in 升级 AWS Glue 数据权限 AWS Lake Formation 型号.

警告

If you have automation in place that creates databases and tables in the Data Catalog, the following steps might cause the automation and downstream extract, transform, and load (ETL) jobs to fail. Proceed only after you have either modified your existing processes or granted explicit Lake Formation permissions to the required principals. For information about Lake Formation permissions, see Lake Formation 权限参考.

To change the default Data Catalog settings

  1. Continue in the Lake Formation console at https://console.amazonaws.cn/lakeformation/. Ensure that you are signed in as the IAM administrator user that you created in 创建 IAM 管理员用户 or as an IAM user with the AdministratorAccess AWS managed policy.

  2. In the navigation pane, under Data catalog, choose Settings.

  3. Clear both check boxes and choose Save.

    
              The Data catalog settings dialog box has the subtitle "Default permissions for
                newly created databases and tables," and has two check boxes, which are described in
                the text.
  4. Sign out of the Lake Formation console and sign back in as the data lake administrator.

  5. In the navigation pane, under Permissions, choose Admins and database creators.

  6. Under Database creators, select the IAMAllowedPrincipals group, and choose Revoke.

    The Revoke permissions dialog box appears, showing that IAMAllowedPrincipals has the Create database permission.

  7. Choose Revoke.

(可选)允许数据筛选 Amazon EMR 群集

如果您打算在数据湖中分析和处理数据, Amazon EMR,您必须选择加入以允许 Amazon EMR 群集以访问由管理的数据 Lake Formation. 如果您不选择加入, Amazon EMR 群集将无法访问中的数据 Amazon S3 注册地点 Lake Formation.

LakeFormation支持列级权限,以限制对表中特定列的访问。集成分析服务,如 Amazon Athena, Amazon Redshift Spectrum,和 Amazon EMR 从检索未筛选的表元数据 AWS Glue 数据目录. 查询响应中的列的实际过滤由集成服务负责。EMR群集并非完全由 AWS. 因此,EMR管理员有责任正确保护群集,以避免未经授权访问数据。

选择“允许对EMR群集进行数据过滤”,即表示您证明您已正确保护了群集。

要选择允许数据筛选,请 Amazon EMR 群集(控制台)

  1. 继续 Lake Formation 控制台位于 https://console.amazonaws.cn/色淀/. 确保您以委托人的身份登录, IAM 权限 Lake Formation PutDataLakeSettings API操作。的 IAM 创建的管理员用户 创建 IAM 管理员用户 具有此权限。

  2. 在导航窗格中,位于 权限,选择 外部数据过滤.

  3. 外部数据过滤 ,请执行以下操作:

    1. 打开 允许AmazonEMR群集过滤由LakeFormation管理的数据.

    2. 对于 AWS帐户 IDs,输入账户 IDs 第页,共页 AWS 账户 Amazon EMR 用于执行数据筛选的群集。按 输入 每个帐户ID之后。

    3. 选择 Save (保存)

(可选)授予访问 Data Catalog 加密密钥

如果 AWS Glue 数据目录 已加密,授予 AWS Identity and Access Management (人IAM)权限 AWS KMS 任何需要授予 Lake Formation 权限 Data Catalog 数据库和表格。

有关更多信息,请参阅 AWS Key Management Service Developer Guide