本頁說明如何使用 Bucket Lock 功能,包括如何處理保留政策,以及如何永久鎖定 bucket。
事前準備
使用 Bucket Lock 功能前,請務必先完成下列各節中的步驟。
取得必要角色
如要取得使用 Bucket Lock 所需的權限,請要求管理員授予您 bucket 的「Storage 管理員」(roles/storage.admin) 角色。這個預先定義的角色具備使用 Bucket Lock 所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
storage.buckets.getstorage.buckets.list- 只有在您打算使用Cloud de Confiance 控制台執行本頁操作說明時,才需要這項權限。
storage.buckets.update
您或許還可透過自訂角色取得這些權限。
如要瞭解如何授予 bucket 角色,請參閱「在 bucket 上設定及管理 IAM 政策」。
為 bucket 設定資料保留政策
如要新增、修改或移除 bucket 的資料保留政策,請按照下列步驟操作:
控制台
- 前往 Cloud de Confiance 控制台的「Cloud Storage bucket」頁面。
在 bucket 清單中,按一下要變更資料保留政策的 bucket 名稱。
選取頁面頂端的「保護」分頁標籤。
在「Retention policy」(保留政策) 部分,設定保留政策:
如果值區目前未套用任何保留政策,請按一下「設定保留政策」add_box連結。選擇保留期限的時間單位和長度。
如果 bucket 目前適用資料保留政策,該政策會顯示在這個部分。按一下「Edit」(編輯) 即可修改保留時間,或按一下「Delete」(刪除) 即可完全移除保留政策。
如要瞭解Cloud de Confiance 控制台如何在不同時間單位之間轉換,請參閱「保留期限」。
如要瞭解如何在 Cloud de Confiance 控制台中取得 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 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 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
安裝並初始化 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.s3nsapis.fr/storage/v1/b/BUCKET_NAME?fields=retentionPolicy"
其中:
JSON_FILE_NAME是您在步驟 2 建立的 JSON 檔案路徑。BUCKET_NAME是相關 bucket 的名稱。例如:my-bucket。
XML API
XML API 無法用於設定或移除現有值區的資料保留政策。只能用來在新值區中納入保留政策。
鎖定 bucket
如要鎖定值區並永久限制值區保留政策的編輯動作:
控制台
- 前往 Cloud de Confiance 控制台的「Cloud Storage bucket」頁面。
在 bucket 清單中,點選要鎖定資料保留政策的 bucket 名稱。
選取靠近頁面頂端的「保護」分頁標籤。
在「資料保留政策」部分,按一下「鎖定」按鈕。
系統會顯示「Lock retention policy?」(要鎖定資料保留政策嗎?) 對話方塊。
讀取「Permanent」(永久) 通知。
在「Bucket name」(值區名稱) 文字方塊中,輸入值區的名稱。
按一下 [Lock policy] (鎖定政策)。
如要瞭解如何在 Cloud de Confiance 控制台中取得 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 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 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
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。使用
cURL來透過POST值區要求呼叫 JSON API:curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.s3nsapis.fr/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 工具,例如 Cloud de Confiance 控制台。
查看 bucket 的資料保留政策和鎖定狀態
如要查看 bucket 是否設有資料保留政策,以及該政策是否已鎖定,請按照下列步驟操作:
控制台
- 前往 Cloud de Confiance 控制台的「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 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
執行程式碼範例前,請將 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
安裝並初始化 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=retentionPolicy"
其中
BUCKET_NAME是相關 bucket 的名稱。例如:my-bucket。如果值區已設定保留政策,回應會如下列範例所示:
{ "retentionPolicy": { "retentionPeriod": "TIME_IN_SECONDS", "effectiveTime": "DATETIME", "isLocked": "BOOLEAN" }, }
XML API
XML API 不能用來查看值區的保留政策,請改用其他 Cloud Storage 工具,例如Cloud de Confiance 控制台。