僅值區政策

本頁討論「僅值區政策」功能,可讓您統一控管 Cloud Storage 資源的存取權。值區啟用此功能後,只有值區層級的 Cloud Identity and Access Management (Cloud IAM) 權限可授予該值區和其中物件的存取權;存取控制清單 (ACL) 會停用,ACL 授予的存取權會被撤銷。如需此功能的使用指南,請參閱使用「僅值區政策」一文。

總覽

Cloud Storage 提供兩個系統來授予使用者存取值區和物件的權限:Cloud Identity and Access Management (Cloud IAM)存取控制清單 (ACL)。這些系統會並行運作,不過只需要其中一個系統授予使用者權限,使用者即可存取 Cloud Storage 資源。Cloud IAM 在整個 Google Cloud Platform (GCP) 當中廣泛使用,可讓您在值區和專案層級授予更細部的權限。ACL 僅可用於 Cloud Storage,而且權限選項較少,但也可讓您依照物件來授予權限。

為了支援統一的權限系統,Cloud Storage 具備「僅值區政策」功能。使用這項功能,會停用所有 Cloud Storage 資源的 ACL:此時只有 Cloud IAM 能夠授予 Cloud Storage 資源的存取權。

您是否應使用「僅值區政策」?

若出現下列情形,請採用「僅值區政策」:

  • 您想透過單一權限系統來控管 Cloud Storage 資源的存取權。

  • 您希望所有 GCP 資源的存取權控制都採取一致做法。

  • 您的值區有許多物件,而您不想個別管理它們的存取權。

  • 您想使用 GCP 安全功能,例如 Cloud 稽核記錄網域限定共用,這兩項功能只能追蹤透過 Cloud IAM 政策 (而非 ACL) 授予的存取權。

  • 您不希望物件上傳者始終擁有物件的完整控制權。

若出現下列情形,請不要採用「僅值區政策」:

  • 您想要透過舊版 ACL 來授予值區內特定物件的存取權。

  • 您希望物件上傳者擁有該物件的完整控制權,但減少該使用者對值區內其他物件的存取權。

限制

使用「僅值區政策」具有下列限制:

  • 某些可將資料匯出至 Cloud Storage 的 GCP 服務,無法將資料匯出至已啟用「僅值區政策」的值區。這些服務包括:

    Stackdriver、Cloud 稽核記錄和 Cloud Datastore。

  • 您無法使用 XML API 來檢查「僅值區政策」的狀態,也無法將其啟用或停用。

  • 您無法在已啟用「僅值區政策」的情況下,使用 XML API 查看或設定值區的權限。

  • 在已啟用「僅值區政策」的值區中,除非您明確設定值public,否則可公開存取物件的 Cache-Control 值會預設為 private

啟用後的行為

您可在建立新的值區時,或者在您明確在現有值區上啟用「僅值區政策」時,啟用「僅值區政策」。

一旦啟用,下列 ACL 功能將停止:

  • 設定、讀取或修改值區和物件 ACL 的要求會失敗,並顯示 400 Bad Request 錯誤。

  • 使用 BucketAccessControlsDefaultObjectAccessControlsObjectAccessControls 方法提出的 JSON API 要求會失敗,並顯示 400 Bad Request 錯誤。

  • 對值區或物件中繼資料的 full 投影 JSON API 要求會失敗,回應會包括空白的 ACL 清單。

  • gsutil 指令 cp -pmv -prsync -p 會失敗 (不論「僅值區政策」啟用的值區為來源或目的地皆是如此)。

  • 個別物件擁有權將不再存在;由這些擁有權授予的存取權將被撤銷,對值區和物件中繼資料提出的要求不再包含 owner 欄位。

此外,若您在建立新值區時啟用「僅值區政策」,該值區會自動接收到新的 Cloud IAM 角色。此行為會保留物件從值區預設物件 ACL 沿用的權限。若您在現有值區上啟用「僅值區政策」,您必須手動套用這些角色;若您曾變更值區的預設物件 ACL,建議您套用不同組的角色。

若還原的行為

為了要停用「僅值區政策」,並還原成使用 ACL,Cloud Storage 會保存現有 ACL 90 天。若您在這段期間停用「僅值區政策」:

  • 物件會重新取得已保存的 ACL。

  • 在「僅值區政策」啟用後新增至值區的物件,會依據該值區使用的預設物件 ACL 取得 ACL。

修改現有值區的考量

在現有值區上啟用「僅值區政策」時,應確保之前仰賴 ACL 獲得存取權的使用者和服務的權限均遷移至 Cloud IAM。本節概述將值區修改為啟用「僅值區政策」時應採取的步驟。請注意,由於 ACL 和 Cloud IAM 會依據值區權限同步,您應特別考量值區內物件的存取權,而非值區的存取權。

考慮值區層級 IAM 權限是否過度公開資料

指派對應至 ACL 的 Cloud IAM 前,請考慮下列事項:

  • 套用至值區層級的 Cloud IAM 權限,會套用至值區內的所有物件,但物件 ACL 則視物件而異。

若您只想將存取權套用至部分物件,您應將這些物件放入不同值區。放入同一值區內的物件,應具有相同權限。

檢查物件 ACL 使用情形

值區修改為啟用「僅值區政策」時,應檢查值區內物件的存取權是否由 ACL 提供。如要檢查此情況,Stackdriver 的指標可追蹤 ACL 使用情形。若這個指標顯示使用者或服務必須透過 ACL 來存取您的物件,您應先指派對應的 Cloud IAM,再啟用「僅值區政策」。如需檢查 Stackdriver 中 ACL 使用情形的指南,請參閱檢查 ACL 使用情形

這個指標可用來判斷,啟用「僅值區政策」是否會中斷您的工作流程:

指標 說明
storage.googleapis.com/authz/acl_operations_count 在「僅值區政策」啟用後停用的 ACL 作業數目,會依 ACL 作業類型和值區細分。

務必要檢查的重要 ACL 作業是 OBJECT_ACCESS_REQUIRED_OBJECT_ACL

  • 如果這個數字為零,則不需要物件層級的 ACL 就能存取過去 6 週內的物件。Cloud IAM 政策會涵蓋值區或專案層級的必要權限。

  • 如果這個數字大於零,表示過去 6 週內曾有需要物件 ACL 權限的物件存取要求。啟用「僅值區政策」之前應先指派對等的 Cloud IAM 政策

如要進一步瞭解 Stackdriver 指標,請參閱指標、時間序列和資源一文。

檢查值區的預設物件 ACL

所有值區都有與之相關聯的預設物件 ACL。新增至值區的物件都擁有預設物件 ACL,除非將該物件新增至值區時已明確提供 ACL。

啟用「僅值區政策」前,請檢查您值區擁有的預設物件 ACL。請考慮「僅值區政策」啟用後,您是否想要授予與預設物件 ACL 相關聯的權限。若想這樣做,請將對應的 Cloud IAM 指派至值區。

指派對應至物件 ACL 的 Cloud IAM

物件 ACL 可能會授予 Cloud IAM 目前無法授予的存取權。啟用「僅值區政策」時,為了確保現有使用者不會失去物件的存取權,請參考下表,將適當的 Cloud IAM 角色指派給受影響的使用者

物件 ACL 權限 對應的 Cloud IAM 角色
READER roles/storage.legacyObjectReader
OWNER roles/storage.legacyObjectOwner

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Cloud Storage
需要協助嗎?請前往我們的支援網頁