无法对具有受限访问权限的GCS多用户使用Dataproc集群

时间:2018-10-29 10:48:56

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

@ dennis-huo

Using non-default service account in Google Cloud dataproc

继续上述问题

我想为多用户设置一个dataproc集群。由于Dataproc集群的计算引擎使用默认服务或自定义服务帐户凭据通过--properties core:fs.gs.auth.service.account.json.keyfile连接到存储桶,因此与提交作业的用户主体没有任何关系,或者我找不到选择控制它,这会使dataproc集群不安全并产生一个问题,当所使用的密钥文件与主体不对应时,它会在多用户环境中引入另一个间接级别。 < / p>

在我的情况下,我们正在使用gcloud dataproc jobs submit hadoop提交作业,因为我的想法是使用IAM角色来控制对dataproc集群的访问,但是在提交作业期间,用户主体并没有进入hadoop集群,而且gcloud cli不会在客户端的存储桶上执行任何访问验证,该作业始终以root用户的身份执行。我可以知道如何将用户映射到他们的服务帐户吗?您对此情况有解决方案吗?

我们需要的是使用gcloud dataproc jobs submit hadoop的用户提交的Hadoop Map Reduce应该只能使用用户有权访问的存储分区或文件夹。

当前

gcloud dataproc作业(IAM-用户主体) -> Dataproc集群(IAM-用户主体) -> (SA默认/自定义) -> 存储桶

如果用户有权向Dataproc集群提交作业,则可以使用服务帐户有权访问的任何存储桶。

必填:

gcloud dataproc作业(IAM-用户主体) -> Dataproc集群(IAM-用户主体) -> (IAM-用户主体) -> 存储桶

用户有权向Dataproc集群提交作业只能使用用户帐户有权访问的存储桶。

到目前为止,我还没有找到一种方法。你能帮我吗

此问题是否有任何解决方法或解决方案?

1 个答案:

答案 0 :(得分:0)

您可以尝试以下方法:

  1. 添加自定义角色,例如,为BucketA创建roleA /为BucketB创建roleB
  2. 将服务帐户或IAM分配给该角色。例如,用户1,用户2角色A用户1,用户3角色B
  3. 通过编辑存储桶权限,将成员添加到特定角色,例如bucketA-> roleA

然后,该用户有权向Dataproc集群提交作业,只能使用该用户帐户有权访问的存储桶。

相关问题