Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 使用服务帐户和IAM角色管理dataproc群集访问_Apache Spark_Google Cloud Platform_Google Cloud Storage_Google Cloud Dataproc_Sre - Fatal编程技术网

Apache spark 使用服务帐户和IAM角色管理dataproc群集访问

Apache spark 使用服务帐户和IAM角色管理dataproc群集访问,apache-spark,google-cloud-platform,google-cloud-storage,google-cloud-dataproc,sre,Apache Spark,Google Cloud Platform,Google Cloud Storage,Google Cloud Dataproc,Sre,我是一名云计算初学者,希望限制我的dataproc集群对项目中给定的gcs bucket的访问 假设我创建了一个名为'data-proc-service的服务帐户-account@my-cloud project.iam.gserviceaccount.com' 然后我创建一个dataproc集群并为其分配服务帐户 现在我已经创建了两个名为 'gs://my-test-bucket/spark-input-files/' 'gs://my-test-bucket/spark-output-fil

我是一名云计算初学者,希望限制我的
dataproc集群
对项目中给定的
gcs bucket
的访问

假设我创建了一个名为
'data-proc-service的
服务帐户
-account@my-cloud project.iam.gserviceaccount.com'
然后我创建一个dataproc集群并为其分配服务帐户

现在我已经创建了两个名为

'gs://my-test-bucket/spark-input-files/'
'gs://my-test-bucket/spark-output-files/'
这些存储桶包含一些输入文件,这些文件需要由运行在我的dataproc集群上的spark作业访问,并且还充当spark作业可以写入一些输出文件的位置

我想我必须去编辑我的bucket权限,如给定链接所示。

我希望我的spark作业只能读取此特定存储桶中的文件
'gs://my test bucket/spark input files/'
。 如果他们正在写入gcs存储桶,则只能写入“gs://my test bucket/spark output files/”

这里的问题是:(很可能是与SRE资源相关的问题)

需要将哪些IAM权限添加到我的data proc服务帐户
数据处理服务-account@my-云项目.iam.gserviceaccount.com
iam
控制台页面上

对于给定的特定bucket,需要添加哪些读/写权限,我认为必须通过添加成员并为其分配正确的权限来配置。(如上述链接所示)

我是否需要添加我的data proc service帐户作为成员,并可以在下面添加这两个角色。这样行吗

Storage Object Creator  for bucket 'gs://my-test-bucket/spark-output-files/
Storage Object Viewer   for bucket 'gs://my-test-bucket/spark-input-files/'
另外,如果我错过了什么或有更好的办法,请告诉我。

根据:

dataproc.worker
角色具有与地面军事系统相关的权限列表,包括
storage.objects.get
storage.objects.create
。这些适用于任何桶

您要做的是,为您的服务帐户授予与
dataproc.worker
角色几乎相同的权限,但将所有
storage.xxx.xxx
权限限制为dataproc staging bucket。然后,将写访问权添加到输出存储桶,并将读访问权添加到输入存储桶


或者,在运行Spark作业时,可以使用与Dataproc服务帐户不同的服务帐户。此特定于作业的服务帐户将只需要对输入bucket的读访问权限和对输出bucket的写访问权限。假设您正在使用GCS连接器(预装在Dataproc群集上)访问GCS,您可以按照找到的说明进行操作。但在这种情况下,您必须将服务帐户密钥分发到工作节点,或将其放入GCS/HDFS。

谢谢您的输入。我将对此进行更多检查。
To create a cluster with a user-specified service account, the specified service
account must have all permissions granted by the Dataproc Worker role. Additional
roles may be required depending on configured features.