首先,您需要创建一个服务帐户,还需要提供对以下角色的访问权限:
- 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