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

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

Lake Formation

如果您在使用时遇到问题AmazonLake Formation,请查询本部分中的相关主题。

一般故障排除

使用此处的信息可帮助您诊断和修复各种Lake Formation 问题。

Error: 的Lake Formation 权限不足 <Amazon S3 location>

有人试图在资源所指向的 Amazon S3 位置上创建或更改没有数据位置权限的数据目录资源。

如果数据目录数据库或表指向 Amazon S3 位置,则当您授予Lake Formation 权限时CREATE_TABLE要么ALTER,还必须授予的DATA_LOCATION_ACCESS该位置的权限。如果要向外部账户或组织授予这些权限,则必须包括授予选项。

向外部账户授予这些权限后,该账户中的数据湖管理员必须向账户中的委托人(用户或角色)授予权限。在授予DATA_LOCATION_ACCESS从另一个账户获得的权限,则必须指定目录 ID (Amazon账户 ID)的所有者账户。所有者账户是注册该地点的账户。

有关更多信息,请参阅 底层数据访问控制授予数据位置权限

Error: “Glue API 的加密密钥权限不足”

有人试图在没有的情况下授予 Lake Formation 权限Amazon Identity and Access Management(IAM) 权限Amazon KMS加密数据目录的加密密钥。

我的Amazon Athena或者使用清单的 Amazon Redshift 查询失败

Lake Formation 不支持使用清单的查询。

Error: “Lake Formation 权限不足:必需在目录上创建标记”

用户/角色必须是数据湖管理员。

跨账户访问问题排除

使用此处的信息可帮助您诊断和修复跨账户访问问题。

我授予了跨账户 Lake Formation 权限,但收件人看不到资源

  • 收件人账户中的用户是否为数据湖管理员? 共享时,只有数据湖管理员才能看到该资源。

  • 您是否使用命名资源方法与组织外部的账户共享? 如果是,则收件人账户的数据湖管理员必须接受资源共享邀请Amazon Resource Access Manager(Amazon RAM)。

    有关更多信息,请参阅 接受来自的资源共享邀请Amazon RAM

  • 您是否在中使用账户级(数据目录)资源策略Amazon Glue? 如果是,则如果您使用 named resources 方法,则必须在策略中包含一个特殊语句,以授权Amazon RAM代表您共享保单。

    有关更多信息,请参阅 使用这两者来管理跨账户权限Amazon GlueLake Format

  • 您是否已经Amazon Identity and Access Management(IAM) 权限是否需要授予跨账户访问权限?

    有关更多信息,请参阅 跨账户访问权限前提条件

  • 你授予权限的资源不得具有任何 Lake Formation 权限授予IAMAllowedPrincipals组中)。

  • 有没有deny账户级策略中关于资源的声明?

收件人账户中的委托人可以查看数据目录资源,但无法访问基础数据

收款人账户中的委托人必须具有必需的Amazon Identity and Access Management(IAM) 权限。有关详细信息,请参阅访问共享表的基础数据

Error: “关联失败,因为呼叫者未获得授权”Amazon RAM资源共享邀请

向其他账户授予对资源的访问权限后,当接收账户尝试接受资源共享邀请时,操作将失败。

$ aws ram get-resource-share-associations --association-type PRINCIPAL --resource-share-arns arn:aws:ram:aws-region:444444444444:resource-share/e1d1f4ba-xxxx-xxxx-xxxx-xxxxxxxx5d8d { "resourceShareAssociations": [ { "resourceShareArn": "arn:aws:ram:aws-region:444444444444:resource-share/e1d1f4ba-xxxx-xxxx-xxxx-xxxxxxxx5d8d ", "resourceShareName": "LakeFormation-MMCC0XQBH3Y", "associatedEntity": "5815803XXXXX", "associationType": "PRINCIPAL", "status": "FAILED", "statusMessage": "Association failed because the caller was not authorized.", "creationTime": "2021-07-12T02:20:10.267000+00:00", "lastUpdatedTime": "2021-07-12T02:20:51.830000+00:00", "external": true } ] }

出现此错误是因为glue:PutResourcePolicy被调用Amazon Glue当接收账户接受资源共享邀请时。要解决该问题,请允许glue:PutResourcePolicy由接收账户使用的代入角色执行的操作。

Error: “未获得授予资源权限的授权”

试图授予对另一个账户拥有的数据库或表的跨账户权限。与您的账户共享数据库或表时,作为数据湖管理员,您只能向账户中的用户授予对数据库或表的权限。

Error: “访问被拒绝,无法检索Amazon组织信息”

您的账户是AmazonOrganizations 管理账户,并且您没有检索组织信息(例如账户中的组织单位)所需的权限。

有关更多信息,请参阅 Required permissions for cross-account grants

Error: “<organization-ID>未找到组织”

尝试与组织共享资源,但未启用与组织共享。启用与组织共享资源。

有关更多信息,请参阅 。启用与 共享AmazonOrganizations中的Amazon RAM用户指南.

Error: “Lake Formation 权限不足 非法组合”

用户共享了数据目录资源,而 Lake Formation 权限被授予IAMAllowedPrincipals资源的组。用户必须撤销所有 Lake Formation 权限IAMAllowedPrincipals在共享资源之前。

ConcurrentModificationException 对外部账户的授予/撤销请求时

当用户在 LF-tag 策略上为委托人发出多个并发授予和/或撤销权限请求时,Lake Formation 会抛出 ConcurrentModificationException. 用户需要catch 异常并重试失败的授予/撤销请求。使用批处理版本的GrantPermissions/RevokePermissionsAPI 操作-BatchGrantGrant 权限操作(Python:batch_grant_permissions)BatchRevkeLevkePatchRevkeEpermissions 操作(Python:batch_revke_permissions)通过减少并发授予/撤销请求的数量在一定程度上缓解了这个问题。

蓝图和工作流程疑难解答

使用此处的信息可帮助您诊断和修复蓝图和工作流程问题。

我的蓝图失败,“User: <user-ARN>is not authorized to performPassRole 在资源上:<role-ARN>”

没有足够权限传递所选角色的用户尝试创建蓝图。

更新用户的 IAM 策略以使其能够传递角色,或者要求用户选择具有所需密码角色权限的其他角色。

有关更多信息,请参阅 Lake Formation 角色和 IAM 权限参考

“User: <user-ARN>is not authorized to perform:PassRole 在资源上:<role-ARN>”

您为工作流指定的角色没有允许角色自行传递的内联策略。

有关更多信息,请参阅 为工作流创建 IAM 角色

我的工作流程中的爬虫失败,显示 “资源不存在或请求者无权访问请求的权限”

一个可能的原因是传递的角色没有足够的权限在目标数据库中创建表。为该角色授予CREATE_TABLE数据库的权限。

我的工作流程中的爬虫失败,并显示 “发生了错误 (AccessDeniedException) 在调用 CreateTable operation.”

一个可能的原因是工作流角色在目标存储位置上没有数据位置权限。给角色授予数据位置权限。

有关更多信息,请参阅DATA_LOCATION_ACCESS