버전 관리 설정 점검이 필요한 S3 버킷

S3 버전 관리를 사용하면 덮어쓰기와 일반 삭제 이후의 객체 복구에 도움이 됩니다.

설명

S3 버전 관리가 활성화되지 않으면 객체를 덮어쓰거나 삭제했을 때 이전 상태로 되돌릴 수 있는 선택지가 줄어듭니다. 버전 관리는 백업을 완전히 대체하지는 않지만 변경 이력이 중요한 데이터의 복구에 유용합니다. 활성화 이전에 이미 유실된 내용을 복원하는 기능은 아닙니다.

잠재적 영향

  • 잘못 덮어쓴 객체를 이전 상태로 되돌리기 어려워질 수 있습니다.
  • 삭제나 자동화 오류 후 데이터 손실이 커지고 복구가 늦어질 수 있습니다.

해결 방법

  • 변경 이력을 보존해야 하는 버킷에 versioning: yes를 설정하세요.
  • 이전 버전 삭제 권한을 제한하고 보존 요구에 맞는 수명 주기 정책과 별도 백업을 검토하세요.
  • 버전 저장 비용과 실제 복구 절차를 확인하세요. 한 번 활성화한 버전 관리는 중지할 수 있지만 미사용 상태로 되돌릴 수는 없습니다.

예시

버전 관리 설정을 비교하는 부분 예제입니다. policy.json은 별도로 준비해야 하며 버킷 정책과 Requester Pays 설정도 실제 요구사항에 맞추세요.

변경 전

yaml
- name: S3 버킷 생성
  amazon.aws.s3_bucket:
    name: mys3bucket
    policy: "{{ lookup('file','policy.json') }}"
    requester_pays: yes
    versioning: no

새 버전 보존을 활성화하지 않습니다. 이미 버전 관리를 사용하던 버킷에 적용하면 중지되며 기존 버전을 자동으로 삭제하지는 않습니다.

변경 후

yaml
- name: S3 버킷 생성
  amazon.aws.s3_bucket:
    name: mys3bucket
    policy: "{{ lookup('file','policy.json') }}"
    requester_pays: yes
    versioning: yes

이후의 변경에 대해 객체 버전을 보존합니다. 버전 ID를 지정하지 않은 일반 삭제는 삭제 마커를 만들지만, 권한이 있는 주체가 특정 버전을 영구 삭제할 수 있으므로 삭제 권한도 제한하세요.

참조