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