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

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

设置 Amazon Lake Formation

要开始设置为使用 Lake Formation,请完成以下任务:

完成初始 Amazon 配置任务

使用Amazon Lake Formation您必须首先完成以下任务:

注册Amazon

当你注册时Amazon,您的Amazon Web Services 账户已在自动注册所有服务Amazon,包括Lake Formation. 您只需为使用的服务付费。

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

创建 Amazon Web Services 账户

  1. 打开 https://portal.aws.amazon.com/billing/signup

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

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

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

创建 IAM 管理员用户

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

如果你注册了Amazon但尚未为自己创建管理 IAM 用户,您可以使用 IAM 控制台创建。如果您不熟悉如何使用控制台,请参阅使用 Amazon Web Services Management Console中的概述内容。

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

  1. 选择 Root user(根用户)并输入您的 Amazon Web Services 账户 电子邮件地址,以账户拥有者身份登录 IAM 控制台。在下一页上,输入您的密码。

    注意

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

  2. 在导航窗格中,选择 Users(用户),然后选择 Add users(添加用户)。

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

  4. 选中 Amazon Web Services Management Console access (Amazon Web Services Management Console 管理控制台访问)旁边的复选框。然后选择自定义密码,并在文本框中输入新密码。

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

  6. 选择 Next:。Permissions (下一步:权限)

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

  8. 选择创建组

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

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

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

    注意

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

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

  13. 选择 Next:。标签

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

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

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

作为 IAM 用户登录

通过选择 IAM user (IAM 用户) 并输入您的Amazon Web Services 账户 ID 或账户别名来登录 IAM 控制台。在下一页上,输入您的 IAM 用户名和密码。

注意

为方便起见,Amazon登录页面使用浏览器 Cookie 记住您的 IAM 用户名和账户信息。如果您之前以其他用户身份登录过,请选择此按钮下面的登录链接,返回登录主页。在此处,您可以输入要重新导向到您账户 IAM 用户登录页面的 Amazon Web Services 账户 ID 或账户别名。

为工作流创建 IAM 角色

与Amazon Lake Formation,你可以使用工作流. 工作流程定义数据源和将数据导入数据湖的时间表。您可以使用蓝图或者 Lake Formation 提供的模板。

在创建工作流时,您必须为其分配一个Amazon Identity and Access Management(IAM) 角色,用于向 Lake Formation 授予数据所需的必要权限。

以下过程假定您熟悉 IAM。

