소프트 삭제

설정 사용량

이 페이지에서는 소프트 삭제 기능과 용도를 설명합니다. 소프트 삭제는 최근에 삭제된 모든 객체를 지정된 기간 동안 보존하여 실수로 인한 또는 악의적 삭제로부터 데이터를 기본 버킷 수준으로 보호합니다.

개요

소프트 삭제 기능을 사용하면 버킷에서 삭제되거나 덮어쓴 모든 객체를 지정된 기간 동안 보존할 수 있습니다.

Cloud Storage 버킷에 저장된 객체를 변경할 수 없습니다. 객체 데이터를 덮어쓰거나 변경하면 Cloud Storage는 이전 버전을 삭제하고 새 버전으로 바꿉니다. 소프트 삭제는 삭제 명령어나 덮어쓰기로 삭제된 객체를 모두 보존하며, 구성된 보관 기간 동안 버킷 데이터에 적용된 모든 변경사항을 캡처합니다.

Cloud Storage 버킷을 만들면 기본적으로 보관 기간이 7일인 소프트 삭제 기능이 사용 설정됩니다. 보관 기간 동안 삭제된 객체를 복원할 수 있지만 기간이 종료되면 Cloud Storage에서 객체를 영구 삭제합니다. 버킷의 소프트 삭제 정책을 업데이트할 때 보관 기간을 최대 90일까지 늘리거나, 최소 7일로 줄이거나, 완전히 사용 중지할 수 있습니다.

소프트 삭제가 사용 설정된 버킷에서 객체를 삭제하면 Cloud Storage가 다음 작업을 수행합니다.

  • 삭제된 객체를 소프트 삭제 상태로 이동합니다. 이 상태에서는 소프트 삭제된 객체를 명시적으로 나열하거나 복원할 때를 제외하고 객체가 버킷에 표시되지 않습니다.
  • 구성된 보관 기간 동안 이 소프트 삭제된 객체를 보관합니다. 이 기간 동안에는 객체 수명 주기 규칙 또는 자동 클래스와 같은 기능을 포함하여 어떤 방식으로도 이 객체를 수정할 수 없습니다.
  • 객체의 최신 버전(세대 번호)의 메타데이터를 보호합니다. 이 메타데이터는 가장 최근에 삭제된 객체 버전의 메타데이터이거나 라이브 객체일 수 있습니다(있는 경우).
  • 소프트 삭제 보관 기간이 지나면 버킷에서 객체를 영구 삭제합니다.

소프트 삭제 객체를 복원하면 Cloud Storage에서 객체가 삭제된 버킷과 동일한 버킷에 소프트 삭제된 객체의 복사본을 만듭니다. 복원된 객체의 메타데이터는 삭제 시 삭제된 객체의 메타데이터와 동일합니다. 소프트 삭제 보관 기간이 종료되면 Cloud Storage에서 소프트 삭제된 객체를 영구 삭제합니다.

버킷에 소프트 삭제가 사용 설정되면 라이브 또는 소프트 삭제된 객체를 영구 삭제할 수 없습니다. 라이브 객체를 삭제하면 객체는 소프트 삭제된 객체가 됩니다. 소프트 삭제된 객체는 소프트 삭제 보관 기간이 종료되면 영구 삭제됩니다.

프로젝트를 삭제하면 Cloud Storage에서 해당 프로젝트 내의 모든 버킷과 객체를 영구 삭제합니다. 이러한 시나리오에서는 소프트 삭제 기능을 사용하여 객체와 버킷을 복원할 수 없습니다. 따라서 프로젝트에 선취권을 적용하거나 다른 프로젝트의 버킷에 비즈니스에 중요한 데이터를 백업하는 등 프로젝트 수준 삭제에 대한 액세스를 제한하는 단계를 수행하는 것이 중요합니다.

소프트 삭제 정책

새 버킷이나 기존 버킷에 소프트 삭제 정책을 추가할 수 있습니다.

  • 소프트 삭제 정책을 버킷에 추가하면 Cloud Storage는 지정된 소프트 삭제 보관 기간 동안 버킷에서 삭제한 모든 객체를 보관합니다.

