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

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

Lake Formation

如果您在使用时遇到问题Amazon请查询 Lake 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? 如果是,那么如果您使用命名资源方法,则必须在策略中包含一条特殊声明以授权Amazon RAM代表您共享策略。

    有关更多信息,请参阅 使用两者来管理跨账户权限Amazon Glue和 Lake Formation

  • 您是否有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在共享资源之前。

蓝图和工作流程疑难解答

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

我的蓝图失败,<user-ARN>显示 “User: to to perform: iam:PassRole在资源上:<role-ARN>”

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

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

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

我的工作流失败,<user-ARN>显示 “User: to to perform: iam:PassRole在资源上:<role-ARN>”

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

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

我的工作流程中的 Crawler 失败,显示 “资源不存在或者请求者未获得访问请求的权限的授权”

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

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

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

有关更多信息,请参阅DATA_LOCATION_ACCESS