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

问题描述 投票:3回答:1

@Dennis-或

Using non-default service account in Google Cloud dataproc

继续上述问题

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

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

我们所需要的是使用qazxswpoi的用户提交的Hadoop Map Reduce应该只能使用用户可以访问它的存储桶或文件夹。

当前:

gcloud dataproc jobs(IAM - 用户主体) - > Dataproc Cluster(IAM - 用户主体) - >(SA默认/自定义) - >存储桶

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

需要:

gcloud dataproc jobs(IAM - 用户主体) - > Dataproc Cluster(IAM - 用户主体) - >(IAM - 用户主体) - >存储桶

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

到目前为止,我找不到办法。你能帮帮我吗?

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

google-cloud-storage google-cloud-dataproc
1个回答
0
投票

你可以试试这个:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.