このページでは、削除または上書きされたオブジェクトとバケットを一定期間保持する削除(復元可能)機能について説明します。削除(復元可能)は、削除されたオブジェクトまたはバケットを削除(復元可能)状態に保持することで、偶発的な削除や悪意のある削除からデータを保護します。この状態のオブジェクトやバケットは完全に削除できません。削除(復元可能)は、すべてのバケットでデフォルトで有効になっており、ユーザーまたは組織が別のポリシーを選択していない限り、保持期間は 7 日間です。
概要
バケットで削除(復元可能)を有効にすると、バケットまたはバケットに含まれるオブジェクトを削除した場合に、リソースが完全に削除されるのではなく、削除(復元可能)状態になります。削除済み(復元可能)のオブジェクトとバケットは、次のように動作します。
削除済み(復元可能)オブジェクトは読み取ることも変更することもできません。
削除済み(復元可能)バケットは変更できません。
一覧表示オペレーションでは、デフォルトで削除済み(復元可能)オブジェクトが除外されます。
削除済み(復元可能)のオブジェクトとバケットでサポートされているオペレーションは、一覧表示または復元のみです。
Autoclass、オブジェクトのライフサイクル管理、バケットロック、オブジェクト保持ロックなどの機能は削除(復元可能)と互換性がありますが、削除済み(復元可能)オブジェクトには影響しません。
バケットで削除(復元可能)を有効にするには、削除(復元可能)ポリシーを作成し、バケットとそれに含まれるオブジェクトが完全に削除されるまでの保持期間を制御する保持期間を指定します。
削除(復元可能)ポリシーを作成して管理し、バケットで削除(復元可能)を有効または無効にする方法については、削除(復元可能)を使用するをご覧ください。
削除(復元可能)ポリシー
削除(復元可能)ポリシーは、バケットの作成または更新中に作成、削除、変更できます。削除(復元可能)ポリシーを作成したら、そのポリシーを使用してバケットの削除(復元可能)を有効または無効にできます。
削除(復元可能)ポリシーは次のように動作します。
バケットの削除(復元可能)ポリシーの更新は、削除(復元可能)ポリシーが有効になった後に削除されたオブジェクトにのみ適用されます。更新前に削除したオブジェクトは、削除時に有効であった期間保持されます。
たとえば、バケットでデフォルトの保持期間(7 日間)の削除(復元可能)ポリシーを有効にして、オブジェクト
cat.png
を削除します。このシナリオでは、cat.png
は削除済み(復元可能)オブジェクトとして 7 日間保持され、その後完全に削除されます。これは、後でバケットの削除(復元可能)ポリシーを変更または無効にした場合でも発生します。既存のバケットに新しい削除(復元可能)の保持期間を追加しても、削除(復元可能)ポリシーが有効になる前に削除されたオブジェクトやバケットには適用されません。
プロジェクトを削除した場合、削除(復元可能)が有効になっていても、削除(復元可能)を使用してバケットやそれに含まれるオブジェクトを復元することはできません。悪意のある削除や偶発的な削除によってデータが失われないようにするには、プロジェクトにリーエンを適用するか、ビジネスに不可欠なデータを別のプロジェクトのバケットにバックアップして、プロジェクト レベルでの削除へのアクセスを制限することをおすすめします。
バケットが削除されても、それに含まれるオブジェクトは完全に削除されませんが、削除済み(復元可能)バケットが最初に復元されない限り、一覧表示または復元することはできません。復元された削除済み(復元可能)バケットには、ライブ オブジェクトが含まれません。オブジェクトの復元オペレーションを実行するか、新しいオブジェクトを追加する必要があります。削除済み(復元可能)バケットの使用方法については、削除済み(復元可能)バケットを復元するをご覧ください。
削除(復元可能)の保持期間
バケットを作成すると、デフォルトの削除(復元可能)ポリシーがバケットに追加されます。保持期間は 7 日間です。これは、削除(復元可能)ポリシーの最小保持期間です。保護を強化するために、最長 90 日間の任意の保護期間を選択できます。保持期間を 0 日に設定すると、バケットの削除(復元可能)が無効になります。
削除(復元可能)ポリシーの保持期間中は、削除されたオブジェクトまたはバケットを復元できますが、この期間が終了すると Cloud Storage によって削除済み(復元可能)のストレージ ユニットが完全に削除されます。削除(復元可能)の保持期間は秒単位で指定します。ただし、便宜上、Google Cloud コンソールや Google Cloud CLI などの一部のツールを使って、別の時間単位で保持期間を表示するように設定することもできます。
1 日は 86,400 秒とする。
1 か月は 2,678,400 秒(31 日)とする。
gcloud CLI で保持期間を指定する場合は、整数と単位を指定する必要があります。単位は s
、d
、m
で、それぞれ秒、日、月を表します。たとえば、7d43200s
は 7 日と 43,200 秒(7 日半)の保持期間を設定します。
保持期間に設定できる最大値は 7,776,000 秒(90 日間)、最小値は 604,800 秒(7 日間)です。REST API を使用している場合は、保持期間を 0 に設定して削除(復元可能)ポリシーを無効にすることもできます。
削除(復元可能)の保持期間内は、削除済み(復元可能)のオブジェクトとバケットを復元できます。
復元の動作
削除(復元可能)状態のオブジェクトを復元すると、Cloud Storage は、そのオブジェクトが削除されたバケットに削除(復元可能)状態のオブジェクトのコピーを作成します。復元されるオブジェクトのメタデータは、削除されたオブジェクトのメタデータと同じです。削除(復元可能)の保持期間が終了すると、Cloud Storage は削除済み(復元可能)オブジェクトを完全に削除します。
削除済み(復元可能)オブジェクトの復元動作は次のとおりです。
復元されたオブジェクトは常にライブ バージョンに置き換わります。オブジェクトのライブ バージョンがすでに存在する場合、削除済み(復元可能)バージョンがライブ バージョンに置き換わり、既存のライブ バージョンが削除済み(復元可能)になります。この場合、バケットには次のオブジェクトが含まれます。
削除済み(復元可能)状態の置き換えられたライブ オブジェクト。
以前に削除(復元可能)されたオブジェクトの 2 つのコピー。1 つはライブコピー、もう 1 つは削除済み(復元可能)状態のコピーです。
オブジェクト コピーは完全に削除されるまで料金が発生します。オブジェクト コピーは、保持期間が終了した後に削除済み(復元可能)オブジェクトが完全に削除されるまでストレージ料金が発生します。削除済み(復元可能)オブジェクトに関連する費用の詳細については、Cloud Storage の料金をご覧ください。
削除済み(復元可能)オブジェクトは複数の方法で復元できます。オブジェクトのリストを指定して、削除済み(復元可能)オブジェクトを同期的に復元できます。また、2 つのタイムスタンプの間に削除されたオブジェクトを一括で復元する長時間実行オペレーションを作成することもできます。
削除済み(復元可能)バケットを復元すると、バケットはライブ状態に戻り、削除時にバケットに含まれていたオブジェクトも、追加のオブジェクト復元オペレーションによって復元可能になります。削除済み(復元可能)オブジェクトと同様に、削除済み(復元可能)バケットも、保持期間中に復元されない場合は Cloud Storage によって保持期間の終了時に完全に削除されます。
2024 年 8 月 6 日より前に削除(復元可能)されたバケットを復元しようとすると、The specified bucket does not exist
というエラーが発生します。復元するには、Cloud カスタマーケアにお問い合わせください。
階層型名前空間が有効なバケット内のオブジェクトのメタデータを復元して取得する
階層型名前空間が有効になっている Cloud Storage バケットでは、削除済み(復元可能)のオブジェクトが重複する可能性があります。重複するオブジェクトは同じ name
値と generation
値を共有するため、復元時に曖昧になる可能性があります。
重複するオブジェクトが発生する仕組み
name
と generation
の値が同じ重複オブジェクトが発生する仕組みを理解するには、2 つのオブジェクト folderA/my-object.txt
と folderB/my-object.txt
を検討し、オブジェクトに対して次の一連のアクションを実行します。
- オブジェクト
folderA/my-object.txt
を削除(復元可能)します。 - オブジェクト
folderA/my-object.txt
の親フォルダfolderA
を削除します。 folderB
の名前をfolderA
に変更すると、オブジェクトfolderB/my-object.txt
はfolderA/my-object.txt
になります。- 以前に削除されたオブジェクトと同じ
name
を持つオブジェクトfolderA/my-object.txt
を削除済み(復元可能)にします。
Cloud Storage 内のオブジェクトの各バージョンには、固有の generation
値があります。ただし、オブジェクト folderA/my-object.txt
と folderB/my-object.txt
が独立して作成され、互いに関連していない場合、偶然同じ generation
値を持つ可能性があります。
その結果、同じ name
(folderA/my-object.txt
)と generation
値を持つ 2 つの削除済み(復元可能)オブジェクトが存在する可能性があります。
目的の my-object.txt
オブジェクトのメタデータを確実に復元または取得するには(name
と generation
の値が同じオブジェクトが 2 つあるため)、固有識別子を指定する必要があります。
restoreToken
によるオブジェクトの固有の識別
restoreToken
は、復元または取得する正しいオブジェクトを一意に識別します。restoreToken
の値を取得するには、バケット内の削除済み(復元可能)オブジェクトを一覧表示します。詳細については、削除済み(復元可能)オブジェクトを一覧表示するをご覧ください。
考慮事項とエラー
階層型名前空間が有効になっているバケットで重複する削除済み(復元可能)オブジェクトを操作するときに発生する可能性のあるエラーと、次の情報を検討してください。
関連のない 2 つのオブジェクトが同じ
generation
値を持つことは非常にまれであり、さらに、同じname
に到達するために特定の一連のアクションが必要なため、この状況はさらにまれになります。発生頻度が低いため、ほとんどのユースケースでは
restoreToken
パラメータが必要ない場合があります。ただし、同じname
値とgeneration
値を持つ重複する削除済み(復元可能)オブジェクトが存在する場合は、restoreToken
を使用してオブジェクトを正確に取得できます。restoreToken
を指定せずに、削除済み(復元可能)オブジェクトのメタデータを復元または取得しようとすると、指定されたname
値とgeneration
値に一致するオブジェクトが複数ある場合、restoretoken
を指定する必要があることを示唆するエラーが発生します。restoreToken
、name
、generation
に間違った値を指定して、削除済み(復元可能)オブジェクトのメタデータを復元または取得しようとすると、指定されたキーが存在しないことを示すエラーが発生します。
他の機能に関する考慮事項
削除(復元可能)が有効になっている場合、削除(復元可能)は他の Cloud Storage 機能と次のように相互作用します。
-
オブジェクトのライフサイクル管理ルールは、削除済み(復元可能)オブジェクトには影響しません。オブジェクトのライフサイクル管理を使用して、削除済み(復元可能)オブジェクトのストレージ クラスを変更または完全に削除することはできません。
オブジェクトのライフサイクル管理によって削除されたオブジェクトは、削除済み(復元可能)になります。バケットでオブジェクトのバージョニングも有効にしている場合、削除されたライブ オブジェクトは非現行になり、削除された非現行オブジェクトは削除済み(復元可能)になります。
オブジェクトのバージョニング: 非現行オブジェクトを削除すると、そのオブジェクトは削除済み(復元可能)になります。
XML API マルチパート アップロード: XML API マルチパート アップロードのパートは、削除(復元可能)によって保護されません。
-
削除済み(復元可能)オブジェクトには Autoclass の管理費用は適用されません。
Autoclass は、削除済み(復元可能)オブジェクトのストレージ クラスを変更しません。
削除済み(復元可能)オブジェクトを復元すると、そのオブジェクトは Standard Storage クラスに設定されます。
バケットロック機能とオブジェクト保持ロック機能: これらの機能を使用すると、保持ポリシーが満たされるまでオブジェクトを削除できなくなります。削除(復元可能)によって、削除されたオブジェクトに対して削除(復元可能)の保持期間を個別に設定することで、保護が強化されます。
Pub/Sub 通知: オブジェクトの削除済み(復元可能)バージョンを復元すると、OBJECT_FINALIZE イベントがトリガーされます。
マネージド フォルダ: 削除(復元可能)では、マネージド フォルダの IAM ポリシーを復元できません。オブジェクトを復元可能な状態で削除し、そのオブジェクトに IAM ポリシーを付与するマネージド フォルダを削除した場合、削除済み(復元可能)オブジェクトの復元に必要な権限を取得する前に、それらの IAM ポリシーを再作成する必要があります。
タグ: 削除(復元可能)の設定を含めずにバケットを作成した場合、Cloud Storage のデフォルトでは、削除(復元可能)の保持期間が 7 日間のバケットが作成されます。このデフォルトは、タグを使用することで変更できます。このタグを使用すると、新しいバケットのデフォルトの保持期間を 7~90 日の任意の値に変更できます。また、デフォルトを変更して、新しいバケットの削除(復元可能)を無効にすることもできます。 タグを使用して、デフォルトで削除(復元可能)を無効にすることもできます。
Recommender: Recommender API を有効にすると、Cloud Billing の費用と使用量に基づいて、削除通知の有効化または無効化に関する推奨事項と分析情報を受け取ることができます。詳細については、削除(復元可能)Recommender をご覧ください。
次のステップ
- 削除(復元可能)の使用方法を確認する。
- 削除済み(復元可能)オブジェクトの使用方法を確認する。
storage.softDeletePolicySeconds
ポリシーの制約を確認する。