本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设置 Amazon Lake Formation
完成以下任务以开始设置 Lake Formation:
使用创建资源Amazon CloudFormation模板
你也可以使用Amazon CloudFormation模板用于在您的账户中执行最初的Lake Formation 设置。
这些区域有:Amazon CloudFormationstack 执行上述步骤 2 到 7,步骤 4 除外。执行更改默认权限模型从 Lake Formation 控制台手动获取。
登录到Amazon CloudFormation控制台处的https://console.aws.amazon.com/cloudformation
作为美国东部(弗吉尼亚北部)区域的 IAM 用户。 选择启动堆栈
. 选择下一步在创建堆栈屏幕。
输入堆栈名称。
适用于DatalakeAdminName和DatalakeAdminPassword,输入您的 IAM 用户名和密码。
适用于DatalakeUser1 个名字和DatalakeUser1 个密码,输入您的 IAM 用户名和数据湖分析师用户的密码。
适用于DataLakeBucketName,输入将要创建的新存储桶名称。
选择 Next(下一步)。
在下一页上,选择下一步.
查看最后一页上的详细信息,然后选择我承认这一点Amazon CloudFormation可能会创建 IAM 资源。
选择Create(创建)。
创建堆栈可能需要长达两分钟。
清理资源
如果你想清理Amazon CloudFormation堆栈资源:
取消注册您的堆栈创建并注册为数据湖位置的 Amazon S3 存储桶。
删除存储在设备上的Amazon CloudFormation堆栈。这将删除堆栈创建的所有资源。
完成初始 Amazon 配置任务
使用Amazon Lake Formation您必须首先完成以下任务:
注册Amazon
当您注册时Amazon,您的Amazon Web Services 账户已自动注册所有服务Amazon,包括Lake Formation. 您只需为使用的服务付费。
如果您已有Amazon Web Services 账户,请跳到下一个任务。如果您还没有 Amazon Web Services 账户,请使用以下步骤创建。
创建 Amazon Web Services 账户
按照屏幕上的说明进行操作。
在注册时,您将接到一通电话,要求您使用电话键盘输入一个验证码。
请记下您的 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中的概述内容。
自行创建管理员用户并将该用户添加到管理员组(控制台)
-
选择 Root user(根用户)并输入您的 Amazon Web Services 账户 电子邮件地址,以账户拥有者身份登录 IAM 控制台
。在下一页上,输入您的密码。 注意 强烈建议您遵守以下使用
AdministratorIAM 用户的最佳实践,妥善保存根用户凭证。只在执行少数账户和服务管理任务时才作为根用户登录。 -
在导航窗格中,选择 Users(用户),然后选择 Add users(添加用户)。
-
对于 User name(用户名),输入
Administrator。 -
选中 Amazon Web Services Management Console access (Amazon Web Services Management Console 管理控制台访问)旁边的复选框。然后选择自定义密码,并在文本框中输入新密码。
-
(可选)默认情况下,Amazon要求新用户在首次登录时创建新密码。您可以清除 User must create a new password at next sign-in(用户必须在下次登录时创建新密码)旁边的复选框以允许新用户在登录后重置其密码。
-
选择 Next:。Permissions (下一步:权限)。
-
在设置权限下,选择将用户添加到组。
-
选择创建组。
-
在 Create group(创建组)对话框中,对于 Group name(组名称),输入
Administrators。 -
选择 Filter policies(筛选策略),然后选择 Amazon managed - job function(Amazon 托管 – 工作职能)以筛选表内容。
-
在策略列表中,选中AdministratorAccess. 然后选择 Create group(创建组)。
注意 您必须先激活 IAM 用户和角色对账单的访问权限,然后才能使用
AdministratorAccess权限访问 Amazon Billing and Cost Management 控制台。为此,请按照“向账单控制台委派访问权限”教程第 1 步中的说明进行操作。 -
返回到组列表中,选中您的新组所对应的复选框。如有必要,选择 Refresh(刷新)以在列表中查看该组。
-
选择 Next:。标签。
-
(可选) 通过以键值对的形式附加标签来向用户添加元数据。有关在 IAM 中使用标签的更多信息,请参阅 IAM 用户指南中的标记 IAM 实体。
-
选择 Next:。审核查看要添加到新用户的组成员资格的列表。如果您已准备好继续,请选择 Create user(创建用户)。
您可使用这一相同的流程创建更多组和用户,并允许您的用户访问 Amazon Web Services 账户 资源。要了解有关使用策略限制用户对特定 Amazon 资源的权限的信息,请参阅访问管理和示例策略。
作为 IAM 用户登录
通过选择 IAM user (IAM 用户) 并输入您的Amazon Web Services 账户 ID 或账户别名来登录 IAM 控制台
为方便起见,Amazon登录页面使用浏览器 Cookie 记住您的 IAM 用户名和账户信息。如果您之前以其他用户身份登录过,请选择此按钮下面的登录链接,返回登录主页。在此处,您可以输入要重新导向到您账户 IAM 用户登录页面的 Amazon Web Services 账户 ID 或账户别名。
为工作流创建 IAM 角色
与Amazon Lake Formation,你可以使用以下方法导入你的数据工作流由执行的Amazon Glue爬网程序。工作流程定义了将数据导入数据湖的数据源和计划。您可以使用以下命令轻松定义工作流程蓝图,或者是 Lake Formation 提供的模板。
在创建工作流程时,您必须为其指定Amazon Identity and Access Management(IAM) 角色,用于向 Lake Formation 授予摄取数据的必要权限。
以下过程假定您熟悉 IAM。
为工作流创建 IAM 角色
-
使用打开 IAM 控制台https://console.amazonaws.cn/iam
并以您在中创建的 IAM 管理员用户身份登录创建 IAM 管理员用户或者作为 IAM 用户使用 AdministratorAccessAmazon托管策略。 -
在导航窗格中,选择角色,那么创建角色.
-
在存储库的创建角色页面,选择Amazon服务,然后选择Glue. 选择 Next(下一步)。
-
在存储库的添加权限页面上,搜索AWSGlueServiceRole托管策略,然后选中列表中策略名称旁边的复选框。然后完成创建角色向导,命名角色
LakeFormationWorkflowRole. 要完成,请选择创建角色. -
Back角色页面,搜索
LakeFormationWorkflowRole然后选择角色名称。 -
关于角色摘要页面,在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创建搜寻器和作业(工作流实例),并将角色附加到创建的搜寻器和作业。
-
-
验证该角色
LakeFormationWorkflowRole附加了两种策略。 -
如果您要摄取数据湖位置之外的数据,请添加一个内联策略,授予读取源数据的权限。
创建数据湖管理员
数据湖管理员最初是唯一的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 管理员用户。
创建数据湖管理员(控制台)
-
如果要成为数据湖管理员的 IAM 用户尚不存在,请使用 IAM 控制台创建该用户。否则,请查看将担任数据湖管理员的现有 IAM 用户。
注意 建议您不要选择 IAM 管理用户 (用户)
AdministratorAccessAmazon托管策略)成为数据湖管理员。附加以下内容Amazon向用户提供托管策略:
策略 必需? 注意 AWSLakeFormationDataAdmin必需 基本的数据湖管理员权限。 AWSGlueConsoleFullAccess,CloudWatchLogsReadOnlyAccess可选 如果数据湖管理员要对根据 Lake Formation 蓝图创建的工作流进行故障排除,请附上这些策略。这些策略使数据湖管理员能够在Amazon Glue控制台和Amazon CloudWatch Logs控制台。有关工作流的信息,请参阅。使用 Lake Formation 中的工作流导入数据. AWSLakeFormationCrossAccountManager可选 附加此策略以使数据湖管理员能够授予和撤销对 Data Catalog 资源的跨账户权限。有关更多信息,请参阅 Lake Formation 中的跨账户访问。 AmazonAthenaFullAccess可选 如果数据湖管理员要在中运行查询,请附上此策略Amazon Athena. -
附上以下内联策略,该策略授予数据湖管理员创建 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" } ] } -
(可选)附加以下内容
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" ] } ] } -
(可选)如果您的账户将授予或接收跨账户 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": "*" } ] } -
打开Amazon Lake Formation控制台处的https://console.aws.amazon.com/lakeformation/
并以您在中创建的 IAM 管理员用户身份登录创建 IAM 管理员用户或者以任何 IAM 管理用户身份。 -
如果欢迎来到Lake Formation窗口出现,选择您在步骤 1 中创建或选择的 IAM 用户,然后选择试用.
-
如果您没有看到欢迎来到Lake Formation窗口,然后执行以下步骤来配置 Lake Formation 管理器。
-
在导航窗格中的下,Permissions (权限),选择管理角色和任务. 在数据湖管理员控制台页面上的,选择选择管理员.
-
在管理数据湖管理员对话框,为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 权限参考.
更改原定设置数据目录设置
-
在 Lake Formation 控制台中继续https://console.aws.amazon.com/lakeformation/
. 确保您以您在中创建的 IAM 管理员用户身份登录创建 IAM 管理员用户或者作为 IAM 用户使用 AdministratorAccessAmazon托管策略。 修改数据目录设置:
-
在导航窗格中的下,Data Cat,选择设置.
-
清除两个复选框并选择Save(保存).
-
REVO
IAMAllowedPrincipals数据库创建者的权限。-
在导航窗格中的下,Permissions (权限),选择管理角色和任务.
-
在管理角色和任务控制台页面,在数据库创建者部分,选择
IAMAllowedPrincipals分组,然后选择REVO.这些区域有:REVO出现权限对话框,显示
IAMAllowedPrincipals有创建数据库权限。 -
选择REVO.
-
创建更多 Lake Formation 用户
创建 IAM 用户以访问中的数据湖Amazon Lake Formation. 此用户拥有查询数据湖的最低权限集。
创建有权访问 Lake ForMation 数据的非管理员用户
-
使用打开 IAM 控制台https://console.amazonaws.cn/iam
并以您在中创建的 IAM 管理员用户身份登录创建 IAM 管理员用户或者作为 IAM 用户使用 AdministratorAccessAmazon管理的策略。 -
选择用户,然后添加用户.
-
输入用户的名称,然后选择密码-Amazon Web Services Management Console访问访问方法。配置用户密码要求。您还可选择启用访问密钥-编程访问对于这个用户。
选择下一步:权限。
-
在 Set permissions (设置权限) 下,选择 Attach existing policies directly (直接附加现有策略)。Enter
Athena中的筛选策略文本字段。在结果列表中,选中AmazonAthenaFullAccess. -
选择创建策略按钮。在创建策略页面上,选择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": "*" } ] } -
选择下一步按钮在底部,直到您看到查看策略页. 输入策略的名称,例如
DatalakeUserBasic. 选择创建策略,然后关闭 “策略” 选项卡或浏览器窗口。 -
回到 IAM添加用户窗口,输入
datalake中的筛选策略搜索字段。如果新创建的策略未出现在结果列表中,请选择 “刷新” 或 “页面重新加载” 按钮。选中复选框中的DatalakeUserBasic政策。 -
选择下一篇:标签和下一步:Review.
-
在 Review (检查) 页面上,您应该看到两个
DatalakeUserBasic政策和AmazonAthenaFullAccess为用户选择了策略。选择创建用户以完成设置。
为数据湖配置 AAmazon S3 ervice 位置
要使用 Lake Formation 来管理和保护数据湖中的数据,您必须先注册 Amazon S3 地点。当您注册位置时,该 Amazon S3 路径和该路径下的所有文件夹都会被注册,这使得 Lake Formation 能够强制执行存储级别的权限。当用户从像 Amazon Athena 这样的集成引擎请求数据时,Lake Formation 提供数据访问权限,而不是使用用户的权限。
注册位置时,需要指定一个 IAM 角色来授予该位置的读取/写入权限。Lake Formation 在向集成提供临时证书时扮演这个角色Amazon请求访问已注册的 Amazon S3 位置中的数据的服务。您可以指定 Lake Formation 服务相关角色 (SLR) 或自行创建。
在以下情况下使用自定义角色:
-
您计划在已注册的 Amazon S3 位置创建受管控的表。用户定义的角色必须包含用于添加日志的策略 CloudWatch 除 SLR 权限之外的日志和发布指标。以授予必要设置的内联策略为例 CloudWatch 权限,请参阅注册位置时使用的角色的要求.
-
Amazon S3 位置存在于不同的账户中。有关详细信息,请参阅在另一个位置注册 Amazon S3Amazon帐户。
-
Amazon S3 位置包含使用加密的数据Amazon 托管式密钥. 有关详细信息,请参阅 注册加密的 Amazon S3 位置 和 注册加密 Amazon S3 位置Amazon账户。
-
您计划使用亚马逊 EMR 访问Amazon S3 ervice(Amazon EMR)位置。有关角色要求的更多信息,请参阅Lake Formation 的 IAM 角色中的Amazon EMR 管理指南.
您选择的角色必须具有必要的权限,如中所述注册位置时使用的角色的要求. 有关如何注册 Amazon Service 位置的说明,请参阅将 Amazon S3 位置添加到您的数据湖.
为使用受管控表和行级安全性做好准备
使用 Lake Formation 管理的表、行级筛选和存储优化功能需要额外配置。
为使用受管控表做好准备
要在 Lake Formation 中创建受管控的表,您必须先在 Lake Formation 中注册一个 Amazon S3 位置,然后指定一个包含所有所需权限的角色,如前所述为数据湖配置 AAmazon S3 ervice 位置. 然后,您需要向将与受管控表交互的用户或角色授予权限。有关数据访问权限的更多信息,请参阅底层数据访问控制。
要创建受管理的表,用户必须是数据湖管理员或具有以下权限的用户:
-
Lake Formation
CREATE_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 -
为用户创建和使用受管理的表创建和分配角色
-
使用打开 IAM 控制台https://console.amazonaws.cn/iam
并以您在中创建的 IAM 管理员用户身份登录创建 IAM 管理员用户或者作为 IAM 用户使用 IAM 用户 AdministratorAccessAmazon托管策略。 -
在导航窗格中,选择角色,那么创建角色.
-
在附加权限策略部分,选择创建策略. 在新打开的浏览器窗口中,创建用于您的角色的新策略。
-
在创建策略页面上,选择 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 对象的列表,这些对象将在当前事务期间写入,如果交易被取消,则可以自动删除。
-
-
对于需要管理受管表的数据压缩和垃圾收集设置的用户,请向上述策略添加以下权限:
"lakeformation:UpdateTableStorageOptimizer", "lakeformation:ListTableStorageOptimizers" -
选择 Next:Tags (下一步: 标签)。
-
您可以选择性地添加标签,然后选择后续:审核。
-
在 Review policy (查看策略) 页面上,输入策略的名称,例如
LakeFormationGovernedTables,然后选择创建策略. -
您可以关闭此窗口,然后返回创建角色页.
-
-
在存储库的创建角色页面,选择刷新按钮,然后搜索
LakeFormationGovernedTables您在上一步中创建的策略。选中列表中策略名称旁边的复选框。 -
完成创建角色通过选择向导下一步直到你到达审核页. 输入角色的名称,例如
LakeFormationTransactionsRole. 要完成,请选择创建角色. -
Back角色页面,搜索
LakeFormationTransactionsRole然后选择角色名称。 -
关于角色摘要页面,在Permissions (权限)选项卡,验证该角色是否具有
LakeFormationGovernedTables附加了策略。
现在,您可以将此角色分配给使用受管表的委托人。
为使用受管控表的自动数据压缩做好准备
要为受管理的表配置数据压缩,委托人必须满足以下条件:
-
成为创建表的用户或成为数据湖管理员用户
-
HAVOKE
glue:UpdateTable、glue:GetTable和Lake FormationALTER桌上的权限
此外,向 Lake Formation 注册 Amazon S3 数据湖位置时使用的角色必须包含以下权限才能使用数据压缩:
-
s3:PutObject和lakeformation:UpdateTableObjects -
lakeformation:StartTransaction、lakeformation:CommitTransaction、lakeformation:CancelTransaction、lakeformation:DeleteObjectsOnCancel, 和logs:CreateLogGroup、logs:CreateLogStream、logs: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 使用数据筛选来实现列级安全、行级安全和单元格级安全。您可以通过创建命名来实现列级、行级和单元格级安全性数据筛选器并在您授予数据过滤器时指定数据筛选器SELECT桌上有Lake Formation 许可。创建数据筛选器时,需要为需要包含的行提供一组列和一个筛选表达式。这允许您限制对查询结果中以及与 Lake Formation 集成的引擎(例如 Athena 和Amazon GlueETL 作业。
有关数据筛选器的更多信息,请参阅Lake Formation 中的数据过滤和细胞级安全.
为表配置行级别安全性
-
确定您要限制访问的内容并创建数据筛选器。有关创建数据筛选器的说明,请参阅创建数据筛选器.
-
Grant
DESCRIBE向能够查看数据筛选器的用户提供数据筛选器的权限。创建数据筛选器时,只有您可以查看它。要允许其他委托人查看和使用数据筛选器,您可以授予
DESCRIBE许可。 -
在授予数据筛选器时指定数据筛选器
SELECT允许校长在桌子上使用 Lake Formation。 -
向将使用单元级筛选器查询表的委托人分配 IAM 权限。使用单元格级筛选查询表的委托人必须具有以下 IAM 权限:
lakeformation:StartQueryPlanning lakeformation:GetQueryState lakeformation:GetWorkUnits lakeformation:GetWorkUnitResults
(可选)外部数据筛选设置
如果您打算使用第三方查询引擎分析和处理数据湖中的数据,则必须选择允许外部引擎访问由 Lake Formation 管理的数据。如果您不选择加入,则外部引擎将无法访问已向 Lake Formation 注册的 Amazon S3 位置中的数据。
Lake Formation 支持列级权限,用于限制对表中特定列的访问。集成分析服务,例如Amazon Athena、Amazon Redshift Spectrum 和 Amazon EMR 从Amazon Glue Data Catalog. 实际筛选查询响应中的列是集成服务的责任。第三方管理员有责任正确处理权限,以避免未经授权访问数据。
选择允许第三方引擎访问和筛选数据(控制台)
-
在 Lake Formation 控制台中继续https://console.aws.amazon.com/lakeformation/
. 确保您以拥有 Lake Formation 的 IAM 权限的委托人身份登录 PutDataLakeSettingsAPI 操作。您在中创建的 IAM 管理员用户创建 IAM 管理员用户有这个权限。 -
在导航窗格中的下,Permissions (权限),选择外部数据筛选.
-
在存储库的外部数据筛选页面上,请执行以下操作:
-
选中复选框允许外部引擎筛选向 Lake Formation 注册的 Amazon S3 位置的数据.
-
Enter会话标签值为第三方引擎定义。
-
适用于Amazon账户 ID,输入允许第三方引擎访问在 Lake Formation 注册的地点的账户 ID。按Enter在每个账户 ID 之后。
-
选择Save(保存)。
-
(可选)授予对数据目录加密密钥的访问权限
如果Amazon Glue Data Catalog已加密,授权Amazon Identity and Access Management上的 (IAM) 权限Amazon KMS对于任何需要授予 Lake Formation 对数据目录数据库和表的权限的校长来说都是密钥。
有关更多信息,请参见 Amazon Key Management Service 开发人员指南。