为了让 Presto 访问 S3 上的数据,我需要能够为不同的用户承担不同的角色(例如 Bob -> role1 和 Brenda -> role2)。我知道 EMRFS 提供了此功能,但是我们正在将 Presto 移出 EMR,因此我们不能再使用 EMRFS 来执行此委托。
Presto 允许您为本地 S3 文件系统编写自己的S3 凭证提供程序,但是它只需要两个参数 ajava.net.Uri
和 Hadooporg.apache.hadoop.conf.Configuration
作为构造函数。
我编写了一个自定义凭据提供程序,它显示了Configuration
对象的所有属性,Uri
并且既不包含任何与用户有关的信息。
是否可以在不修改 Presto 源代码的情况下从提供者那里获取用户信息?我看到有一个 PR 提交了一段时间(https://github.com/prestodb/presto/pull/2640见最后评论)但由于添加了自定义凭据提供程序而关闭。上面的文档暗示您可以为不同的用户承担不同的 IAM 角色,但我还没有找到上下文是如何传递的。
谢谢!