为工作流创建 IAM 角色

  1. 使用打开 IAM 控制台:https://console.amazonaws.cn/iam以您在中创建的 IAM 管理员用户身份登录。创建 IAM 管理员用户或者作为 IAM 用户AdministratorAccess Amazon托管策略。

  2. 在导航窗格中,选择角色,那么创建角色.

  3. 在存储库的创建角色页面上,选择Amazon服务,然后选择Glue. 选择 Next(下一步)。

  4. 在存储库的添加权限页面上,搜索AWSGlueServiceRole托管策略,然后选中列表中策略名称旁的复选框。然后完成创建角色向导,命名角色LakeFormationWorkflowRole. 要完成,请选择创建角色.

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

  6. 关于角色摘要页面,在Permissions (权限)选项卡上,选择添加内联策略,然后添加以下内联策略。该策略的建议名称是LakeFormationWorkflow.

    重要

    在以下策略中,替换<account-id>使用有效Amazon Web Services 账户数量。

    { "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. 如果您正在提取数据湖位置以外的数据,请添加一个内联策略,授予读取源数据的权限。

创建数据湖管理员

数据湖管理员最初是唯一的Amazon Identity and Access Management(IAM) 用户或角色,可以向任何委托人(包括自己)授予对数据位置和数据目录资源的 Lake Formation 权限。有关数据湖管理员功能的更多信息,请参阅。隐含 Lake Formation. 默认情况下,Lake Formation 允许您创建多达 30 个数据湖管理员。

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

创建数据湖管理员需要以下权限。这些区域有:AdministratorIAM 用户隐式拥有这些权限。

  • lakeformation:PutDataLakeSettings

  • lakeformation:GetDataLakeSettings

如果你向用户授予AWSLakeFormationDataAdmin策略,该用户将无法创建额外的 Lake Formation 管理员用户。

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

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

    注意

    我们建议您不要选择具有AdministratorAccess Amazon托管策略)成为数据湖管理员。

    附加以下内容Amazon针对用户的托管策略:

    策略 必需? 注意
    AWSLakeFormationDataAdmin 必需 基本数据湖管理员权限。
    AWSGlueConsoleFullAccess, CloudWatchLogsReadOnlyAccess 可选 如果数据湖管理员将对从 Lake Formation 蓝图创建的工作流进行故障排除,请附加这些策 这些策略使数据湖管理员能够在Amazon Glue控制台和Amazon CloudWatch Logs控制台。有关工作流的信息,请参阅。在 Lake Formation 中使用工作流程导入数.
    AWSLakeFormationCrossAccountManager 可选 附加此策略以使数据湖管理员能够授予和撤销对数据目录资源的跨账户权限。有关更多信息,请参阅 Lake Formation 中的跨账户访问
    AmazonAthenaFullAccess 可选 如果数据湖管理员将在中运行查询,请附加此策略Amazon Athena.
  2. 附加以下内联策略,该策略授予数据湖管理员创建 Lake Formation 服务相关角色的权限。该策略的建议名称是LakeFormationSLR.

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

    重要

    在以下所有政策中,替换<account-id>使用有效Amazon账号。

    { "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>使用有效Amazon账号。

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

    该策略的建议名称是RAMAccess.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ram:AcceptResourceShareInvitation", "ram:RejectResourceShareInvitation", "ec2:DescribeAvailabilityZones", "ram:EnableSharingWithAwsOrganization" ], "Resource": "*" } ] }
  5. 打开Amazon Lake Formation在控制台https://console.aws.amazon.com/lakeformation/以您在中创建的 IAM 管理员用户身份登录。创建 IAM 管理员用户或作为任何 IAM 管理用户。

  6. 如果欢迎来到 Lake Formation窗口出现,选择您在步骤 1 中创建或选择的 IAM 用户,然后选择。试用.

  7. 如果您没有看到欢迎来到 Lake Formation窗口中,然后执行以下步骤来配置 Lake Formation 管理员。

    1. 在导航窗格中的下,Permissions (权限),选择管理角色和任务. 在数据湖管理员控制台页面上的部分,选择选择管理员.

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

混淆代理人预防

混淆代理问题是一个安全问题,即没有执行操作权限的实体可能会迫使更具权限的实体执行该操作。有关更多信息,请参阅 跨服务混淆代理问题防范

更改默认权限模型

Lake Formation 从启用 “仅使用 IAM 访问控制” 设置开始,以便与现有的兼容Amazon Glue Data Catalog行为。我们建议您禁用这些设置,以便使用 Lake Formation 权限启用细粒度和基于标记的访问控制。

有关更多信息,请参阅 更改数据湖的默认安全设置

重要

如果你已经存在Amazon Glue Data Catalog数据库和表格,请勿按照本节中的说明进行操作。而是应按照升级Amazon Glue的数据权限Amazon Lake Formation模型中的说明操作。

警告

如果您具有在数据目录中创建数据库和表的自动化,则以下步骤可能会导致自动化和下游提取、转换和加载 (ETL) 作业失败。只有在修改现有流程或向所需委托人授予明确的 Lake Formation 权限后,才能继续操作。有关 Lake Formation 权限的信息,请参阅Lake Formation 权限参考.

更改默认数据目录设置

  1. 在 Lake Formation 控制台中继续使用https://console.aws.amazon.com/lakeformation/. 确保您以您在中创建的 IAM 管理员用户身份登录。创建 IAM 管理员用户或者作为 IAM 用户AdministratorAccess Amazon托管策略。

  2. 修改数据目录设置:

    1. 在导航窗格中的下,数据目录,选择设置.

    2. 清除两个复选框并选择Save(保存).

      
              “数据目录设置” 对话框具有副标题 “新创建的数据库和表的默认权限”,并有两个复选框,如文本所述。
  3. 撤销IAMAllowedPrincipals数据库创建者的权限。

    1. 在导航窗格中的下,Permissions (权限),选择管理角色和任务.

    2. 管理角色和任务控制台页面,在数据库创建部分中,选择IAMAllowedPrincipals组,然后选择撤销.

      这些区域有:撤销出现权限对话框,显示IAMAllowedPrincipals具有创建数据库权限。

    3. 选择撤销.

创建其他 Lake Formation 用户

创建 IAM 用户以访问中的数据湖Amazon Lake Formation. 此用户拥有查询数据湖的最低权限集。

创建具有 Lake Formation 数据访问权限的非管理员用户

  1. 使用打开 IAM 控制台:https://console.amazonaws.cn/iam以您在中创建的 IAM 管理员用户身份登录。创建 IAM 管理员用户或者作为 IAM 用户AdministratorAccess Amazon托管策略。

  2. 选择用户,然后添加用户.

  3. 输入用户的名称,然后选择密码-Amazon Web Services Management Console访问访问方法。配置用户密码要求。您可选择启用。访问密钥-编程访问对于这个用户。

    选择下一步:权限

  4. Set permissions (设置权限) 下,选择 Attach existing policies directly (直接附加现有策略)。EnterAthena中的筛选策略文本字段。在结果列表中,选中复选框AmazonAthenaFullAccess.

  5. 选择创建策略按钮。在创建策略页面上,选择JSON选项卡。将以下代码复制并粘贴到策略编辑器中。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:GetTable", "glue:GetTables", "glue:SearchTables", "glue:GetDatabase", "glue:GetDatabases", "glue:GetPartitions", "lakeformation:GetResourceLFTags", "lakeformation:ListLFTags", "lakeformation:GetLFTag", "lakeformation:SearchTablesByLFTags", "lakeformation:SearchDatabasesByLFTags" ], "Resource": "*" } ] }
  6. 选择下一步按钮,直到您看到查看策略页. 例如,输入策略的名称,DatalakeUserBasic. 选择创建策略,然后关闭 “策略” 选项卡或浏览器窗口。

  7. 回到 IAM添加用户窗口中,输入datalake中的筛选策略搜索字段。如果新创建的策略未出现在结果列表中,请选择 “刷新” 或 “页面重新加载” 按钮。选中复选框以获取DatalakeUserBasic政策。

  8. 选择NEXT: 标签Next: Review.

  9. 在 Review (审核) 页面上,您应该看到DatalakeUserBasic策略和AmazonAthenaFullAccess已为用户选择了策略。选择创建用户以完成设置。

为数据湖配置 Amazon S3 位置

要使用 Lake Formation 来管理和保护数据湖中的数据,您必须首先注册 Amazon S3 位置。当您注册某个位置时,该 Amazon S3 路径和该路径下的所有文件夹都将被注册,这使 Lake Formation 能够强制执行存储级别权限。当用户从 Amazon Athena 等集成引擎请求数据时,Lake Formation 提供数据访问权限,而不是使用用户权限。

注册位置时,您可以指定一个 IAM 角色,该角色授予该位置的读/写权限。Lake Formation 在向集成式提供临时证书时担任该角色Amazon请求访问注册 Amazon S3 位置中的数据的服务。您可以指定 Lake Formation 服务相关角色 (SLR) 或创建自己的角色。

在以下情况下使用自定义角色:

如中所述,您选择的角色必须具有必要的权限。注册位置时使用的角色的要求. 有关如何注册 Amazon S3 位置的说明,请参阅。将 Amazon S3 位置添加到您的数据湖.

准备使用受管理的表和行级安全性

Lake Formation 管理的表、行级筛选和存储优化功能需要额外的配置才能使用它们。

准备使用受管理的表

要在 Lake Formation 中创建受管辖的表,您必须首先在 Lake Formation 中注册 Amazon S3 位置,然后指定一个包含所有必需权限的角色,如前面所述为数据湖配置 Amazon S3 位置. 然后,您需要向将与受管理表进行交互的用户或角色授予权限。有关数据访问权限的更多信息,请参阅。底层数据访问控制。

要创建受管理的表,用户必须是数据湖管理员或具有以下权限的用户:

  • Lake FormationCREATE_TABLE对目标数据库的权限

    • 这些区域有:Amazon Identity and Access Management(IAM) 权限glue:CreateTable

    • 中的数据位置权限Lake Formation,如中所述授予数据位置权限. 数据位置权限控制创建或更改指向特定 Amazon S3 位置的数据目录资源的能力。

    要访问受管理表中的数据,委托人需要对受管理表的 SELECT 权限和 IAM 权限才能调用:

    lakeformation:StartQueryPlanning lakeformation:GetQueryState lakeformation:GetWorkUnits
 lakeformation:GetWorkUnitResults
 lakeformation:StartTransaction
 lakeformation:CommitTransaction
 lakeformation:CancelTransaction lakeformation:ExtendTransaction

为用户创建和分配用于创建和使用受管理表的角色并为其分配

  1. 使用打开 IAM 控制台:https://console.amazonaws.cn/iam以您在中创建的 IAM 管理员用户身份登录。创建 IAM 管理员用户或者作为 IAM 用户AdministratorAccess Amazon托管策略。

  2. 在导航窗格中,选择角色,那么创建角色.

  3. 附加权限策略部分,选择创建策略. 在新打开的浏览器窗口中,创建一个用于角色的新策略。

    1. 创建策略页面上,选择 JSON 选项卡。将以下 JSON 代码复制到策略编辑器字段中。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:GetTable", "glue:GetPartitions", "glue:UpdateTable" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "lakeformation:StartQueryPlanning", "lakeformation:GetQueryState", "lakeformation:GetWorkUnits", "lakeformation:GetWorkUnitResults", "lakeformation:GetQueryStatistics", "lakeformation:StartTransaction", "lakeformation:CommitTransaction", "lakeformation:CancelTransaction", "lakeformation:ExtendTransaction", "lakeformation:DescribeTransaction", "lakeformation:ListTransactions", "lakeformation:GetTableObjects", "lakeformation:UpdateTableObjects", "lakeformation:DeleteObjectsOnCancel" ], "Resource": "*" } ] }

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

      • lakeformation:StartQueryPlanning允许委托人提交处理查询语句的请求。

      • lakeformation:GetQueryState允许委托人查看以前提交的查询的状态。

      • lakeformation:GetWorkUnits允许承担者检索由StartQueryPlanningoperation.

      • lakeformation:GetWorkUnitResults允许承担者查看查询产生的工作单元。

      • lakeformation:GetQueryStatistics允许委托人检索有关计划和执行查询的统计信息。

      • lakeformation:StartTransaction允许委托人和工作开始交易。

      • lakeformation:CommitTransaction允许委托人和作业提交交易。

      • lakeformation:CancelTransaction允许委托人和作业在提交之前停止事务。

      • lakeformation:ExtendTransaction允许委托人和作业指示指定的交易仍处于活动状态且不应取消。

      • lakeformation:DescribeTransaction允许委托人和作业列出有关交易的信息。

      • lakeformation:ListTransactions允许委托人和作业查看有关事务及其状态的元数据。

      • lakeformation:GetTableObjects允许委托人和作业列出存储在数据湖中的表对象。

      • lakeformation:UpdateTableObjects允许委托人和作业更新存储在数据湖中的表对象。

      • lakeformation:DeleteObjectsOnCancel允许委托人和作业指定 Amazon S3 对象的列表,这些对象将在当前事务期间写入,如果事务被取消,该对象可以自动删除。

    2. 对于需要管理受管理表的数据压缩和垃圾回收设置的用户,请将以下权限添加到上述策略:

      "lakeformation:UpdateTableStorageOptimizer", "lakeformation:ListTableStorageOptimizers"
    3. 选择 Next:Tags (下一步: 标签)

    4. 您可选择性地添加标签,然后选择后续:审核

    5. 在 Review (审核策略) 页面上,输入策略的名称。LakeFormationGovernedTables,然后选择创建策略.

    6. 您可以关闭此窗口,然后返回到创建角色页.

  4. 在存储库的创建角色页面上,选择刷新按钮,然后搜索LakeFormationGovernedTables您在上一步中创建的策略。选中列表中策略名称旁的复选框。

  5. 完成创建角色通过选择向导下一步直到你到达审核页. 输入角色的名称,例如LakeFormationTransactionsRole. 要完成,请选择创建角色.

  6. 回到角色页面,搜索LakeFormationTransactionsRole然后选择角色名称。

  7. 关于角色摘要页面,在Permissions (权限)选项卡中,验证角色是否具有LakeFormationGovernedTables附加策略。

现在,您可以将此角色分配给使用受管理表的承担者。

准备对受管理的表使用自动数据压缩

要为受管理的表配置数据压缩,委托人必须满足以下条件:

  • 成为创建表的用户或成为数据湖管理员用户

  • 拥有glue:UpdateTableglue:GetTable和 Lake FormationALTER桌子上的许可

此外,在 Lake Formation 中注册 Amazon S3 数据湖位置时使用的角色必须包含以下权限才能使用数据压缩:

  • s3:PutObjectlakeformation:UpdateTableObjects

  • lakeformation:StartTransactionlakeformation:CommitTransactionlakeformation:CancelTransactionlakeformation:DeleteObjectsOnCancel, 和logs:CreateLogGrouplogs:CreateLogStreamlogs:PutLogEvents,到 "arn:aws:logs:*:*<**ACCOUNT ID**>*:log-group:/aws-lakeformation-acceleration/compaction/logs:*" 如以下示例所示。

    { "Statement": [ { "Effect":"Allow", "Action":[ "s3:PutObject" ], "Resource": "arn:aws:s3:::<bucket>/<prefix>/*" }, { "Effect":"Allow", "Action":[ "lakeformation:StartTransaction", "lakeformation:CommitTransaction", "lakeformation:CancelTransaction", "lakeformation:DeleteObjectsOnCancel" ], "Resource": "*" }, { "Effect":"Allow", "Action":[ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*<**ACCOUNT ID**>*:log-group:/aws-lakeformation-acceleration/compaction/logs:*" } ] }
  • 如果数据目录已加密,则Amazon KMS密钥策略必须包括与的信任关系。lakeformation.amazonaws.com,例如以下示例。

    { "Effect": "Allow", "Principal": { "Service": [ "lakeformation.amazonaws.com" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:DescribeKey" ], "Resource": "*" }

准备使用行级别安全性

当您授予对数据目录表的 Lake Formation 权限时,可以包括数据筛选规范,以限制对查询结果中和内部某些数据的访问Amazon GlueETL 作业。Lake Formation 使用数据过滤来实现列级安全性、行级安全性和单元格级安全性。您可以通过创建命名来实现列级、行级和单元格级安全性数据筛选器并在授予时指定数据筛选器SELECTLake Formation 许可在桌子上。创建数据筛选器时,您需要为需要包含的行提供一组列和筛选器表达式。这允许您限制对查询结果中以及与 Lake Formation 集成的引擎中的某些数据的访问,例如 Athena 和Amazon GlueETL 作业。

有关数据筛选器的更多信息,请参阅Lake Formation 中的数据过滤和细胞级安全.

为表配置行级别安全性

  1. 确定您要限制访问的内容并创建数据过滤器。有关如何创建数据筛选器的说明,请参阅。创建数据筛选器.

  2. GrantDESCRIBE向能够查看数据筛选器的用户授予数据过滤器的权限。

    创建数据筛选器时,只有你可以查看它。要允许其他承担者查看和使用数据筛选器,您可以授予DESCRIBE对它的许可。

  3. 在授予时指定数据筛选器SELECTLake Formation 向校长提供桌子的许可。

  4. 将 IAM 权限分配给将使用单元格级筛选器查询表的委托人。使用单元格级筛选查询表的委托人必须具有以下 IAM 权限:

    lakeformation:StartQueryPlanning lakeformation:GetQueryState lakeformation:GetWorkUnits lakeformation:GetWorkUnitResults

(可选)允许在 Amazon EMR 集群上进行数据筛选

如果您打算使用 Amazon EMR 分析和处理数据湖中的数据,则必须选择加入才能允许 Amazon EMR 集群访问由 Lake Formation 管理的数据。如果您不选择加入,则 Amazon EMR 集群将无法访问向 Lake Formation 注册的 Amazon S3 位置的数据。

Lake Formation 支持列级权限,以限制对表中特定列的访问。集成分析服务,例如Amazon Athena、Amazon Redshift Spectrum 和 Amazon EMR 从Amazon Glue Data Catalog. 在查询响应中实际筛选列是集成服务的责任。EMR 集群不完全由Amazon. 因此,EMR 管理员有责任适当保护群集,以避免未经授权访问数据。

通过选择允许在 EMR 集群上进行数据筛选,即表示您已经正确保集群的安全。

选择加入以允许在 Amazon EMR 集群上进行数据筛选(控制台)

  1. 在 Lake Formation 控制台中继续使用https://console.aws.amazon.com/lakeformation/. 确保您以拥有 Lake Formation IAM 权限的委托人身份登录PutDataLakeSettingsAPI 操作。您在中创建的 IAM 管理员用户创建 IAM 管理员用户有这个权限。

  2. 在导航窗格中的下,Permissions (权限),选择筛选外部数据.

  3. 在存储库的筛选外部数据页面上,执行以下操作:

    1. 启用 。允许 Amazon EMR 集群过滤由 Lake Formation 管理的数据.

    2. 适用于Amazon账户 ID,输入账户 IDAmazon具有 Amazon EMR 集群的账户,这些账户将执行数据筛选。按Enter在每个账户 ID 之后。

    3. 选择 Save(保存)。

(可选)授予对数据目录加密密钥的访问权限

如果Amazon Glue Data Catalog已加密,授予Amazon Identity and Access Management上的 (IAM) 权限Amazon KMS是任何需要授予对数据目录数据库和表格的 Lake Formation 权限的委托人的关键。

有关更多信息,请参见《Amazon Key Management Service 开发人员指南》。