本頁面說明如何為組織中的新舊 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 不會立即套用變更。因此,建議您在停用虛刪除政策後,至少等待三十秒,再啟動任何其他刪除作業,例如大量刪除。這樣可以確保資料永久刪除,而非虛刪除。如要進一步瞭解 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」頁面。
在 Cloud Storage 頁面中,按一下「Settings」(設定)。
按一下「虛刪除」分頁標籤。
從「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 頁面。
下列範例會為超過指定費用門檻的值區停用虛刪除功能:
後續步驟
重新啟用虛刪除功能前,請先詳閱注意事項。