このページでは、削除または上書きされたオブジェクトと、それらを含むバケットを一定期間保持する削除(復元可能)機能について説明します。削除(復元可能)は、削除されたオブジェクトを削除済み(復元可能)状態に保持することで、偶発的または悪意のある削除からデータを保護します。この状態のオブジェクトは完全に削除できません。削除(復元可能)は、すべてのバケットでデフォルトで有効になり、ユーザーまたは組織が別のポリシーを選択していない限り、保持期間は 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 は削除(復元可能)状態のオブジェクトを完全に削除します。
削除(復元可能)の保持期間内は、削除(復元可能)状態のオブジェクトを復元できます。
削除(復元可能)の復元動作は次のとおりです。
プロジェクトを削除すると、Cloud Storage はそのプロジェクト内のすべてのバケットとオブジェクトを完全に削除します。この場合、削除(復元可能)機能でオブジェクトやバケットを復元することはできません。したがって、プロジェクト レベルでの削除に対する措置を講じることが重要です。たとえば、プロジェクトにリーエンを設定したり、ビジネスに不可欠なデータを別のプロジェクトのバケットにバックアップしたりします。
復元されたオブジェクトは常にライブ バージョンに置き換えられます。オブジェクトのライブ バージョンがすでに存在する場合、削除済み(復元可能)バージョンがライブ バージョンに置き換えられ、既存のライブ バージョンは削除済み(復元可能)になります。この場合、バケットには次のオブジェクトが含まれます。
削除(復元可能)状態のライブ オブジェクト。
以前に削除(復元可能)されたオブジェクトの 2 つのコピー。1 つはライブコピー、もう 1 つは削除(復元可能)状態のコピーです。
オブジェクト コピーは完全に削除されるまで料金が発生します。保持期間が終了した後に削除済み(復元可能)オブジェクトが完全に削除されるまで、オブジェクト コピーにはストレージ料金が発生します。削除(復元可能)状態のオブジェクトに関連する費用の詳細については、Cloud Storage の料金をご覧ください。
削除済み(復元可能)オブジェクトは複数の方法で復元できます。オブジェクトのリストを指定して、削除済み(復元可能)オブジェクトを同期的に復元できます。また、2 つのタイムスタンプの間に削除されたオブジェクトを一括で復元する長時間実行オペレーションを作成することもできます。
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 マルチパート アップロードのパートは、削除(復元可能)によって保護されません。
-
削除済み(復元可能)オブジェクトには Autoclass の管理費用は適用されません。
Autoclass は、削除済み(復元可能)オブジェクトのストレージ クラスを変更しません。
削除済み(復元可能)オブジェクトを復元すると、そのオブジェクトは Standard Storage ストレージ クラスに設定されます。
バケットロック機能とオブジェクト保持ロック機能
これらの機能により、保持ポリシーが満たされるまでオブジェクトを削除できなくなります。削除(復元可能)は、削除されたオブジェクトを別の削除(復元可能)の保持期間保持することで、追加の保護レイヤを提供します。
-
オブジェクトの削除済み(復元可能)バージョンを復元すると、OBJECT_FINALIZE イベントがトリガーされます。
マネージド フォルダ: 削除(復元可能)では、マネージド フォルダの IAM ポリシーを復元できません。オブジェクトを復元可能な状態で削除し、そのオブジェクトに IAM ポリシーを付与するマネージド フォルダを削除した場合、削除済み(復元可能)オブジェクトの復元に必要な権限を取得する前に、それらの IAM ポリシーを再作成する必要があります。
タグ: 削除(復元可能)の設定を含めずにバケットを作成した場合、Cloud Storage のデフォルトでは、削除(復元可能)の保持期間が 7 日間のバケットが作成されます。このデフォルトは、タグを使用することで変更できます。このタグを使用すると、新しいバケットのデフォルトの保持期間を 7~90 日の任意の値に変更できます。また、デフォルトを変更して、新しいバケットの削除(復元可能)を無効にすることもできます。 タグを使用して、デフォルトで削除(復元可能)を無効にすることもできます。
Recommender: Recommender API を有効にすると、Cloud Billing の費用と使用量に基づいて、削除通知の有効化または無効化に関する推奨事項と分析情報を受け取ることができます。詳細については、削除(復元可能)Recommender をご覧ください。
次のステップ
- 削除(復元可能)の使用方法を確認する。
- 削除済み(復元可能)オブジェクトの使用方法を確認する。
storage.softDeletePolicySeconds
ポリシーの制約について学習する。