首页 > 解决方案 > 节点没有 storage.objects.create

问题描述

将图像上传到谷歌云存储的权限错误,但我已经在 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 权限

标签: google-cloud-platformgoogle-cloud-storageservice-accountsgoogle-iamgoogle-cloud-iam

解决方案


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

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

窗口语法:

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 Storage 的 Cloud IAM 角色


推荐阅读