설명
Object Versioning은 덮어쓰거나 삭제한 라이브 객체의 이전 버전을 보존해 특정 버전을 복구하는 데 도움이 됩니다. 비활성화되어 있어도 소프트 삭제 등 다른 복구 수단이 있을 수 있으므로 실제 복구 정책을 함께 확인해야 합니다.
잠재적 영향
- 필요한 이전 버전이나 다른 복구 수단이 없으면 잘못된 변경을 되돌리기 어려울 수 있습니다.
- 버전 관리는 버킷 삭제를 보호하지 않으며, 권한 있는 사용자의 이전 버전 삭제도 자체적으로 막지 않습니다.
해결 방법
- 이전 버전에 지속적으로 접근해야 하면
versioning { enabled = true }를 설정하세요. 우발적·악의적 삭제 복구에는 소프트 삭제도 검토하세요. - 수명 주기와 보관 정책으로 비용을 관리하고 복원을 시험하세요. 삭제 권한을 제한하고 필요한 불변성 통제는 별도로 구성하세요.
예시
설정 일부를 비교합니다. 버킷 이름을 사용 가능한 값으로 바꾸고 실제 복구 요구를 확인하세요.
변경 전
hcl
resource "google_storage_bucket" "example" {
name = "foo"
location = "EU"
versioning {
enabled = false
}
}
변경 후
hcl
resource "google_storage_bucket" "example" {
name = "foo"
location = "EU"
versioning {
enabled = true
}
}
설명:
- 변경 전: 새 비현재 버전을 축적하지 않습니다. 소프트 삭제나 별도 백업의 적용 여부는 별도 확인이 필요합니다.
- 변경 후: 버전 관리를 활성화합니다. 과거에 영구 삭제된 객체를 되살리거나 버킷 삭제를 방지하는 설정은 아닙니다.