【问题标题】:User not authorized to act as service account用户无权充当服务帐号
【发布时间】:2020-10-29 23:37:04
【问题描述】:

我是 GCP 的新手,打算将表从 azure blob 存储传输到云存储桶。 我按照here 的说明进行操作(使用数据融合)。

当我完成部署管道并准备运行它时,我收到了一个错误,并且在高级日志中说

INVALID_ARGUMENT: User not authorized to act as service account '####-compute@developer.gserviceaccount.com'. 

我查看了几个文档,还尝试在 stackoverflow 上寻找答案,但没有一个对我有用。

我应该如何授予对服务帐户的访问权限以及我应该附加到哪个服务帐户?

现在在我的 IAM/服务帐户控制台上,我也被分配为服务帐户用户,我只有两个默认服务,一个用于计算引擎,一个用于应用引擎。

真的不知道该怎么办。提前感谢您的帮助!

【问题讨论】:

  • 顺便说一句,我也是主人

标签: service-accounts google-cloud-data-fusion


【解决方案1】:

您需要授予Service Account User roleHere 就是一个例子。这应该针对您用于运行作业的当前用户/服务帐户执行。如下所示:

  1. 转到 IAM 和管理控制台
  2. 点击 IAM
  3. 选择您用来运行工作的成员
  4. 点击会员信息右侧的钢笔图标
  5. 添加服务帐户用户角色

一般来说,该错误与缺少与用于运行作业的用户/服务帐户相关联的服务帐户用户角色 (roles/iam.serviceAccountUser) 有关。

请注意,服务帐号用于通过服务帐号本身或通过其中的委派用户进行授权 API 调用。此外,关于模拟服务帐户,具有特定权限的用户可以充当具有执行特定作业所需权限的另一个服务帐户。

【讨论】:

  • 我想补充一点,用于运行数据融合作业的最可能的服务帐户是默认的数据融合服务帐户,它应该是service-####@gcp-sa-datafusion.iam.gserviceaccount.com,其中#### 代表您的项目编号。按照@JoX 步骤并将服务帐户用户角色添加到此服务帐户,然后重试。让我们知道它是否有效。这在this 过去的帖子中有详细记录。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-07
  • 2017-03-15
  • 2021-05-05
  • 1970-01-01
  • 1970-01-01
  • 2013-02-20
相关资源
最近更新 更多