설명
객체 버전 관리를 사용하지 않으면 덮어쓰거나 삭제한 객체의 이전 세대가 버전 관리로 보존되지 않습니다. 다른 복구 수단도 없다면 실수나 악의적인 변경 이후 데이터를 되돌리기 어려울 수 있습니다.
Google Cloud는 우발적·악의적 삭제 보호에 소프트 삭제를 권장합니다. 이전 세대를 직접 읽어야 한다면 버전 관리를 함께 검토하세요. 버전 관리는 버킷 삭제나 특정 세대의 영구 삭제를 모두 막는 기능은 아닙니다.
잠재적 영향
- 복구할 세대나 백업이 없으면 객체의 이전 내용을 잃을 수 있습니다.
- 이전 세대를 제한 없이 보관하면 저장 비용이 늘어날 수 있습니다.
해결 방법
필요한 복구 기간과 변경 이력을 정하고 소프트 삭제와 객체 버전 관리를 구성하세요. 이전 세대가 필요하면 versioning.enabled를 true로 설정하세요. 수명 주기 규칙, 삭제 권한과 저장 비용을 함께 검토하고 실제 객체 복구를 시험하세요.
예시
같은 버킷의 버전 관리 설정을 비교합니다. 버킷·프로젝트 이름과 서비스 계정 JSON 파일 경로를 실제 값으로 바꾸세요. 소프트 삭제와 수명 주기 규칙은 생략했습니다.
변경 전
yaml
- name: 버킷 생성
google.cloud.gcp_storage_bucket:
name: ansible-storage-module
project: test_project
auth_kind: serviceaccount
service_account_file: /tmp/auth.pem
state: present
versioning:
enabled: no
새로운 비현재 세대를 보존하는 버전 관리를 비활성화합니다. 이미 남아 있는 이전 세대가 이 설정만으로 삭제되지는 않습니다.
변경 후
yaml
- name: 버킷 생성
google.cloud.gcp_storage_bucket:
name: ansible-storage-module
project: test_project
auth_kind: serviceaccount
service_account_file: /tmp/auth.pem
state: present
versioning:
enabled: yes
버전 관리를 활성화해 이후 객체 교체·삭제 시 비현재 세대를 보존합니다. 이미 잃어버린 데이터를 복원하거나 특정 세대의 삭제를 모두 막지는 않습니다.