请求的身份验证范围不足 - GCP 上的数据流/Apache Beam



我正在尝试在 GCP 上运行 Beam 管道(作为 AI Platform ML 训练作业的一部分(。我非常密切地关注这本笔记本的数据处理部分。当我将 Beam 设置为使用"DirectRunner"时,一切运行良好(虽然很慢(。但是一旦我切换到DataflowRunner,我就会收到"范围不足"错误:(回溯缩短(

HttpForbiddenError: HttpError Access https://dataflow.googleapis.com/v1b3/projects/neurec-252017/locations/us-central1/jobs?alt=json:

响应: [...]

内容<{ "错误":{ "代码":403, "消息": "请求的身份验证范围不足。 "状态": "PERMISSION_DENIED" } }

我花了很多时间阅读有关SO的类似问题的答案,但无济于事。我的理解是,当我启动 Beam 管道时,它会代表我的项目创建一个 GCE 实例,并且该虚拟机没有写入我的 GCS 存储桶所需的权限。

我无法弄清楚的是,如何为该 GCE 实例设置正确的范围/权限(最好是在启动 Beam 管道的 Python 代码中,而不是在 GCP 控制台中(。我尝试向计算引擎默认服务帐户 ([PROJECT_NUMBER]-compute@developer.gserviceaccount.com( 授予以下权限:

计算实例管理员 (v1(

数据流管理员

所有者

存储管理员

但我仍然遇到同样的错误。任何帮助将不胜感激。

您需要角色"数据流管理员",这是创建和管理数据流作业的最低角色。

将此角色分配给您的帐户(启动数据流运行器作业的帐户(,而不是计算引擎默认服务帐户。将计算引擎默认服务帐户恢复原样(删除更改(。

云数据流访问控制指南

最新更新