보관 기간을 변경하여 버킷의 기존 소프트 삭제 정책을 업데이트할 수 있습니다.

  • 새로운 소프트 삭제 보관 기간은 변경사항이 적용된 후에 삭제된 객체에만 적용됩니다.
  • 업데이트된 보관 기간은 기존 소프트 삭제된 객체에는 적용되지 않습니다. 기존 소프트 삭제된 객체는 삭제 시 적용되었던 기간 동안 보관됩니다.

    예를 들어 버킷에 객체 A와 객체 B, 두 객체가 있습니다. 기본 보존 기간이 7일인 버킷에서 소프트 삭제 정책을 사용 설정할 수 있습니다. 객체 A를 삭제합니다. 며칠 후에 소프트 삭제 보관 기간을 10일로 변경하고 객체 B를 삭제합니다. Cloud Storage는 객체 A를 7일 동안 보호할 때까지 계속 보관하며 객체 B는 10일 동안 보관됩니다.

버킷에서 소프트 삭제 정책을 삭제할 수 있습니다.

  • Cloud Storage는 제거되기 전에 소프트 삭제 정책에 지정된 기간 동안 버킷에 소프트 삭제된 객체를 보관합니다.
  • 소프트 삭제 정책이 사용 중지된 후 Cloud Storage는 사용자가 삭제한 모든 객체를 영구적으로 삭제합니다.

소프트 삭제 보관 기간

소프트 삭제 보관 기간은 초 단위로 측정됩니다. 하지만 Google Cloud 콘솔Google Cloud CLI와 같은 일부 도구를 사용하면 간편하게 다른 시간 단위를 사용하여 보관 기간을 설정 및 확인할 수 있습니다. 이 경우 다음과 같은 변환이 적용됩니다.

  • 하루는 86,400초로 간주됩니다.
  • 한 달은 31일이며 2,678,400초로 간주됩니다.

gcloud CLI 경우 보관 기간을 지정할 때 정수와 단위를 지정합니다. 여기서 단위는 각각 초, 일 또는 월을 나타내는 s, d 또는 m일 수 있습니다. 예를 들어 7d43200s는 보관 기간을 7일 43,200초(7.5일)로 설정합니다.

최대 보관 기간을 7,776,000초(90일)로 설정하거나 최소 보관 기간을 604,800초(7일)로 설정할 수 있습니다. REST API를 사용할 때 보관 기간을 0으로 설정하여 소프트 삭제 정책을 사용 중지할 수도 있습니다.

객체 및 버킷 복원

소프트 삭제 보관 기간이 종료되기 전에 소프트 삭제된 객체를 복원할 수 있습니다.

  • 성공적으로 복원하려면 소프트 삭제 보관 기간 종료 후 객체가 영구적으로 삭제되므로 복원을 충분히 일찍 시작해야 소프트 삭제 보관 기간 내에 복원할 수 있습니다.
  • 객체 목록을 지정하여 소프트 삭제된 객체를 동기식으로 복원하거나 두 타임스탬프 사이에 삭제된 객체를 일괄 복원하는 장기 실행 작업을 만들 수 있습니다.
  • Cloud Storage는 항상 객체를 원래 삭제된 위치와 동일한 버킷으로 복원합니다.

소프트 삭제된 객체 버전을 복원하면 Cloud Storage에서 소프트 삭제된 객체의 사본을 라이브 버전으로 복원합니다. 서비스 중인 버전이 이미 있으면 소프트 삭제된 버전의 사본이 서비스 중인 버전을 대체하고 기존 서비스 중인 버전이 소프트 삭제됩니다. 이러한 시나리오에서는 버킷에 다음 객체가 포함됩니다.

  • 소프트 삭제된 상태의 교체된 라이브 객체
  • 이전에 소프트 삭제된 객체의 사본 2개(실시간 사본 한 개와 여전히 소프트 삭제된 사본 한 개)

이러한 모든 객체 복사본에는 보관 기간이 지난 후 소프트 삭제된 객체가 영구 삭제될 때까지 스토리지 요금이 청구됩니다.

