Google-Cloud-Storage

為什麼我是項目所有者卻無法訪問云儲存對象?

  • November 13, 2019

我是一個特定項目的項目所有者,該項目有一個包含數百個對象的儲存桶。我最近通過失敗的 gcloud rsync 發現我的儲存桶中有一些對像我可以list但不能cpacl get等等,既不是來自命令行也不是來自云控制台。

例如:

gsutil acl get gs://$MYBUCKET/$SOMEOBJECT  
AccessDeniedException: Access denied. Please ensure you have OWNER permission on gs://$MYBUCKET/$SOMEOBJECT  

我有

  • 已驗證我已被驗證為正確的使用者 ( gcloud auth list)
  • 驗證我在項目的角色/所有者成員部分 ( gcloud projects get-iam-policy $PROJECT_ID)
  • 驗證儲存桶屬於項目(實體“project-owners- $ PROJECT_ID" has the projectNumber $ PROJECT_ID 和角色 OWNER)。
  • 儘管我是項目的創建者,但在Google云控制台中也會出現同樣的問題

到底是怎麼回事?

對 GCS 資源的訪問不是遞歸的。擁有一個項目或該項目中的儲存桶並不一定意味著您也具有對某些特定對象的讀取權限。擁有儲存桶確實意味著您可以列出或刪除該對象,但僅此而已。

對象的所有者始終是上傳它的使用者。預設情況下,對像上的 ACL 將與儲存桶的“預設對象 ACL”設置保持一致,但上傳者可以在上傳過程中選擇任何其他 ACL。

您可以將 Cloud IAM 政策設置為項目或儲存桶。

例如,如果您是項目所有者,並且您希望擁有項目中所有儲存桶的完全訪問權限,請按照以下步驟操作。

  1. 開放式IAM 管理
  2. 點擊Edit permissions與您要添加 Cloud IAM 政策的使用者關聯的圖示
  3. 添加[Storage]-[Storage Admin]角色。不是[Storage Legacy]
  4. 點擊Save按鈕

然後,即使您不是對象的所有者,您也會被授予對該對象的完全訪問權限。

引用自:https://serverfault.com/questions/811456