aws lakeformation注册s3位置的原因

2024-05-27 22:28

本文主要是介绍aws lakeformation注册s3位置的原因,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考资料

  • lakeformation底层数据的访问逻辑

向lakeformation注册s3位置的目的是让lakeformation控制对AWS S3 位置底层数据的访问(以下简称LF)

注册s3位置后可以进行两种授权

  • 数据访问授权(SELECTINSERTDELETE

  • 数据位置授权,在指定s3位置创建和修改元数据(在授权CREATE_TABLE或ALTER之后限制创建的位置)。

数据访问授权

当注册第一个 Amazon S3 路径时,将代表您创建服务相关角色和新的内联策略。Lake Formation 将第一个路径添加到内联策略,并将其附加到服务相关角色

注册位置时可以选择角色,授予该角色对该位置的读/写权限,LF在向集成 AWS 服务提供临时凭证时承担该角色(例如,AWSServiceRoleForLakeFormationDataAccess)

image.png

注册结果如下

image.png

一些例外情景

  • 如果手动删除s3桶,可能出现权限无法删除的问题,需要手动创建s3桶并注册资源,之后重新解注册

  • 由于AWSServiceRoleForLakeFormationDataAccess为服务角色,因此无法修改策略。只能通过api修改,相关api为

    aws lakeformation deregister-resource --resource-arn arn:aws-cn:s3:::lakefowmation
    

具体的策略如下所示

image.png

走lakeformation路径的数据访问者需要lakeformation:GetDataAccess权限

Amazon Athena 要求用户具有该 lakeformation:GetDataAccess 权限。其他集成服务需要其基础执行角色才能具有该 lakeformation:GetDataAccess 权限

如果要对现有的glue data catalog进行管理,需要进行额外配置。推荐开启混合模式同时兼容IAM授权和lakeformation

  • 开启混合访问模式避免现有工作流中断
  • 若要在混合访问模式下共享数据目录数据库和表,需要将跨帐户版本设置更新到版本 4

使用 Lake Formation GetEffectivePermissionsForPath API 操作,可以确定引用 Amazon S3 位置的数据目录资源,以及对这些资源具有权限的委托人。

$ aws lakeformation get-effective-permissions-for-path --resource-arn arn:aws-cn:s3:::zhaojiew-datalake
{"Permissions": [],"NextToken": "eyJoYXZlQ2F0YWxvZ0VudGl0aWVzRXhoYXVzdGVkIjp0cnVlfQ=="
}

如果iam没有lakeformation权限或者表没有schema会出现没有找到column的报错,https://repost.aws/questions/QUkhhW1dHXSc-1yGXt-TR_5A/column-cannot-be-resolved-querying-athena-through-lambda-and-boto3

The error "COLUMN_NOT_FOUND: line 1:8: SELECT * not allowed ..." typically occurs when (1) the user/role does not have sufficient permissions on the table in Lake Formation. (2) the table's classification is UNKNOWN or the table has no column definitions.

如果没有权限会出现s3的access denied报错

image.png

数据位置授权

数据位置权限使主体能够创建和更改指向指定已注册的 Amazon S3 位置的数据目录资源,例如alter和create table

image.png

数据位置授权之前,必须先注册数据位置到LF中。常见的错误包括glue crawler爬表出现lakeformation权限不足,表明没有权限在指定的s3位置创建表。

这篇关于aws lakeformation注册s3位置的原因的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1008765

相关文章

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Nacos注册中心和配置中心的底层原理全面解读

《Nacos注册中心和配置中心的底层原理全面解读》:本文主要介绍Nacos注册中心和配置中心的底层原理的全面解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录临时实例和永久实例为什么 Nacos 要将服务实例分为临时实例和永久实例?1.x 版本和2.x版本的区别

IDEA中Maven Dependencies出现红色波浪线的原因及解决方法

《IDEA中MavenDependencies出现红色波浪线的原因及解决方法》在使用IntelliJIDEA开发Java项目时,尤其是基于Maven的项目,您可能会遇到MavenDependenci... 目录一、问题概述二、解决步骤2.1 检查 Maven 配置2.2 更新 Maven 项目2.3 清理本

Java空指针异常NullPointerException的原因与解决方案

《Java空指针异常NullPointerException的原因与解决方案》在Java开发中,NullPointerException(空指针异常)是最常见的运行时异常之一,通常发生在程序尝试访问或... 目录一、空指针异常产生的原因1. 变量未初始化2. 对象引用被显式置为null3. 方法返回null

如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)

《如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)》:本文主要介绍如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)问题,具有很好的参考价值,希望对大家有所帮助,如有... 目录先在你打算存放的地方建四个文件夹更改这四个路径就可以修改默认虚拟内存分页js文件的位置接下来从高级-

PyCharm如何更改缓存位置

《PyCharm如何更改缓存位置》:本文主要介绍PyCharm如何更改缓存位置的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录PyCharm更改缓存位置1.打开PyCharm的安装编程目录2.将config、sjsystem、plugins和log的路径

IDEA下"File is read-only"可能原因分析及"找不到或无法加载主类"的问题

《IDEA下Fileisread-only可能原因分析及找不到或无法加载主类的问题》:本文主要介绍IDEA下Fileisread-only可能原因分析及找不到或无法加载主类的问题,具有很好的参... 目录1.File is read-only”可能原因2.“找不到或无法加载主类”问题的解决总结1.File

使用@Cacheable注解Redis时Redis宕机或其他原因连不上继续调用原方法的解决方案

《使用@Cacheable注解Redis时Redis宕机或其他原因连不上继续调用原方法的解决方案》在SpringBoot应用中,我们经常使用​​@Cacheable​​注解来缓存数据,以提高应用的性能... 目录@Cacheable注解Redis时,Redis宕机或其他原因连不上,继续调用原方法的解决方案1

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Linux samba共享慢的原因及解决方案

《Linuxsamba共享慢的原因及解决方案》:本文主要介绍Linuxsamba共享慢的原因及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux samba共享慢原因及解决问题表现原因解决办法总结Linandroidux samba共享慢原因及解决