为什么我在 Amazon Athena 中收到“Insufficient Lake Formation permissions on <Amazon S3 location>”(<Amazon S3 位置>上的 Lake Formation 权限不足)错误,即便我的 IAM 用户或角色具有所需的 S3 权限?

上次更新日期:2022 年 2 月 22 日

当我尝试在 Amazon Athena 中使用已注册 AWS Lake Formation 的 Amazon Simple Storage Service (Amazon S3) 位置的数据库/表时,查询失败且显示错误“Insufficient Lake Formation permission(s) on ”( 上的 Lake Formation 权限不足)。但是,Athena AWS Identity and Access Management (IAM) 用户或角色拥有必要的 IAM 权限。

解决方法

当满足以下条件时,您会收到此错误:

  • IAM 用户或角色尝试在使用 Lake Formation 注册的 Amazon S3 存储桶上创建或调整 Data Catalog 资源(数据库或表)。
  • IAM 用户或角色在 Lake Formation 中没有相应的数据位置权限。

要解决此错误,您必须向您用于创建数据库或表的 IAM 用户或角色授予相应的数据位置权限。当您将 Athena 与 Lake Formation 结合使用时,除了 IAM 用户或角色所需的数据访问权限之外,请务必向 Lake Formation 中的 IAM 用户或角色授予所需的 S3 权限。数据访问权限允许 IAM 用户或角色对基础 Amazon S3 位置中的数据执行读取和写入操作。但是,Lake Formation 中的数据位置权限使 IAM 用户或角色能够创建和调整指向注册的 Amazon S3 位置的 Data Catalog 资源。

要解决此错误,请执行以下操作:

  1. 验证 Athena 中的 S3 路径是否已成功在 Lake Formation 中注册。
  2. 向 IAM 用户或角色授予所需的数据位置权限,以访问 S3 路径。

验证已在 Lake Formation 中注册数据湖位置

  1. 数据湖管理员的角色登录到 AWS Lake Formation 控制台
  2. 在导航窗格中的 Register and ingest(注册和提取)下,选择 Data lake locations(数据湖位置)。
    Data lake locations(数据湖位置)列表中,验证 Data Catalog 资源指向的 S3 路径已在 Lake Formation 中注册。

通过 AWS Lake Formation 控制台授予数据位置权限

  1. 在导航窗格中,选择 Data locations(数据位置)。
  2. 选择 Grant(授予)。
  3. Grant permissions(授予权限)对话框中,选择 My account(我的账户)。
  4. 对于 IAM users and roles(IAM 用户和角色),选择您想要为其授予权限的 IAM 用户或角色。
  5. 对于 Storage locations(存储位置),选择您从中收到错误的 S3 路径。
  6. 选择 Grant(授予)。

注意:仅当 S3 路径位于相同账户中时才执行这些步骤。如果 S3 路径位于不同账户中,请确保满足所有跨账户访问前提条件。然后,按照授予数据位置权限(外部账户)中提供的说明进行操作。


这篇文章对您有帮助吗?


您是否需要账单或技术支持?