このページでは、組織全体で新規および既存のバケットに対して削除(復元可能)機能を無効にする方法を説明します。
データ損失を防ぐために、デフォルトでは新しいバケットに対して削除(復元可能)が有効になっています。必要に応じて、削除(復元可能)を無効にできます。既存のバケットに対して削除(復元可能)を無効にするには、削除(復元可能)ポリシーを変更します。新しいバケットに対してデフォルトで削除(復元可能)を無効にするには、組織全体のデフォルト タグを設定します。削除(復元可能)を無効にすると、誤って削除されたデータや悪意を持って削除されたデータを含め、データを復元できなくなります。
必要なロール
削除(復元可能)を無効にするために必要な権限を取得するには、組織レベルで次の IAM ロールを付与するよう管理者に依頼してください。
-
ストレージ管理者(
roles/storage.admin
) - タグ管理者(
roles/resourcemanager.tagAdmin
) - 組織閲覧者(
roles/resourcemanager.organizationViewer
)
これらの事前定義ロールには、削除(復元可能)を無効にするために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
削除(復元可能)を無効にするには、次の権限が必要です。
-
storage.buckets.get
-
storage.buckets.update
-
storage.buckets.list
(この権限は、このページで説明する操作を Google Cloud コンソールを使用して行う場合にのみ必要です)タグ管理者(
roles/resourcemanager.tagAdmin
)ロールの一部として含まれる必要な権限については、タグの管理に必要な権限をご覧ください。
ロールの付与については、バケットで IAM を使用するまたはプロジェクトへのアクセスを管理するをご覧ください。
特定のバケットの削除(復元可能)を無効にする
始める前に、次の点を考慮してください。
無効化中に削除済み(復元可能)オブジェクトを含むバケットの削除(復元可能)ポリシーを無効にすると、以前に適用された保持期間が経過するまで既存の削除済み(復元可能)オブジェクトが保持されます。
バケットで削除(復元可能)ポリシーを無効にすると、Cloud Storage は新しく削除されたオブジェクトを保持しません。
特定のバケットの削除(復元可能)を無効にするには、次の操作を行います。
コンソール
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
バケットのリストで、削除(復元可能)ポリシーを無効にするバケットの名前をクリックします。
[保護] タブをクリックします。
[削除(復元可能)ポリシー] セクションで [無効にする] をクリックして、削除(復元可能)ポリシーを無効にします。
[確認] をクリックします。
失敗した Cloud Storage オペレーションの詳細なエラー情報を Google Cloud コンソールで確認する方法については、トラブルシューティングをご覧ください。
コマンドライン
--clear-soft-delete
フラグを指定して gcloud storage buckets update
コマンドを実行します。
gcloud storage buckets update --clear-soft-delete gs://BUCKET_NAME
ここで
BUCKET_NAME
はバケットの名前です。例:my-bucket
。
REST API
JSON API
gcloud CLI のインストールと初期化を行います。これにより、
Authorization
ヘッダーのアクセス トークンを生成できます。次の情報が含まれる JSON ファイルを作成します。
{ "softDeletePolicy": { "retentionDurationSeconds": "0" } }
cURL
を使用して、PATCH
Bucket リクエストで 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
は、関連するバケットの名前です。例:my-bucket
プロジェクト内の最大 100 個のバケットに対して削除(復元可能)を無効にする
Google Cloud コンソールを使用すると、削除(復元可能)されたバイト数が多い順、またはライブバイト数に対して削除(復元可能)バイト数の比率が高い順にバケットが並べ替えられ、一度に最大 100 個のバケットに対して削除(復元可能)を無効にできます。これにより、削除(復元可能)の費用に最も大きな影響を与えるバケットを管理できます。
- Google Cloud コンソールで、Cloud Storage の [バケット] ページに移動します。
[Cloud Storage] のページで [設定] をクリックします。
[削除(復元可能)] タブをクリックします。
[過去 30 日間に削除(復元可能)された平均バイト数が多いバケット] のリストから、削除(復元可能)を無効にするバケットを選択します。
[削除(復元可能)をオフにする] をクリックします。
選択したバケットで削除(復元可能)が無効になります。
プロジェクト内の複数またはすべてのバケットで削除(復元可能)を無効にする
Google Cloud CLI を使用して、--project
フラグとワイルドカード(*
)を指定して gcloud storage buckets update
コマンドを実行し、プロジェクト内の複数またはすべてのバケットで削除(復元可能)を一括で無効にします。
gcloud storage buckets update --project=PROJECT_ID --clear-soft-delete gs://*
ここで
PROJECT_ID
はプロジェクト ID です。例:my-project
フォルダ内のすべてのバケットで削除(復元可能)を無効にする
Google Cloud CLI を使用して gcloud projects list
コマンドと gcloud storage buckets update
コマンドを実行し、指定したフォルダ内のすべてのプロジェクトのバケットで削除(復元可能)を無効にします。
gcloud projects list
コマンドと gcloud storage buckets update
コマンドを実行して、指定したフォルダのすべてのバケットを一覧表示し、フォルダ内のすべてのバケットで削除(復元可能)を無効にします。
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 を使用して、--clear-soft-delete
フラグとワイルドカード(*
)を指定して gcloud storage buckets update
コマンドを実行し、組織レベルで削除(復元可能)を無効にします。
--clear-soft-delete
フラグとワイルドカード(*
)を指定して gcloud storage buckets update
コマンドを実行し、組織内のすべてのバケットで削除(復元可能)を無効にします。
gcloud projects list --format="value(projectId)" | while read project do gcloud storage buckets update --project=$project --clear-soft-delete gs://* done
Cloud Storage で、既存のバケットに対して削除(復元可能)が無効になります。すでに削除(復元可能)されたオブジェクトは、削除(復元可能)の保持期間が完了するまでバケットに残ります。保持期間が完了すると、完全に削除されます。
新しいバケットの削除(復元可能)を無効にする
新しいバケットに対しては削除(復元可能)がデフォルトで有効になっていますが、タグを使用して、デフォルトによる削除(復元可能)の有効化を防ぐことができます。タグでは storage.defaultSoftDeletePolicy
キーを使用して、組織レベルで 0d
(0 日)の削除(復元可能)ポリシーを適用します。これにより、削除(復元可能)機能が無効になり、削除されたデータが今後保持されなくなります。
新しいバケットの作成時にデフォルトで削除(復元可能)を無効にするには、以下の手順を使用します。以下の手順は、特定の削除(復元可能)ポリシーを義務付ける組織のポリシーを設定することと同等ではありません。つまり、必要に応じてポリシーを指定することで、特定のバケットに対して削除(復元可能)を有効にできます。
Google Cloud CLI を使用して、
storage.defaultSoftDeletePolicy
タグを作成します。このタグは、新しいバケットに対するデフォルトの削除(復元可能)保持期間を変更するために使用されます。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
(0 日)のタグ値を作成します。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
」と入力します。
指定したコストしきい値を超えるバケットの削除(復元可能)を無効にする
Python 用の Cloud クライアント ライブラリを使用すると、Python クライアント ライブラリのサンプルで、指定された相対コストしきい値を超えるバケットの削除(復元可能)を無効にできます。サンプルでは以下を行います。
各ストレージ クラスのストレージの相対コストを計算します。
バケットで蓄積された削除(復元可能)のコストを評価します。
削除(復元可能)の使用に対するコストしきい値を設定して、設定したしきい値を超えるバケットを一覧表示し、しきい値を超えるバケットの削除(復元可能)を無効にできます。
Python 用のクライアント ライブラリの設定とサンプルの使用の詳細については、Cloud Storage Soft Delete Cost Analyzer の README.md
ページをご覧ください。
次のサンプルでは、指定したコストしきい値を超えるバケットの削除(復元可能)を無効にします。
次のステップ
削除(復元可能)を再度有効にする前に、考慮事項を確認する。