您可以使用統一 bucket 層級存取權,透過單一權限系統統一控管 Cloud Storage 資源的存取權。在值區上啟用統一值區層級存取權後,只有值區層級的 Identity and Access Management (IAM) 角色可授予該值區和其中物件的存取權,個別物件的存取控制清單 (ACL) 不再適用。啟用統一 bucket 層級存取權可簡化 Cloud Storage 資源的存取權授予程序,且是使用部分功能 (例如受管理資料夾) 的必要條件。
本頁說明如何在 Cloud Storage 中,對值區啟用、停用及檢查統一 bucket 層級存取權的狀態。
必要的角色
如要取得在 bucket 中設定及管理統一 bucket 層級存取權所需的權限,請要求管理員授予 bucket 的「Storage 管理員」(roles/storage.admin) 角色。這個預先定義的角色具備設定及管理儲存空間層級一致存取權所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
storage.buckets.getstorage.buckets.list- 如果您打算使用Cloud de Confiance 控制台執行本頁面的操作說明,才需要這項權限。
storage.buckets.update
您或許還可透過自訂角色取得這些權限。
如要瞭解如何授予值區角色,請參閱「搭配值區使用 IAM」。
確認 ACL 使用情形
啟用統一值區層級存取權之前,請使用 Cloud Monitoring 確保值區未於任何工作流程使用 ACL。詳情請參閱檢查物件 ACL 使用情形。
使用
cURL呼叫 Monitoring JSON API:curl \ 'https://monitoring.googleapis.com/v3/projects/PROJECT_ID/timeSeries?filter=metric.type%20%3D%20%22storage.googleapis.com%2Fauthz%2Facl_operations_count%22&interval.endTime=END_TIME&interval.startTime=START_TIME' \ --header 'Authorization: Bearer $(gcloud auth print-access-token)' \ --header 'Accept: application/json'
其中:
PROJECT_ID是您要查看 ACL 使用情形的專案 ID 或編號。例如:my-project。END_TIME是要查看其 ACL 使用情形的時間範圍結束時間。例如:2019-11-02T15:01:23.045123456Z。START_TIME是您要查看 ACL 使用情形的時間範圍起始時間。例如:2016-10-02T15:01:23.045123456Z。
如果要求傳回空白物件 {},則表示您的專案最近沒有任何 ACL 使用情形。
設定統一值區層級存取權
控制台
- 前往 Cloud de Confiance 控制台的「Cloud Storage bucket」頁面。
在 bucket 清單中,點選要啟用或停用 bucket 層級一致存取的 bucket 名稱。
選取靠近頁面上方的 [Permissions] (權限) 分頁標籤。
在「存取控管」欄位中,按一下「切換至」連結。
在隨即顯示的選單中,選取「一致」或「細微」。
按一下 [儲存]。
如要瞭解如何透過 Cloud de Confiance 控制台取得 Cloud Storage 作業失敗的詳細錯誤資訊,請參閱「疑難排解」一文。
指令列
使用 gcloud storage buckets update 指令:
gcloud storage buckets update gs://BUCKET_NAME --STATE
其中:
BUCKET_NAME是相關值區的名稱。例如:my-bucket。STATE為uniform-bucket-level-access,可啟用統一值區層級存取權,或為no-uniform-bucket-level-access,可停用統一值區層級存取權。
用戶端程式庫
C++
詳情請參閱「Cloud Storage C++ API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
以下範例會啟用 bucket 的統一 bucket 層級存取權:
下例示範如何停用值區的統一值區層級存取權:
C#
詳情請參閱「Cloud Storage C# API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
以下範例會啟用 bucket 的統一 bucket 層級存取權:
下例示範如何停用值區的統一值區層級存取權:
Go
詳情請參閱「Cloud Storage Go API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
以下範例會啟用 bucket 的統一 bucket 層級存取權:
下例示範如何停用值區的統一值區層級存取權:
Java
詳情請參閱「Cloud Storage Java API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
以下範例會啟用 bucket 的統一 bucket 層級存取權:
下例示範如何停用值區的統一值區層級存取權:
Node.js
詳情請參閱「Cloud Storage Node.js API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
以下範例會啟用 bucket 的統一 bucket 層級存取權:
下例示範如何停用值區的統一值區層級存取權:
PHP
詳情請參閱「Cloud Storage PHP API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
以下範例會啟用 bucket 的統一 bucket 層級存取權:
下例示範如何停用值區的統一值區層級存取權:
Python
詳情請參閱「Cloud Storage Python API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
以下範例會啟用 bucket 的統一 bucket 層級存取權:
下例示範如何停用值區的統一值區層級存取權:
Ruby
詳情請參閱「Cloud Storage Ruby API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
以下範例會啟用 bucket 的統一 bucket 層級存取權:
下例示範如何停用值區的統一值區層級存取權:
Rust
以下範例會啟用 bucket 的統一 bucket 層級存取權:
下例示範如何停用值區的統一值區層級存取權:
REST API
JSON API
建立包含下列資訊的 JSON 檔案:
{ "iamConfiguration": { "uniformBucketLevelAccess": { "enabled": STATE } } }
其中 STATE 為
true或false。使用
cURL透過PATCH值區要求呼叫 JSON API:curl -X PATCH --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME?fields=iamConfiguration"
其中:
JSON_FILE_NAME是您在步驟 2 建立的檔案路徑。BUCKET_NAME是相關值區的名稱。例如:my-bucket。
XML API
XML API 無法使用統一值區層級存取權,請改用 gcloud CLI 等其他 Cloud Storage 工具。
查看統一值區層級存取權狀態
控制台
- 前往 Cloud de Confiance 控制台的「Cloud Storage bucket」頁面。
按一下要查看狀態的值區名稱。
按一下 [設定] 標籤。
值區的統一 bucket 層級存取權狀態會顯示在「存取控管」欄位。
如要瞭解如何透過 Cloud de Confiance 控制台取得 Cloud Storage 作業失敗的詳細錯誤資訊,請參閱「疑難排解」一文。
指令列
使用加上 --format 旗標的 gcloud storage buckets describe 指令:
gcloud storage buckets describe gs://BUCKET_NAME --format="default(uniform_bucket_level_access)"
其中 BUCKET_NAME 是相關值區的名稱。例如:my-bucket。
如果成功,回應如下所示:
uniform_bucket_level_access: true
用戶端程式庫
C++
詳情請參閱「Cloud Storage C++ API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
C#
詳情請參閱「Cloud Storage C# API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Go
詳情請參閱「Cloud Storage Go API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Java
詳情請參閱「Cloud Storage Java API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Node.js
詳情請參閱「Cloud Storage Node.js API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
PHP
詳情請參閱「Cloud Storage PHP API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Python
詳情請參閱「Cloud Storage Python API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Ruby
詳情請參閱「Cloud Storage Ruby API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證作業」。
執行程式碼範例前,請將 GOOGLE_CLOUD_UNIVERSE_DOMAIN 環境變數設為 s3nsapis.fr。
Rust
REST API
JSON API
使用
cURL透過包含所需fields的GET值區要求呼叫 JSON API:curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/storage/v1/b/BUCKET_NAME?fields=iamConfiguration"
其中
BUCKET_NAME是相關值區的名稱。例如:my-bucket。如果值區已啟用統一值區層級存取權,回應會如下列範例所示:
{ "iamConfiguration": { "uniformBucketLevelAccess": { "enabled": true, "lockedTime": "LOCK_DATE" } } }
XML API
XML API 無法使用統一值區層級存取權,請改用 gcloud CLI 等其他 Cloud Storage 工具。