本頁面說明如何為組織中的新舊 bucket 停用虛刪除功能。
新值區預設會啟用虛刪除功能,以免資料遺失。如有需要,您可以修改虛刪除政策,為現有 bucket 停用虛刪除功能,也可以設定全機構預設標記,為新 bucket 預設停用虛刪除功能。請注意,停用虛刪除功能後,刪除的資料就無法復原,包括誤刪或惡意刪除的資料。
必要的角色
如要取得停用虛刪除功能所需的權限,請要求管理員在組織層級授予您下列 IAM 角色:
- 儲存空間管理員 (
roles/storage.admin) - 標記管理員 (
roles/resourcemanager.tagAdmin) - 機構檢視者 (
roles/resourcemanager.organizationViewer)
這些預先定義的角色具備停用虛刪除功能所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
必須具備下列權限,才能停用虛刪除功能:
-
storage.buckets.get -
storage.buckets.update -
storage.buckets.list(只有在您打算使用 Google Cloud 控制台執行本頁的操作說明時,才需要這項權限)如要瞭解標記管理員(
roles/resourcemanager.tagAdmin) 角色包含哪些必要權限,請參閱「管理標記所需的權限」。
如要瞭解如何授予角色,請參閱「在 bucket 上設定及管理 IAM 政策」或「管理專案存取權」。
停用特定 bucket 的虛刪除功能
開始之前,請考量下列事項:
如果停用值區的虛刪除政策,且值區在停用期間含有虛刪除物件,則現有的虛刪除物件會保留至先前套用的保留期限到期為止。
停用 bucket 的虛刪除政策後,Cloud Storage 不會保留新刪除的物件。
由於中繼資料快取,在 bucket 上停用虛刪除政策後,Cloud Storage 不會立即反映這項變更。因此,停用軟刪除政策後,建議等待至少 30 秒,再啟動任何其他刪除作業,例如大量刪除。這樣可以確保資料永久刪除,而非虛刪除。如要進一步瞭解 Cloud Storage 作業的一致性,請參閱「Cloud Storage 一致性」。
如要為特定 bucket 停用軟刪除功能,請按照下列操作說明進行:
控制台
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
在 bucket 清單中,點選要停用軟刪除政策的 bucket 名稱。
按一下「保護」分頁標籤。
在「Soft delete policy」(虛刪除政策) 專區,按一下「Disable」(停用),停用虛刪除政策。
按一下「確認」。
如要瞭解如何在 Google Cloud 控制台中取得 Cloud Storage 作業失敗的詳細錯誤資訊,請參閱「疑難排解」一文。
指令列
執行 gcloud storage buckets update 指令,並加上 --clear-soft-delete 旗標:
gcloud storage buckets update --clear-soft-delete gs://BUCKET_NAME
其中:
BUCKET_NAME是 bucket 的名稱。例如:my-bucket。
REST API
JSON API
安裝並初始化 gcloud CLI,以便為
Authorization標頭產生存取權杖。建立包含下列資訊的 JSON 檔案:
{ "softDeletePolicy": { "retentionDurationSeconds": "0" } }
使用
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"
其中:
JSON_FILE_NAME是您在步驟 2 建立的 JSON 檔案路徑。BUCKET_NAME是相關 bucket 的名稱。例如:my-bucket。
停用專案中 100 個最大 bucket 的虛刪除功能
使用 Google Cloud 控制台時,您最多可以一次停用 100 個 bucket 的虛刪除功能,並依虛刪除的位元組數或虛刪除的位元組數與現有位元組數的比例排序 bucket,方便您管理對虛刪除費用影響最大的 bucket。
- 前往 Google Cloud 控制台的「Cloud Storage bucket」頁面。
在「雲端儲存空間」頁面中,按一下「設定」。
按一下「虛刪除」分頁標籤。
從「Top buckets by deleted bytes」(依刪除位元組數排序的前幾名 bucket) 清單中,選取要停用虛刪除功能的 bucket。
按一下「停用虛刪除功能」。
您選取的 bucket 已停用虛刪除功能。
停用專案中多個或所有 bucket 的虛刪除功能
使用 Google Cloud CLI 執行 gcloud storage buckets update 指令,並加上 --project 旗標和萬用字元 *,即可大量停用專案中多個或所有 bucket 的虛刪除功能:
gcloud storage buckets update --project=PROJECT_ID --clear-soft-delete gs://*
其中:
PROJECT_ID是專案 ID。例如:my-project。
停用資料夾中所有 bucket 的虛刪除功能
使用 Google Cloud CLI 執行 gcloud projects list 和 gcloud storage buckets update 指令,停用指定資料夾中所有專案 bucket 的虛刪除功能。
執行 gcloud projects list 和 gcloud storage buckets update 指令,列出指定資料夾下的所有 bucket,然後停用資料夾中所有 bucket 的軟刪除功能:
gcloud projects list --filter="parent.id: FOLDER_ID" --format="value(projectId)" | while read project do gcloud storage buckets update --project=$project --clear-soft-delete gs://* done
其中:
FOLDER_ID是資料夾名稱。例如:123456。
在組織層級停用虛刪除功能
使用 Google Cloud CLI 執行 gcloud storage buckets update 指令,並加上 --clear-soft-delete 旗標和萬用字元 *,在組織層級停用虛刪除功能:
執行 gcloud storage buckets update 指令,並搭配 --clear-soft-delete 旗標和 * 萬用字元,停用組織內所有 bucket 的虛刪除功能:
gcloud projects list --format="value(projectId)" | while read project do gcloud storage buckets update --project=$project --clear-soft-delete gs://* done
Cloud Storage 會停用現有 bucket 的虛刪除功能。 已虛刪除的物件會保留在 bucket 中,直到虛刪除保留期限屆滿,才會永久刪除。
停用新值區的虛刪除功能
雖然新值區預設會啟用虛刪除功能,但您可以使用標記,防止系統預設啟用虛刪除功能。標記會使用 storage.defaultSoftDeletePolicy 鍵,在組織層級套用 0d (零天) 虛刪除政策,停用這項功能,並防止日後保留已刪除的資料。
請按照下列操作說明,在建立新 bucket 時預設停用虛刪除功能。請注意,下列操作說明與設定強制執行特定虛刪除政策的組織政策不同,也就是說,您仍可視需要指定政策,在特定 bucket 啟用虛刪除功能。
使用 Google Cloud CLI 建立
storage.defaultSoftDeletePolicy標記,用於變更新 bucket 的預設軟刪除保留時間。請注意,只有storage.defaultSoftDeletePolicy標記名稱會更新預設虛刪除保留時間長度。使用
gcloud resource-manager tags keys create指令建立標記鍵:gcloud resource-manager tags keys create storage.defaultSoftDeletePolicy \ --parent=organizations/ORGANIZATION_ID \ --description="Configures the default softDeletePolicy for new Storage buckets."
其中:
ORGANIZATION_ID是要設定預設虛刪除保留時間的機構數字 ID。例如,12345678901。如要瞭解如何找出組織 ID,請參閱「取得組織資源 ID」。
使用
gcloud resource-manager tags values create指令,為0d(零天) 建立標記值,根據預設停用新 bucket 的虛刪除保留期限:gcloud resource-manager tags values create 0d \ --parent=ORGANIZATION_ID/storage.defaultSoftDeletePolicy \ --description="Disables soft delete for new Storage buckets."
其中:
ORGANIZATION_ID是要設定預設虛刪除保留時間長度的組織數字 ID。例如:12345678901。
使用
gcloud resource-manager tags bindings create指令將標記附加至資源:gcloud resource-manager tags bindings create \ --tag-value=ORGANIZATION_ID/storage.defaultSoftDeletePolicy/0d \ --parent=RESOURCE_ID
其中:
ORGANIZATION_ID是建立代碼的機構的數字 ID。例如:12345678901。RESOURCE_ID是要建立標記繫結的組織全名。舉例來說,如要將標記附加至organizations/7890123456,請輸入//cloudresourcemanager.googleapis.com/organizations/7890123456。
為超過指定費用門檻的 bucket 停用虛刪除功能
您可以使用 Python 適用的 Cloud 用戶端程式庫,透過 Python 用戶端程式庫範例,針對超過指定相對成本門檻的 bucket 停用軟刪除功能。範例會執行下列作業:
計算各儲存空間級別的相對儲存費用。
評估 bucket 累積的虛刪除費用。
設定虛刪除功能的使用費用門檻,並列出超過門檻的 bucket,讓您為超過門檻的 bucket 停用虛刪除功能。
如要進一步瞭解如何設定 Python 用戶端程式庫及使用範例,請參閱 Cloud Storage 虛刪除費用分析工具 README.md 頁面。
以下範例會針對超過指定費用門檻的 bucket 停用虛刪除功能:
後續步驟
重新啟用軟刪除功能前,請先詳閱注意事項。