問題

使用 GCP Cloud Storage 的網頁時,想把物件複製到別的地方,結果出現錯誤無法複製您的物件。 存取遭拒
無法複製您的物件。 存取遭拒

直接點下載則是出現

1
2
Forbidden
Error 403

點擊物件進查看則出現:
您必須具備其他權限,才能查看這個物件的中繼資料;請要求物件擁有者授予您「storage.objects.get」權限 (例如為您的帳戶授予身分與存取權管理 (IAM) 儲存空間管理員角色)。

請要求物件擁有者授予您「storage.objects.get」權限

使用指令複製

1
gsutil cp gs://backup/20230529.gz gs://archives/20230529.gz

出現錯誤

1
2
Copying gs://backup/20230529.gz [Content-Type=application/octet-stream]...
AccessDeniedException: 403 [email protected] does not have storage.objects.get access to the Google Cloud Storage object. Permission 'storage.objects.get' denied on resource (or it may not exist).

使用指令下載

1
gsutil cp gs://backup/20230529.gz .

出現錯誤

1
2
3
4
5
6
Copying gs://backup/20230529.gz...
AccessDeniedException: 403 GiB]
AccessDeniedException: 403
AccessDeniedException: 403
AccessDeniedException: 403
CommandException: Some components of ./20230529.gz were not downloaded successfully. Please retry this download.

原因

如同字面上的描述,帳號沒有權限,需要指派相關權限。我的帳號已經是擁有者角色,但原來權限還是不足。
身分與存取權管理 (IAM)

解決方法

必須指派 Storage 相關權限,從 [IAM 與管理] => [身份與存取權管理] => [編輯主體] => [新增其他角色],然後搜索 storage
新增其他角色

找到相關的角色,例如我是指派 [Storage 管理員],就可以成功下載。