또한 Cloud Storage는 라이브 객체를 대체할 때 복원된 소프트 삭제된 객체의 메타데이터를 복사합니다. 즉, 객체 수준의 보안 메타데이터와 스토리지 클래스와 같은 설정이 복원 시 특정 객체 버전의 마지막 상태로 설정됩니다.

소프트 삭제된 객체는 버킷 삭제 시 영구 삭제되지 않습니다. 하지만 소프트 삭제된 객체를 복원하려면 먼저 올바른 버킷 버전을 복원해야 합니다. 소프트 삭제된 버킷을 복원하려면 Google Cloud 지원팀에 문의하세요.

다른 기능의 고려사항

소프트 삭제는 모든 Cloud Storage 기능과 호환됩니다. 이 기능을 사용 설정하면 다음과 같이 다른 Cloud Storage 기능과 상호작용합니다.

  • 객체 수명 주기 관리(OLM) 규칙은 라이브 객체 및 이전 객체에만 작동하며 소프트 삭제된 객체에 영향을 미치지 않습니다. OLM이 삭제하는 모든 객체는 영구 삭제하는 대신 소프트 삭제됩니다.
  • 객체 버전 관리는 모든 기존 기능을 제공하며 이때, 세대 번호를 지정하여 이전 객체를 삭제하는 경우 해당 객체가 영구 삭제되는 대신 소프트 삭제되는 경우를 제외합니다. 이 시나리오에서 소프트 삭제는 객체 버전 관리뿐 아니라 두 번째 보호 레이어가 됩니다.
  • 멀티파트 업로드는 객체 완료 시 소프트 삭제로 보호됩니다. 소프트 삭제는 객체가 완료되기 전에 삭제되는 멀티파트 업로드 프래그먼트를 보호하지 않습니다.
  • 자동 클래스 기능은 모든 라이브 객체(객체 버전 관리로 보호되는 이전 객체 포함)의 스토리지 클래스를 관리합니다. 소프트 삭제된 객체에 대한 액세스 권한은 없습니다. 따라서 소프트 삭제된 객체에 대한 자동 클래스 관리 수수료는 평가되지 않습니다. 자동 클래스가 사용 설정된 버킷에서 객체가 소프트 삭제되면 객체의 스토리지 클래스는 소프트 삭제 보관 기간이 경과할 때까지 고정됩니다. 소프트 삭제된 객체를 복원하면 자동 클래스 버킷에서 콜드 객체를 읽어도 스토리지 클래스가 다시 Standard Storage로 재설정되는 것과 동일한 방식으로 해당 객체가 Standard Storage 클래스로 다시 복원됩니다.
  • 버킷 잠금객체 보관 잠금 기능은 이러한 기능에 대해 설정된 보관 기간 동안 라이브 버킷에서 객체를 삭제하지 못하게 합니다. 하지만 소프트 삭제를 사용하면 라이브 객체를 삭제하고 필요한 경우 복원할 수 있습니다.

    이러한 기능 중 하나 또는 둘 다 사용하는 동안 소프트 삭제가 사용 설정되면 버킷 잠금 및 객체 잠금 보관 정책에 지정된 기간 동안 라이브 객체를 삭제할 수 없습니다. 라이브 객체에서 이러한 잠금이 만료되면 이를 삭제할 수 있습니다. 그러면 객체가 소프트 삭제 상태로 이동하고 소프트 삭제 보관 기간 동안 보관됩니다.

  • 조직 정책에서 소프트 삭제에 대한 정책 제약조건을 설정할 수 있습니다.

    이렇게 하면 새 버킷을 만들거나 기존 버킷을 업데이트할 때 특정 소프트 삭제 보관 기간을 설정할 수 있습니다.

  • 소프트 삭제된 객체 버전을 복원하면 객체 복원이 성공할 때마다 Pub/Sub에서 OBJECT_FINALIZE 이벤트를 트리거합니다.

  • 소프트 삭제에서는 관리형 폴더에 대한 IAM 정책을 복원할 수 없습니다. 객체를 소프트 삭제하고 객체에 대한 IAM 정책을 부여하는 관리형 폴더를 삭제하는 경우 소프트 삭제된 객체를 복원하는 데 필요한 권한을 부여받기 전에 해당 IAM 정책을 다시 만들어야 할 수 있습니다.

다음 단계