如何通过服务帐户创建dataproc集群

时间:2018-09-18 06:56:46

标签: google-cloud-dataproc google-iam

我对这份文档enter link description here感到困惑

Service account requirements and Limitations:
* Service accounts can only be set when a cluster is created.
* You need to create a service account before creating the Cloud Dataproc cluster that will be associated with the service account.
* Once set, the service account used for a cluster cannot be changed.

这意味着我无法创建服务帐户,该帐户具有创建dataproc集群的作用? 对于Now,我只能通过自己的帐户“ gcloud auth login”创建一个dataproc集群 但是我想通过设置从詹金斯创建dataproc集群

gcloud auth activate-service-account --key-file

2 个答案:

答案 0 :(得分:1)

是的,您可以使用服务帐户来创建Dataproc集群并提交作业。但是,您引用的链接使用的服务帐户不适用于您正在运行的Dataproc集群。

要使用服务帐户创建Dataproc,请执行以下操作:

  1. 创建服务帐户

  2. 分配Cloud Dataproc编辑器角色

  3. 下载其json凭证文件

  4. 配置身份验证机制:

    4.1 gcloud auth激活服务帐户--key-file = JSON_FILE_PATH

    4.2 GOOGLE_APPLICATION_CREDENTIALS = JSON_FILE_PATH

  5. 创建您的Dataproc集群

答案 1 :(得分:0)

首先您需要创建一个服务帐户,并且还需要提供对以下角色的访问权限:

  1. Dataproc Worker:根据 [doc][1]
<块引用>

要使用用户指定的服务帐户创建集群, 指定的服务帐户必须具有由 Dataproc Worker 角色。

2.Dataproc Hub 代理:这将提供对 act as service account 权限的访问,否则提供以下错误:

<块引用>

错误:(gcloud.beta.dataproc.clusters.create) INVALID_ARGUMENT:用户 无权充当服务帐户 'service-account@project-id.iam.gserviceaccount.com'。行动 作为服务帐户,用户必须拥有 [Owner, Editor, Service 帐户演员] 角色。看 https://cloud.google.com/iam/docs/understanding-service-accounts 为 其他详细信息。

3.Dataproc Editor:此角色将提供创建和删除 dataproc 集群的权限。

激活服务帐户:提供对角色的访问权限后,下载服务帐户 json。通过 gcloud auth active-service-account --key-file=<service-json> 激活新的服务帐户。通过 gcloud auth list 检查激活。通过 GOOGLE_APPLICATION_CREDENTIALS

设置 export GOOGLE_APPLICATION_CREDENTIALS="service-json-full-path" 环境变量

现在希望一切准备就绪,可以使用服务帐户创建 dataproc 集群。以下是使用服务帐户创建 dataproc 集群的示例命令:

gcloud auth activate-service-account --key-file=<service-key-file>
export GOOGLE_APPLICATION_CREDENTIALS="<service-key-file>"
gcloud beta dataproc clusters create <CLUSTER-NAME> \
    --region=<REGION> \
    --project=<PROJECT-ID> \
    --service-account=<SERVICE-ACCOUNT-EMAIL> \
    --single-node