【问题标题】:Use multiple service accounts in Google Dataproc在 Google Dataproc 中使用多个服务帐号
【发布时间】:2017-09-01 21:51:59
【问题描述】:

我们能否在一个 Dataproc 集群中使用多个服务帐号。

假设我有 3 个存储桶: 服务帐户 A 对存储桶 A 具有 r/w 访问权限,对存储桶 B 和 C 具有 r 访问权限。服务帐户 B 对存储桶 B 具有 r/w 访问权限,对存储桶 A 和 C 具有 r 访问权限。服务帐户 C 对存储桶具有 r/w 访问权限到bucket C,r访问bucket A和B

我是否可以使用服务帐户 D 启动集群,但在作业中使用上述每个定义的服务帐户(A、B 和 C)来获得对存储桶的适当访问权限?

【问题讨论】:

    标签: google-cloud-storage service-accounts google-cloud-dataproc


    【解决方案1】:

    GCS Connector for Hadoop 可以配置为使用与 GCE 元数据服务器提供的服务帐户不同的服务帐户。使用这种机制,可能可以使用不同的服务帐户访问不同的存储桶。

    要使用 json 密钥文件而不是元数据,配置密钥“google.cloud.auth.service.account.json.keyfile”应设置为集群中每个节点本地的 JSON 密钥文件的位置.如何设置该键将取决于访问文件系统的上下文。对于标准 MR 作业,仅访问单个存储桶,您可以在 JobConf 上设置该键/值对。如果您通过 Hadoop FileSystrem 接口访问 GCS,则可以在获取相应 FileSystem 实例时使用的 Configuration 对象中指定该键/值对。

    也就是说,Dataproc 不会尝试将各个应用程序彼此隔离。因此,如果您的意图是多租户集群,那么单个作业周围没有足够的安全边界来保证任何作业都不会恶意尝试从另一个作业中获取凭据。

    如果您的意图是不是多租户集群,请考虑创建一个特定于任务的服务帐户,该帐户允许对需要与之交互的所有存储桶进行读取或写入访问。例如,如果您有一个可以读取和写入多个存储桶的作业“元分析”,您可以创建一个具有该作业所需权限的服务帐户元分析。

    【讨论】:

      【解决方案2】:

      借助这个相对较新的功能(撰写本文时 GA 为 6 个月),您可以尝试使用 dataproc 协作多租户 将针对 dataproc 提交作业的用户帐户映射到服务帐户 这是谷歌工程师的优秀文章: https://cloud.google.com/blog/topics/developers-practitioners/dataproc-cooperative-multi-tenancy

      【讨论】:

        猜你喜欢
        • 2016-12-05
        • 1970-01-01
        • 2017-02-05
        • 2020-08-22
        • 2021-02-22
        • 1970-01-01
        • 2020-07-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多