本頁面說明如何使用物件保留鎖定功能,包括為 bucket 啟用這項功能,以及為 bucket 中的物件設定保留設定。
必要的角色
如要取得啟用 bucket 的物件保留鎖定功能,以及設定物件保留設定所需的權限,請要求管理員在 bucket 或包含 bucket 的專案中,授予您 Storage 管理員 (roles/storage.admin) IAM 角色。這個預先定義的角色具備設定及管理保留設定所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
storage.buckets.createstorage.buckets.enableObjectRetentionstorage.buckets.getstorage.buckets.list- 只有在您打算使用Google Cloud 控制台執行本頁操作說明時,才需要這項權限。
storage.objects.getstorage.objects.list- 只有在您打算使用Google Cloud 控制台執行本頁操作說明時,才需要這項權限。
storage.objects.overrideUnlockedRetention- 只有在您打算鎖定或縮短現有保留設定時,才需要這項權限。
storage.objects.setRetentionstorage.objects.update
您或許還可透過自訂角色取得這些權限。
如要瞭解如何授予 bucket 角色,請參閱「在 bucket 上設定及管理 IAM 政策」。如要瞭解如何授予專案角色,請參閱「管理專案存取權」。
啟用 bucket 的物件保留功能
請按照下列操作說明,允許 bucket 中物件的保留設定。如要為現有 bucket 啟用物件保留設定,請按照 Google Cloud 控制台操作說明進行。
控制台
為新 bucket 啟用物件保留設定:
- 按照一般方式建立 bucket,並在「Choose how to protect object data」(選擇保護物件資料的方式) 步驟中,依序選取「Retention (For compliance)」(保留 (法規遵循)) 和「Enable object retention」(啟用物件保留功能)。
為現有 bucket 啟用物件保留設定:
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
在 bucket 清單中,點選要啟用物件保留功能的 bucket 名稱。
選取靠近頁面頂端的「保護」分頁標籤。
值區的物件保留狀態會顯示在「Object retention」(物件保留) 區段中。
在「Object retention」(物件保留) 專區,按一下「Object Retention Not Enabled」(未啟用物件保留功能)。
在隨即顯示的對話方塊中,按一下「確認」。
指令列
照常建立 bucket,並在指令中加入 --enable-per-object-retention 旗標。
用戶端程式庫
C++
詳情請參閱 Cloud Storage C++ API 參考文件。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
C#
詳情請參閱「Cloud Storage C# 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 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Rust
REST API
查看 bucket 的物件保留狀態
如要查看是否可以為 bucket 中的物件設定保留設定,請按照下列步驟操作:
控制台
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
按一下要檢查狀態的 bucket 名稱。
按一下「保護」分頁標籤。
值區的物件保留狀態會顯示在「Object retention」(物件保留) 區段中。
指令列
使用 gcloud storage buckets describe 指令,並加上 --format 旗標:
gcloud storage buckets describe gs://BUCKET_NAME --format="default(per_object_retention)"
其中 BUCKET_NAME 是要查看保留政策的 bucket 名稱。例如:my-bucket。
如果成功,且 bucket 設有資料保留政策,回應內容會類似於下列內容:
per_object_retention: mode: Enabled
如果成功,且 bucket 沒有資料保留政策,回應會類似下列內容:
null
用戶端程式庫
C++
詳情請參閱 Cloud Storage C++ API 參考文件。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
如要查看 bucket 的物件保留設定,請按照操作說明顯示 bucket 的中繼資料,並在回應中尋找物件保留欄位。C#
詳情請參閱 Cloud Storage C# 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 中繼資料的指示操作,並在回應中尋找物件保留欄位。Rust
如要查看 bucket 的物件保留設定,請按照操作說明顯示 bucket 的中繼資料,並在回應中尋找物件保留欄位。REST API
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。使用
cURL呼叫 JSON API,並傳送包含objectRetention欄位的GETBucket 要求:curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME?fields=objectRetention"
其中
BUCKET_NAME是相關 bucket 的名稱。例如:my-bucket。
XML API
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。使用
cURL呼叫 XML API,並將GETBucket 要求範圍設為?object-lock:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME?object-lock"
其中
BUCKET_NAME是相關 bucket 的名稱。例如:my-bucket。
設定物件的保留設定
如要為物件設定保留設定,物件必須儲存在已啟用物件保留功能的 bucket 中。如要為物件設定保留設定,請按照下列步驟操作:
控制台
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
在 bucket 清單中,點選含有要設定或修改保留設定物件的 bucket 名稱。
系統會開啟「Bucket details」(值區詳細資料) 頁面,並選取「Objects」(物件) 分頁標籤。
前往該物件 (可能位於資料夾中)。
按一下物件名稱。
「Object details」(物件詳細資料) 頁面隨即開啟,顯示物件中繼資料。
在「保護」部分,按一下與「從物件保留設定」相關聯的「編輯」圖示 (edit)。
「Edit retention」(編輯保留設定) 窗格隨即開啟。
在「物件保留設定」部分,按一下「已啟用」或「已停用」。
- 如果啟用保留設定,請在「Retain until time」(保留期限) 區段中選取設定的日期和時間,然後在「Retention mode」(保留模式) 區段中點選「Unlocked」(未鎖定) 或「Locked」(已鎖定)。
按一下「確認」。
指令列
使用 gcloud storage objects update 指令,並加上適當的旗標。如要新增或修改保留設定,請使用下列指令。請注意,如果您要修改現有設定,並鎖定設定或縮短保留期限,則必須額外加入 --override-unlocked-retention 旗標:
gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME --retain-until=DATETIME --retention-mode=STATE
其中:
BUCKET_NAME是相關 bucket 的名稱。例如:my-bucket。OBJECT_NAME是相關物件的名稱。例如:kitten.png。DATETIME是最早可刪除物件的日期和時間。例如:2028-02-15T05:30:00Z。STATE可以是Locked或Unlocked。
如果成功,回應會類似以下範例:
Updating gs://my-bucket/kitten.png... Completed 1
如要從物件中移除保留設定,請使用下列指令:
gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME --clear-retention --override-unlocked-retention
其中:
BUCKET_NAME是相關 bucket 的名稱。例如:my-bucket。OBJECT_NAME是相關物件的名稱。例如:kitten.png。
用戶端程式庫
C++
詳情請參閱「Cloud Storage C++ API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
C#
詳情請參閱「Cloud Storage C# 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 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Rust
REST API
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。建立包含下列資訊的 JSON 檔案:
{ "retention": { "mode": STATE, "retainUntilTime": "DATETIME" } }
其中:
STATE可以是Locked或Unlocked。DATETIME是可刪除物件的最早日期和時間。例如:2028-02-15T05:30:00Z。
使用
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/o/OBJECT_NAME?overrideUnlockedRetention=BOOLEAN"
其中:
JSON_FILE_NAME是您在步驟 2 建立的檔案路徑。BUCKET_NAME是相關 bucket 的名稱。例如:my-bucket。OBJECT_NAME是相關物件的網址編碼名稱。例如pets/kitten.png,網址編碼為pets%2Fkitten.png。- 如果要求縮短、移除或鎖定現有的保留設定,則
BOOLEAN必須為true。否則,要求中可以完全不包含overrideUnlockedRetention參數。
XML API
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。建立包含下列資訊的 XML 檔案:
<Retention> <Mode> STATE </Mode> <RetainUntilDate> DATETIME </RetainUntilDate> </Retention>其中:
STATE為GOVERNANCE或COMPLIANCE。DATETIME是可刪除物件的最早日期和時間。例如:2028-02-15T05:30:00Z。
使用
cURL呼叫 XML API,並將PUT物件要求範圍設為?retention:curl -X PUT --data-binary @XML_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "x-goog-bypass-governance-retention: BOOLEAN" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?retention"
其中:
XML_FILE_NAME是您在步驟 2 建立的 XML 檔案路徑。- 如果要求縮短、移除或鎖定現有的保留設定,
BOOLEAN必須為true。否則,可以完全從要求中排除x-goog-bypass-governance-retention標頭。 BUCKET_NAME是相關 bucket 的名稱。例如:my-bucket。OBJECT_NAME是相關物件的網址編碼名稱。例如pets/kitten.png,網址編碼為pets%2Fkitten.png。
大量設定或更新保留設定
如要透過單一工作,為數百萬或數十億個物件設定或更新保留設定,請使用儲存空間批次作業。如要建立工作,請指定要設定或更新保留設定的物件,方法是在資訊清單檔案中提供物件清單,或使用物件前置字串。指定物件清單後,請建立儲存空間批次作業工作,設定或更新保留設定。
查看物件的保留設定
如要查看物件是否設有保留設定,以及設定內容為何,請按照下列步驟操作:
控制台
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
在 bucket 清單中,點選含有要查看保留設定物件的 bucket 名稱。
「Bucket details」(bucket 詳細資料) 頁面隨即開啟,並選取「Objects」(物件) 分頁標籤。
前往該物件 (可能位於資料夾中)。
按一下物件名稱。
「Object details」(物件詳細資料) 頁面隨即開啟,顯示物件中繼資料。物件的任何保留設定資訊都會顯示在「保護」部分。
指令列
使用 gcloud storage objects describe 指令,並加上 --format 旗標:
gcloud storage objects describe gs://BUCKET_NAME/OBJECT_NAME --format="default(retention_settings)"
其中:
BUCKET_NAME是相關 bucket 的名稱。例如:my-bucket。OBJECT_NAME是相關物件的名稱。例如:kitten.png。
如果成功且物件有保留設定,回應會類似下列內容:
retention_settings: mode: Unlocked retainUntilTime: '2028-11-30T14:11:14+00:00'
如果成功,且物件沒有保留設定,回應會類似下列內容:
null
用戶端程式庫
C++
詳情請參閱「Cloud Storage C++ API 參考文件」。
如要向 Cloud Storage 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
如要查看物件的保留設定,請按照操作說明顯示物件的中繼資料,並在回應中尋找保留欄位。C#
詳情請參閱「Cloud Storage C# 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 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
如要查看物件的保留設定,請按照顯示物件中繼資料的指示操作,並在回應中尋找保留欄位。Rust
如要查看物件的保留設定,請按照操作說明顯示物件的中繼資料,並在回應中尋找保留欄位。REST API
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。使用
cURL呼叫 JSON API,並傳送包含retention欄位的GET物件要求:curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/OBJECT_NAME?fields=retention"
其中:
BUCKET_NAME是相關 bucket 的名稱。例如:my-bucket。OBJECT_NAME是相關物件的名稱。例如:kitten.png。
XML API
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。使用
cURL呼叫 XML API,並將GET物件要求範圍設為?retention:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME?retention"
其中:
BUCKET_NAME是相關 bucket 的名稱。例如:my-bucket。OBJECT_NAME是相關物件的名稱。例如:kitten.png。
後續步驟
- 進一步瞭解保留設定。
- 瞭解其他保護 Cloud Storage 資料的功能。
- 瞭解物件生命週期管理,這項功能可在檔案達到保留期限時自動刪除檔案。