0

我对这个文档很困惑在此处输入链接描述

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.

这意味着我无法创建一个服务帐户,该帐户具有创建数据处理集群的作用?现在,我只能通过我自己的帐户“gcloud auth login”创建一个 dataproc 集群,但我想通过 setup 从 jenkins 创建 dataproc 集群

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

4

2 回答 2

1

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

要使用服务帐号创建 Dataproc:

  1. 创建服务帐号

  2. 分配 Cloud Dataproc 编辑者角色

  3. 下载它的 json 凭证文件

  4. 配置认证机制:

    4.1 gcloud auth activate-service-account --key-file=JSON_FILE_PATH

    4.2 GOOGLE_APPLICATION_CREDENTIALS=JSON_FILE_PATH

  5. 创建您的 Dataproc 集群

于 2018-09-18T16:29:05.397 回答
0

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

  1. Dataproc Worker:根据 [doc][1]

要使用用户指定的服务帐号创建集群,指定的服务帐号必须拥有 Dataproc Worker 角色授予的所有权限。

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

错误:(gcloud.beta.dataproc.clusters.create)INVALID_ARGUMENT:用户无权充当服务帐户“service-account@project-id.iam.gserviceaccount.com”。要充当服务帐户,用户必须具有 [Owner, Editor, Service Account Actor] 角色之一。有关其他详细信息,请参阅 https://cloud.google.com/iam/docs/understanding-service-accounts

3.Dataproc 编辑器:此角色将提供创建和删除 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
于 2021-04-06T08:21:28.970 回答