설명
S3 버킷에서 버전 관리를 사용하지 않으면 파일이 덮어쓰이거나 삭제되었을 때 이전 상태로 되돌리기 어렵습니다. 운영 중 실수, 배포 오류, 악의적인 변경이 생기면 복구 가능한 선택지가 줄어듭니다.
VersioningConfiguration.Status: Enabled는 이후 객체 변경에 대한 버전을 보관합니다. 활성화 전에 이미 잃어버린 데이터를 복구하지는 않으며, 버전 관리를 중지해도 기존 버전은 남습니다.
잠재적 영향
- 객체 삭제나 덮어쓰기 후 이전 내용을 복구하지 못할 수 있습니다.
- 운영 실수나 자동화 오류 이후 데이터 복구 시간이 길어질 수 있습니다.
해결 방법
- 복구 이력이 필요한 버킷에
VersioningConfiguration과Status: Enabled를 설정하세요. - 이전 버전의 보존 기간과 저장 비용을 고려해 수명 주기 정책을 구성하고 버전 영구 삭제 권한을 제한하세요.
- 실제 버전 생성과 복원을 시험하세요. 변경 불가능한 보존이 필요하면 Object Lock 등 별도 보호를 검토하세요.
예시
다음 예제는 같은 버킷에서 버전 관리만 활성화하는 발췌입니다. 복제 설정은 포함하지 않습니다.
변경 전
yaml
Resources:
RecordServiceS3Bucket:
Type: AWS::S3::Bucket
새 버킷에 버전 관리를 활성화하지 않습니다. 객체를 덮어쓰거나 삭제하면 이전 내용이 남지 않을 수 있습니다.
변경 후
yaml
Resources:
RecordServiceS3Bucket:
Type: AWS::S3::Bucket
Properties:
VersioningConfiguration:
Status: Enabled
이후 변경에 대한 버전을 보관합니다. 수명 주기 만료나 버전 영구 삭제로 이력이 사라질 수 있으므로 버전 관리만으로 변경 불가능한 백업이 보장되지는 않습니다.