本頁說明如何使用值區鎖定功能,包括使用保留政策和永久鎖定值區。
事前準備
如要使用 Bucket Lock 功能,請務必先完成下列各節中的步驟。
取得必要角色
如要取得使用 Bucket Lock 所需的權限,請要求管理員為您授予 bucket 的 Storage 管理員 (roles/storage.admin
) 角色。這個預先定義的角色具備使用 Bucket Lock 所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
storage.buckets.get
storage.buckets.list
- 如果您打算使用Google Cloud 控制台執行本頁的操作說明,才需要這項權限。
storage.buckets.update
您或許還可透過自訂角色取得這些權限。
如要瞭解如何授予值區角色,請參閱「搭配值區使用 IAM」。
設定值區的保留政策
如要新增、修改或移除值區的保留政策:
控制台
- 在 Google Cloud 控制台,前往「Cloud Storage bucket」頁面。
在值區清單中,找出要變更保留政策的值區,然後點選該值區的名稱。
選取頁面頂端的「保護」分頁標籤。
在「保留政策」部分中,設定保留政策:
如果值區目前未套用任何保留政策,請按一下「設定保留政策」add_box連結。選擇保留期限的時間單位和長度。
如果值區目前套用保留政策,該政策會顯示在這個專區。按一下「編輯」即可修改保留時間,按一下「刪除」則可完全移除保留政策。
要瞭解Google Cloud 主控台如何轉換不同的時間單位,請參閱「保留期限」一節。
如要瞭解如何透過 Google Cloud 控制台取得 Cloud Storage 作業失敗的詳細錯誤資訊,請參閱「疑難排解」一文。
指令列
使用 gcloud storage buckets update
指令並加上適當的旗標:
gcloud storage buckets update gs://BUCKET_NAME FLAG
其中:
BUCKET_NAME
是相關值區的名稱。例如:my-bucket
。FLAG
是值區保留期限的所需設定。請使用下列其中一種格式:--retention-period
和保留期限,即可新增或變更保留政策。例如:--retention-period=1d43200s
。--clear-retention-period
,即可移除值區的保留政策。
如果成功,回應如下所示:
Updating gs://my-bucket/... Completed 1
用戶端程式庫
C++
詳情請參閱 Cloud Storage C++ API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
下例示範如何設定值區的保留政策:
下例示範如何從值區移除保留政策:
C#
詳情請參閱 Cloud Storage C# API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
下例示範如何設定值區的保留政策:
下例示範如何從值區移除保留政策:
Go
詳情請參閱 Cloud Storage Go API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
下例示範如何設定值區的保留政策:
下例示範如何從值區移除保留政策:
Java
詳情請參閱 Cloud Storage Java API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
下例示範如何設定值區的保留政策:
下例示範如何從值區移除保留政策:
Node.js
詳情請參閱 Cloud Storage Node.js API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
下例示範如何設定值區的保留政策:
下例示範如何從值區移除保留政策:
PHP
詳情請參閱 Cloud Storage PHP API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
下例示範如何設定值區的保留政策:
下例示範如何從值區移除保留政策:
Python
詳情請參閱 Cloud Storage Python API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
下例示範如何設定值區的保留政策:
下例示範如何從值區移除保留政策:
Ruby
詳情請參閱 Cloud Storage Ruby API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
下例示範如何設定值區的保留政策:
下例示範如何從值區移除保留政策:
REST API
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization
標頭產生存取權杖。建立包含下列資訊的 JSON 檔案:
{ "retentionPolicy": { "retentionPeriod": "TIME_IN_SECONDS" } }
其中
TIME_IN_SECONDS
是值區物件必須保留的時間長度 (以秒為單位)。例如:2678400
。要瞭解不同的時間單位如何以秒計算,請參閱 保留期限一文。如要從值區移除保留政策,請在 JSON 檔案中使用下列指令:
{ "retentionPolicy": null }
使用
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.googleapis.com/storage/v1/b/BUCKET_NAME?fields=retentionPolicy"
其中:
JSON_FILE_NAME
是您在步驟 2 建立的 JSON 檔案路徑。BUCKET_NAME
是相關值區的名稱。例如:my-bucket
。
XML API
XML API 無法用來設定或移除現有值區的保留政策,只能用來在新值區中納入保留政策。
鎖定 bucket
如要鎖定值區並永久限制值區保留政策的編輯動作:
控制台
- 在 Google Cloud 控制台,前往「Cloud Storage bucket」頁面。
在值區清單中,找出您要鎖定保留政策的值區,然後點選該值區的名稱。
選取頁面頂端的「保護」分頁標籤。
在「保留政策」部分,按一下「鎖定」按鈕。
即會顯示「Lock retention policy?」(要鎖定保留政策嗎?) 對話方塊。
讀取「Permanent」(永久) 通知。
在「Bucket name」(值區名稱) 文字方塊中,輸入值區的名稱。
按一下 [Lock policy] (鎖定政策)。
如要瞭解如何透過 Google Cloud 控制台取得 Cloud Storage 作業失敗的詳細錯誤資訊,請參閱「疑難排解」一文。
指令列
使用加上 --lock-retention-period
旗標的 gcloud storage buckets update
指令:
gcloud storage buckets update gs://BUCKET_NAME --lock-retention-period
其中 BUCKET_NAME
是相關值區的名稱。例如:my-bucket
。
如果成功,回應會類似以下範例:
Updating gs://my-bucket/... Completed 1
用戶端程式庫
C++
詳情請參閱 Cloud Storage C++ API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
C#
詳情請參閱 Cloud Storage C# API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Go
詳情請參閱 Cloud Storage Go API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Java
詳情請參閱 Cloud Storage Java API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Node.js
詳情請參閱 Cloud Storage Node.js API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
PHP
詳情請參閱 Cloud Storage PHP API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Python
詳情請參閱 Cloud Storage Python API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Ruby
詳情請參閱 Cloud Storage Ruby API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
REST API
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization
標頭產生存取權杖。使用
cURL
透過POST
值區要求呼叫 JSON API:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/lockRetentionPolicy?ifMetagenerationMatch=BUCKET_METAGENERATION_NUMBER"
其中:
BUCKET_NAME
是相關值區的名稱。例如:my-bucket
。BUCKET_METAGENERATION_NUMBER
是值區的 metageneration 值。例如8
。您可以透過使用GET
值區要求呼叫 JSON API,找出值區的 metageneration 值。
XML API
XML API 無法用來鎖定值區,請改用其他 Cloud Storage 工具,例如 Google Cloud 控制台。
查看值區的保留政策和鎖定狀態
如果查看值區設定的保留政策 (如果有),以及該保留政策是否鎖定:
控制台
- 在 Google Cloud 控制台,前往「Cloud Storage bucket」頁面。
按一下要查看狀態的值區名稱。
如果 bucket 設有保留政策,bucket 的「保護」欄位會顯示保留期限。如果保留政策未鎖定,保留期限旁會顯示未鎖定的鎖定圖示。如果保留政策已鎖定,鎖定狀態的保留期限旁會顯示鎖定圖示。
指令列
使用加上 --format
旗標的 gcloud storage buckets describe
指令:
gcloud storage buckets describe gs://BUCKET_NAME --format="default(retention_policy)"
其中 BUCKET_NAME
是您要查看保留政策的值區名稱。例如:my-bucket
。
如果成功,且值區有保留政策,回應會類似以下內容:
retention_policy: effectiveTime: '2022-10-04T18:51:22.161000+00:00' retentionPeriod: '129600'
如果成功,且值區沒有保留政策,回應會類似以下內容:
null
用戶端程式庫
C++
詳情請參閱 Cloud Storage C++ API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
C#
詳情請參閱 Cloud Storage C# API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Go
詳情請參閱 Cloud Storage Go API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Java
詳情請參閱 Cloud Storage Java API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Node.js
詳情請參閱 Cloud Storage Node.js API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
PHP
詳情請參閱 Cloud Storage PHP API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Python
詳情請參閱 Cloud Storage Python API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
Ruby
詳情請參閱 Cloud Storage Ruby API 參考說明文件。
如要驗證 Cloud Storage,請設定應用程式預設憑證。 詳情請參閱「設定用戶端程式庫的驗證機制」。
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.googleapis.com/storage/v1/b/BUCKET_NAME?fields=retentionPolicy"
其中
BUCKET_NAME
是相關值區的名稱。例如:my-bucket
。如果值區已設定保留政策,回應會如下列範例所示:
{ "retentionPolicy": { "retentionPeriod": "TIME_IN_SECONDS", "effectiveTime": "DATETIME", "isLocked": "BOOLEAN" }, }
XML API
XML API 不能用來查看值區的保留政策,請改用Google Cloud 控制台等其他 Cloud Storage 工具。