【问题标题】:node does not have storage.objects.create节点没有 storage.objects.create
【发布时间】:2020-01-26 23:10:07
【问题描述】:

将图片上传到谷歌云存储的权限错误,但我已经在 IAM 上授予了适当的权限

Error: reportai-images@even-shuttle-250512.iam.gserviceaccount.com does not have storage.objects.create access to reportai-images/images.jpeg.
    at Gaxios.request (/home/jvcabral/Projects/reportai_image_upload/node_modules/gaxios/build/src/gaxios.js:70:23)
    at process._tickCallback (internal/process/next_tick.js:68:7)

IAM Permissions

【问题讨论】:

  • 您是否已经搜索过该错误以查看可能的解决方案?比如stackoverflow.com/questions/58120745/…可能是针对python的,但是解决方案跟编程语言无关,因为是gservice错误。
  • 我找到的所有解决方案都说要授予 IAM 帐户权限,但我已经这样做了,错误仍在继续

标签: google-cloud-platform google-cloud-storage service-accounts google-iam google-cloud-iam


【解决方案1】:

IAM 成员账户没有您项目的storage.objects.create 权限。

要列出分配给项目的 IAM 成员角色,请执行此命令。将 PROJECT_ID 替换为您的项目 ID,它似乎是 even-shuttle-250512。

gcloud projects get-iam-policy PROJECT_ID > project_roles.txt

查看成员的文件project_roles.txt 并确认为服务帐户分配了哪些角色:

reportai-images@even-shuttle-250512.iam.gserviceaccount.com

将角色添加到项目中以授予服务帐户所需的权限:

Windows 语法:

gcloud projects add-iam-policy-binding PROJECT_ID ^
--member=serviceAccount:reportai-images@even-shuttle-250512.iam.gserviceaccount.com ^
--role=roles/storage.admin

Linux/macOS 语法:

gcloud projects add-iam-policy-binding PROJECT_ID \
--member=serviceAccount:reportai-images@even-shuttle-250512.iam.gserviceaccount.com \
--role=roles/storage.admin

请注意,在前面的命令中,我分配了角色 Storage Admin。选择一个满足您的最低权限要求的角色。例如roles/storage.legacyBucketWriter 可能更合适。

Cloud IAM roles for Cloud Storage

【讨论】:

    猜你喜欢
    • 2019-08-21
    • 2013-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-20
    • 2012-06-24
    • 2011-03-19
    相关资源
    最近更新 更多