소프트 삭제된 객체의 영구(하드) 삭제 일시중지

소프트 삭제된 객체가 영구 삭제되기 전에 복원하는 데 시간이 더 필요한 경우 Cloud Storage 버킷에서 소프트 삭제된 객체의 영구 삭제(하드 삭제라고도 함)를 일시중지할 수 있습니다.

기본적으로 소프트 삭제된 객체 및 버킷은 소프트 삭제 보관 기간에 도달하면 영구 삭제됩니다. 버킷의 하드 삭제를 일시중지하면 소프트 삭제된 객체는 소프트 삭제 보관 기간과 관계없이 소프트 삭제된 상태로 무기한 보관됩니다. 소프트 삭제된 객체는 버킷의 하드 삭제를 재개한 후에만 영구 삭제됩니다.

사용 사례

영구 삭제를 일시중지하면 소프트 삭제 보관 기간보다 해결하는 데 더 많은 시간이 걸릴 수 있는 매우 크거나 복잡한 객체 복원을 수행할 수 있는 추가 시간이 확보됩니다. 예를 들면 다음과 같습니다.

  • 수십억 개의 객체가 포함된 초대형 버킷 복구 버킷에 매우 많은 수의 객체가 포함된 경우 버킷의 모든 객체를 복구하는 데 보관 기간보다 오래 걸릴 수 있습니다. 특히 보관 기간의 일부가 이미 경과한 후 삭제를 감지한 경우에 그렇습니다. 영구 삭제를 일시중지하면 일상적인 작업에 더 긴 보관 기간을 설정하지 않고도 예기치 않은 대량 삭제 사고로부터 복구할 수 있습니다.
  • 삭제 범위가 명확하지 않습니다. 잘못 삭제된 객체를 잘 모르는 경우 조사하는 데 시간이 걸릴 수 있습니다. 영구 삭제를 일시중지하면 복원해야 할 항목을 파악할 수 있는 시간을 더 확보할 수 있습니다.
  • 복잡한 복구 복잡한 복원의 경우 보관 기간 내에 일괄 복구를 감지하고 수행할 시간이 있을 수 있습니다. 그래도 예상한 결과가 나오지 않으면 영구 삭제를 일시중지하여 복구 상태가 만족스러운지 검증할 시간을 더 확보할 수 있습니다.

버킷의 영구 삭제를 일시적으로 일시중지하려면 다음 워크플로를 사용하는 것이 좋습니다. 소프트 삭제 보관 기간보다 해결하는 데 더 오래 걸릴 수 있는 대량 삭제 사고가 감지되면 다음 단계를 따르세요.

  1. 필요한 경우 버킷을 복원합니다.

  2. 버킷의 하드 삭제를 일시중지합니다.

  3. 버킷의 객체를 복원합니다.

  4. 복구를 완료하고 데이터가 성공적으로 복원되었는지 확인한 후 버킷에 대해 영구 삭제를 재개합니다.

고려사항

  • 소프트 삭제가 사용 설정된 기존 버킷을 업데이트하여 버킷의 하드 삭제를 일시중지할 수 있습니다. 버킷 생성 중 또는 소프트 삭제가 사용 설정되지 않은 버킷의 경우 하드 삭제를 일시중지할 수 없습니다.
  • 버킷의 하드 삭제를 재개하면 Cloud Storage는 소프트 삭제 보관 기간에 따라 버킷에 있는 소프트 삭제된 모든 객체의 영구 삭제를 재개합니다. 보관 기간이 지난 객체가 있는 경우 영구 삭제를 재개하면 해당 객체가 영구적으로 삭제됩니다.
  • 하드 삭제 일시중지는 즉시 적용됩니다. 캐시된 API 작업이 업데이트된 정보를 반환하는 데 몇 초 정도 걸릴 수 있습니다.
  • 하드 삭제가 일시중지된 경우에도 버킷의 객체를 계속 삭제할 수 있습니다. 삭제된 객체는 소프트 삭제됩니다.
  • 버킷의 하드 삭제는 24시간마다 최대 한 번 일시중지하고 재개할 수 있습니다.
  • 하드 삭제가 일시중지된 동안 소프트 삭제 보관 기간을 업데이트할 수 있습니다. 하지만 하드 삭제가 일시중지된 동안에는 소프트 삭제를 사용 중지할 수 없습니다.
  • 하드 삭제가 일시중지된 동안에는 버킷을 삭제할 수 없습니다.

필요한 역할

영구 삭제를 일시중지하거나 재개하는 데 필요한 권한을 얻으려면 관리자에게 버킷 또는 버킷이 포함된 프로젝트에 대한 스토리지 관리자(roles/storage.admin) IAM 역할을 부여해 달라고 요청하세요.

이 사전 정의된 역할에는 영구 삭제를 일시중지하거나 재개하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

영구 삭제를 일시중지하거나 재개하려면 다음 권한이 필요합니다.

  • storage.buckets.update
  • Google Cloud 콘솔을 사용하여 이 페이지의 태스크를 수행하는 경우:
    • storage.buckets.get
    • storage.buckets.list

역할 부여에 대한 자세한 내용은 버킷의 IAM 정책 설정 및 관리 또는 프로젝트에 대한 액세스 관리를 참조하세요.

하드 삭제 일시중지

REST API

JSON API

  1. Authorization 헤더에 대한 액세스 토큰을 생성하려면 gcloud CLI가 설치 및 초기화되어 있어야 합니다.

  2. 다음 정보를 포함하는 JSON 파일을 만듭니다.

    {
      "softDeletePolicy": {
        "hardDeletePause": {
          "enabled": true
        }
      }
    }
  3. 버킷의 영구 삭제를 일시중지하려면 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./storage/v1/b/BUCKET_NAME"

    다음을 바꿉니다.

    • JSON_FILE_NAME: 이전 단계에서 만든 JSON 파일의 경로
    • BUCKET_NAME: 버킷의 이름입니다. 예를 들면 my-bucket입니다.

하드 삭제 재개

REST API

JSON API

  1. Authorization 헤더에 대한 액세스 토큰을 생성하려면 gcloud CLI가 설치 및 초기화되어 있어야 합니다.

  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./storage/v1/b/BUCKET_NAME"

    다음을 바꿉니다.

    • JSON_FILE_NAME: 이전 단계에서 만든 JSON 파일의 경로
    • BUCKET_NAME: 버킷의 이름입니다. 예를 들면 my-bucket입니다.

버킷의 하드 삭제가 일시중지되었는지 확인

버킷의 소프트 삭제 정책은 영구 삭제가 일시중지되었는지 여부에 대한 정보를 제공합니다. 버킷의 소프트 삭제 정책을 검색하는 단계는 버킷에 소프트 삭제가 사용 설정되어 있는지 확인을 참조하세요.

다음 단계