本頁說明如何在 Cloud Storage 中,對值區啟用、停用及檢查統一值區層級存取權的狀態。
必要的角色
如要取得設定及管理 bucket 統一 bucket 層級存取權所需的權限,請要求管理員授予您 bucket 的儲存空間管理員 (roles/storage.admin
) 角色。這個預先定義的角色具備設定及管理統一儲存空間層級存取權所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
storage.buckets.get
storage.buckets.list
- 如果您打算使用Trusted Cloud 控制台執行本頁的操作說明,才需要這項權限。
storage.buckets.update
您或許還可透過自訂角色取得這些權限。
如要瞭解如何授予值區角色,請參閱「搭配值區使用 IAM」。
確認 ACL 使用情形
啟用統一值區層級存取權之前,請使用 Cloud Monitoring 確保您的值區未於任何工作流程使用 ACL。詳情請參閱檢查物件 ACL 使用情形。
安裝並初始化 gcloud CLI,以便為
Authorization
標頭產生存取權杖。使用
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 使用情形。
設定統一值區層級存取權
控制台
- 在 Trusted Cloud 控制台,前往「Cloud Storage bucket」頁面。
在 bucket 清單中,點選要啟用或停用 bucket 層級一致存取權的 bucket 名稱。
選取靠近頁面上方的 [Permissions] (權限) 分頁標籤。
在「存取控制」欄位中,按一下「切換至」連結。
在隨即顯示的選單中,選取「一致」或「精細」。
按一下 [儲存]。
如要瞭解如何透過 Trusted Cloud 控制台取得 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
。
以下範例會啟用值區的統一值區層級存取權:
下例示範如何停用值區的統一值區層級存取權:
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
。
以下範例會啟用值區的統一值區層級存取權:
下例示範如何停用值區的統一值區層級存取權:
REST API
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization
標頭產生存取權杖。建立包含下列資訊的 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 工具。
查看統一值區層級存取權狀態
控制台
- 在 Trusted Cloud 控制台,前往「Cloud Storage bucket」頁面。
按一下要查看狀態的值區名稱。
按一下 [設定] 標籤。
值區的統一值區層級存取權狀態會顯示在「存取權控管」欄位。
如要瞭解如何透過 Trusted Cloud 控制台取得 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
。
REST API
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization
標頭產生存取權杖。使用
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 工具。