削除済み(復元可能)オブジェクトの完全削除(削除(復元不可))を一時停止する

削除済み(復元可能)オブジェクトが完全に削除される前に復元する時間が必要な場合は、Cloud Storage バケット内の削除済み(復元可能)オブジェクトの完全削除(削除(復元不可))を一時停止できます。

デフォルトでは、削除(復元可能)状態のオブジェクトとバケットは、削除(復元可能)の保持期間に達すると完全に削除されます。バケットの削除(復元不可)を一時停止すると、削除済み(復元可能)オブジェクトは、削除(復元可能)の保持期間に関係なく、削除済み(復元可能)状態のまま無期限に保持されます。削除済み(復元可能)オブジェクトは、バケットの削除(復元不可)を再開した後にのみ完全に削除されます。

ユースケース

完全削除を一時停止すると、非常に大規模なオブジェクトや複雑なオブジェクトの復元に、削除(復元可能)の保持期間よりも長い時間がかかる場合でも、復元を実行するための時間を確保できます。次に例を示します。

  • 数十億個のオブジェクトを含む非常に大規模なバケットを復元する。バケットに非常に多くのオブジェクトが含まれている場合、バケット内のすべてのオブジェクトを復元するのに保持期間よりも時間がかかることがあります。特に、保持期間の一部がすでに経過した後に削除を検出した場合は、その傾向が強くなります。ハード削除を一時停止すると、日常業務で保持期間を長く設定しなくても、予期しない大量削除インシデントから復旧できます。
  • 削除の範囲が不明確。誤って削除されたオブジェクトが不明な場合は、調査に時間がかかることがあります。物理削除を一時停止すると、復元が必要なものを特定する時間を確保できます。
  • 複雑な復元。複雑な復元の場合、保持期間内に一括復元を検出して実行する時間がある場合があります。それでも期待どおりの結果が得られない場合は、ハード削除を一時停止することで、復元状態に満足していることを確認する時間を増やすことができます。

バケットのハード削除を一時的に停止するには、次のワークフローをおすすめします。削除(復元可能)の保持期間よりも解決に時間がかかる可能性がある一括削除インシデントを検出した場合は、次の手順を行います。

  1. 必要に応じて、バケットを復元します。

  2. バケットの削除(復元不可)を一時停止します。

  3. バケット内のオブジェクトを復元します。

  4. 復元を完了し、データが正常に復元されたことを確認したら、バケットのハード削除を再開します。

考慮事項

  • バケットの削除(復元不可)を一時停止するには、削除(復元可能)が有効になっている既存のバケットを更新します。バケットの作成中や、削除(復元可能)が有効になっていないバケットでは、削除(復元不可)を一時停止できません。
  • バケットの削除(復元不可)を再開すると、Cloud Storage は、削除(復元可能)の保持期間に基づいて、バケット内のすべての削除済み(復元可能)オブジェクトの完全な削除を再開します。保持期間を過ぎたオブジェクトがある場合、ハード削除を再開すると、それらのオブジェクトは完全に削除されます。
  • 削除(復元不可)の一時停止はすぐに有効になります。キャッシュに保存された API オペレーションが更新された情報を返すまでに数秒かかることがあります。
  • 削除(復元不可)が一時停止されている場合でも、バケット内のオブジェクトの削除を続行できます。削除されたオブジェクトは削除済み(復元可能)になります。
  • バケットのハード削除の一時停止と再開は、24 時間に 1 回まで行うことができます。
  • 削除(復元不可)が一時停止している間は、削除(復元可能)の保持期間を更新できます。ただし、削除(復元不可)が一時停止している間は、削除(復元可能)を無効にできません。
  • 削除(復元不可)が一時停止している間は、バケットを削除できません。

必要なロール

完全削除を一時停止または再開するために必要な権限を取得するには、バケットまたはバケットを含むプロジェクトに対するストレージ管理者(roles/storage.admin)IAM ロールを付与するよう管理者に依頼してください。

この事前定義ロールには、ハード削除の一時停止または再開に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

ハード削除を一時停止または再開するには、次の権限が必要です。

  • storage.buckets.update
  • Google Cloud コンソールを使用してこのページのタスクを行う場合:
    • storage.buckets.get
    • storage.buckets.list

ロールの付与については、バケットでの IAM ポリシーの設定と管理またはプロジェクトに対するアクセス権の管理をご覧ください。

削除(復元不可)を一時停止する

REST API

JSON API

  1. gcloud CLI のインストールと初期化を行います。これにより、Authorization ヘッダーのアクセス トークンを生成できます。

  2. 次の情報が含まれる JSON ファイルを作成します。

    {
      "softDeletePolicy": {
        "hardDeletePause": {
          "enabled": true
        }
      }
    }
  3. バケットのハード削除を一時停止するには、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: 前の手順で作成した JSON ファイルのパス。
    • BUCKET_NAME: バケットの名前。例: my-bucket

削除(復元不可)を再開する

REST API

JSON API

  1. gcloud CLI のインストールと初期化を行います。これにより、Authorization ヘッダーのアクセス トークンを生成できます。

  2. 次の情報が含まれる JSON ファイルを作成します。

    {
      "softDeletePolicy": {
        "hardDeletePause": {
          "enabled": false
        }
      }
    }
  3. バケットの完全削除を再開するには、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: 前の手順で作成した JSON ファイルのパス。
    • BUCKET_NAME: バケットの名前。例: my-bucket

バケットで削除(復元不可)が一時停止されているかどうかを確認する

バケットの削除ポリシー(復元可能)には、ハード削除が一時停止されているかどうかに関する情報が含まれています。バケットの削除(復元可能)ポリシーを取得する手順については、バケットで削除(復元可能)が有効になっているかどうかを確認するをご覧ください。

次のステップ