0

为了让 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 角色,但我还没有找到上下文是如何传递的。

谢谢!

4

1 回答 1

1

这在今天是不可能的。由于 的生命周期,它很复杂PrestoS3FileSystem,并且因为 S3 访问是惰性的,并且发生在用户上下文不可用的随机位置。我对如何允许这样做有一些想法。另一种可能的方法是最近添加的 GCP 支持的凭证直通。

请在https://github.com/prestosql/presto提交问题,我们可以确定支持此用例的最佳方式。我们也可以在我们的 Slack 上讨论这个问题:https ://prestosql.io/community.html

于 2019-04-10T21:16:39.043 回答