我的项目A
包含存储桶A_B1
和A_B2
。现在,从项目B
运行的Dataproc作业需要具有对存储桶A_B1
和A_B2
的读取权限。这有可能吗?
动机:项目A
是生产环境,生产数据存储在存储中。项目B
是“实验性”环境,在生产数据上运行实验Spark作业。目标是明确区分生产和实验环境的计费。类似的情况可以用dev。
答案 0 :(得分:1)
实际上,Dataproc集群将代表项目中的服务帐户" B&#34 ;;通常它是默认的GCE服务帐户,但也可以自定义以使用您在项目B中创建的任何其他服务帐户。
您可以通过获取Dataproc群集中某个VM的详细信息来仔细检查服务帐户名称,例如运行:
gcloud compute instances describe my-dataproc-cluster-m
它可能看起来像<project-number>-compute@developer.gserviceaccount.com
。现在,在您的情况下,如果您已经拥有A_B1
和A_B2
中的数据,则必须递归编辑这些存储桶的所有内容的权限,以使用类似{{3}的内容为您的服务帐户添加访问权限}};如果您正在使用它,您可能还想更改存储桶的默认ACL&#34;这样新对象也具有该权限。对于许多项目来说,这可能会很繁琐,所以如果提前计划,你可以: