버전 관리, MFA 삭제 및 복제
실수로 인한 삭제를 방지하도록 버전 관리를 활성화하고 리전 간 복제를 구성하며 MFA 삭제를 추가합니다.
버전 관리, MFA 삭제 및 복제은(는) CoddyKit의 무료 Cloud & IT Cert Prep 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cloud & IT Cert Prep 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.
S3 버전 관리: 중요한 이유
S3 Versioning을 사용하면 버킷에 저장된 모든 객체의 모든 버전을 보존, 검색 및 복원할 수 있습니다. 버전 관리가 활성화되면 각 PUT은 고유한 version ID를 가진 새 버전을 생성하며, 이전 버전은 덮어쓰이지 않고 유지됩니다. 객체를 Delete하면 S3는 삭제 마커를 현재 버전으로 추가하지만 이전 버전은 모두 유지합니다. 이는 프로덕션 환경에서 가장 흔한 데이터 손실 시나리오인 실수로 인한 덮어쓰기, 실수로 인한 삭제, 의도치 않은 애플리케이션 수준 데이터 손상으로부터 보호합니다.
# Enable versioning on a bucket
aws s3api put-bucket-versioning \
--bucket my-important-bucket \
--versioning-configuration Status=Enabled
# List all versions of an object
aws s3api list-object-versions \
--bucket my-important-bucket \
--prefix my-document.pdf버전 관리 상태와 전환
S3 버킷은 세 가지 버전 관리 상태 중 하나일 수 있습니다. 버전 관리 미사용(기본값, 버전 ID 없음), 버전 관리 활성화(모든 새 객체에 고유한 버전 ID가 부여되고 모든 덮어쓰기가 새 버전을 생성), 버전 관리 일시 중지(새 객체에 null 버전 ID가 부여되지만 기존 버전은 유지)입니다. 버전 관리를 한 번 활성화하면 삭제할 수 없으며 일시 중지만 할 수 있습니다. 버전 관리 활성화 전에 생성된 객체는 null 버전 ID를 가지며, 덮어쓰거나 Delete하기 전까지 영향을 받지 않습니다.
이전 버전 복원하기
버전 관리되는 객체의 이전 버전을 복원하는 방법은 두 가지입니다. 옵션 1: 이전 버전 ID를 동일한 키에 다시 복사합니다. 그러면 이전 콘텐츠의 복사본인 새 버전이 생성되어 현재 버전으로 승격됩니다. 옵션 2: 현재 버전 또는 삭제 마커를 Delete하여 이전 버전이 현재 버전으로 표시되게 합니다. 콘솔에서 버전 ID를 지정하지 않고 버전 관리 버킷의 객체를 'Delete'하면 S3는 삭제 마커를 추가합니다. 버전 관리되지 않은 요청에서는 객체가 삭제된 것처럼 보이지만 모든 버전은 그대로 남아 있습니다.
# Restore a specific version by copying it back to the same key
aws s3api copy-object \
--bucket my-important-bucket \
--copy-source 'my-important-bucket/my-document.pdf?versionId=abc123'\
--key my-document.pdfMFA Delete: 추가 보호
MFA Delete는 버전 관리 버킷에 두 번째 보호 계층을 추가합니다. 활성화된 경우 특정 버전을 영구적으로 Delete하거나 버킷의 버전 관리 상태를 변경(활성화 → 일시 중지)하려면 API 요청에 유효한 MFA 자격 증명을 제공해야 합니다. 이는 AWS 자격 증명을 탈취한 공격자가 중요한 버전을 영구적으로 Delete하는 경우, 고정된 객체 버전을 실수로 또는 자동으로 삭제하는 경우, 감사 추적을 파괴하려는 내부자 위협으로부터 보호합니다. MFA Delete는 루트 사용자만 CLI를 통해 활성화하거나 비활성화할 수 있습니다.
# Enable MFA Delete (must be done as root user)
aws s3api put-bucket-versioning \
--bucket my-important-bucket \
--versioning-configuration Status=Enabled,MFADelete=Enabled \
--mfa 'arn:aws:iam::123456789012:mfa/root-account-mfa-device 123456'S3 Object Lock
S3 Object Lock은 규정 준수를 위해 한 번 쓰고 여러 번 읽는 WORM 모델을 적용합니다. Object Lock으로 잠긴 객체는 지정된 보존 기간 동안 계정 루트 사용자조차 Delete하거나 덮어쓸 수 없습니다. 두 가지 모드가 있습니다. 거버넌스 모드(특별 권한을 가진 사용자가 잠금을 재정의하거나 해제할 수 있음)와 컴플라이언스 모드(보존 기간 동안 AWS를 포함해 누구도 객체를 Delete할 수 없음. 가장 강력한 보호)입니다. Object Lock은 버킷을 생성할 때 활성화해야 하며 버전 관리가 필요합니다.
# Apply a retention rule to an object
aws s3api put-object-retention \
--bucket my-compliance-bucket \
--key audit-log-2024.csv \
--version-id abc123 \
--retention '{"Mode":"COMPLIANCE","RetainUntilDate":"2027-01-01T00:00:00Z"}'S3 Cross-Region Replication (CRR)
Cross-Region Replication (CRR)은 한 Region의 원본 버킷에 있는 새 객체와 업데이트를 다른 Region의 대상 버킷으로 자동 복제합니다. 사용 사례는 규정 준수(특정 국가에 데이터 사본 유지), 재해 복구(두 번째 Region에 사본을 유지하여 중요한 데이터의 RPO 감소), 지연 시간 감소(사용자와 가장 가까운 Region에서 객체 제공)입니다. CRR을 사용하려면 원본 버킷과 대상 버킷 모두에서 버전 관리를 활성화해야 하며, 필요한 복제 권한을 가진 IAM 역할이 필요합니다.
# Apply a replication configuration
aws s3api put-bucket-replication \
--bucket source-bucket-us-east-1 \
--replication-configuration file://replication-config.json
# Config specifies Role ARN, destination bucket ARN, and filter rulesSame-Region Replication (SRR)
Same-Region Replication (SRR)은 동일한 Region 내에서 객체를 복제합니다. 사용 사례는 로그 집계(여러 원본 버킷의 로그를 하나의 중앙 버킷으로 복제), 테스트 환경 동기화(동일한 Region 내 개발 버킷에 프로덕션 데이터 사본 유지), 여러 AWS AZs가 있는 단일 국가 내에서의 데이터 주권 규정 준수입니다. CRR과 마찬가지로 SRR에도 두 버킷의 버전 관리와 IAM 역할이 필요합니다. 복제를 활성화한 후 생성된 새 객체만 자동으로 복제됩니다. 기존 객체를 복제하려면 S3 Batch Replication을 사용하세요.
복제: 복제되는 항목과 복제되지 않는 항목
S3 복제는 다음을 복제합니다. 새 객체, 메타데이터, 태그, ACLs 및 암호화 상태입니다. 기본적으로 복제는 다음을 복제하지 않습니다. 복제를 활성화하기 전에 존재했던 객체(이 경우 S3 Batch Replication 사용), 삭제 마커(Delete Marker Replication을 활성화하지 않은 경우), Glacier의 객체(복제할 수 없으므로 먼저 Restore 필요), 복제된 객체(세 버킷 사이에서 연쇄 복제 불가)입니다. 과거 데이터와 삭제 이벤트도 복제해야 하는 완전한 DR 전략을 설계하려면 이러한 경계를 이해하는 것이 중요합니다.
S3 Replication Time Control (RTC)
Replication Time Control (RTC)은 CRR을 위한 선택적 추가 기능으로, 15분 이내에 객체의 99.99%를 복제한다는 Service Level Agreement와 CloudWatch의 복제 지표 및 알림을 제공합니다. RTC가 없으면 복제 시간은 보장되지 않습니다. 대부분의 객체는 빠르게 복제되지만 일부 예외는 몇 시간이 걸릴 수 있습니다. DR 또는 규정 준수 요구 사항에서 S3 데이터의 최대 Recovery Point Objective (RPO)를 지정하는 경우 RTC는 필수입니다. 표준 복제 데이터 전송 비용에 더해 GB당 복제 요금이 추가됩니다.
버전 관리와 스토리지 비용 영향
버전 관리를 활성화하면 S3가 명시적으로 삭제할 때까지 모든 객체의 모든 버전을 보존하므로 스토리지 비용이 증가합니다. 100MB 파일을 10번 덮어쓰면 이제 스토리지를 1,000MB 사용하게 됩니다. 일정 기간이 지난 현재 버전이 아닌 버전을 자동으로 만료시키는 수명 주기 규칙을 사용해 이를 완화할 수 있습니다. 예를 들어 30일이 지난 현재 버전이 아닌 버전을 삭제하도록 설정하거나, 현재 버전이 아닌 버전을 Glacier와 같은 저렴한 스토리지 클래스으로 전환할 수 있습니다. 프로덕션에서는 스토리지 비용을 관리하기 위해 항상 버전 관리와 수명 주기 규칙을 함께 사용하십시오.
# Lifecycle rule to expire non-current versions after 30 days
aws s3api put-bucket-lifecycle-configuration \
--bucket my-important-bucket \
--lifecycle-configuration '{"Rules":[{"ID":"expire-old-versions","Status":"Enabled","NoncurrentVersionExpiration":{"NoncurrentDays":30}}]}'랜섬웨어로부터 보호하기
S3 버전 관리를 Object Lock(Compliance 모드)과 함께 사용하면 랜섬웨어로부터 강력하게 보호할 수 있습니다. 공격자가 객체를 암호화하거나 삭제하더라도 버전 관리가 이전 버전을 보존합니다. 단, 공격자가 이전 버전을 영구적으로 삭제할 수 있는 경우가 있으므로 보존 기간 동안 영구 삭제를 방지하는 Object Lock이 필요합니다. 최대한 보호하려면 버전 관리를 활성화하고, MFA Delete를 활성화하며, 중요한 데이터에는 Object Lock을 Compliance 모드로 적용하고, 별도의 IAM 자격 증명을 사용하여 두 번째 Region에 복제하십시오. 이렇게 하면 단일 계정이 침해되더라도 모든 복사본이 삭제되는 것을 방지할 수 있습니다.
빠른 확인
이 레슨에서 다룬 AWS Solutions Architect (SAA-C03) 개념에 대한 이해도를 확인해 보십시오.
레슨 요약
이 레슨에서는 다음을 배웠습니다. 버전 관리는 모든 객체의 모든 버전을 보존하고 실수로 인한 삭제를 방지합니다. 또한 MFA Delete와 Object Lock은 규정 준수 및 랜섬웨어 보호를 위해 변경 불가능성을 더욱 강화합니다. CRR과 SRR은 다른 버킷에 객체를 복제하여 DR 및 규정 준수 요구 사항을 충족합니다. 다음으로 S3 스토리지 클래스와 비용 최적화를 위한 수명 주기 정책을 살펴보겠습니다.
자주 묻는 질문
“버전 관리, MFA 삭제 및 복제” 강의는 무료인가요?
네 — “버전 관리, MFA 삭제 및 복제” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cloud & IT Cert Prep 강의 전체를 잠금 해제할 수 있습니다. Cloud & IT Cert Prep 강의에는 총 4개의 강의가 포함되어 있습니다.
“버전 관리, MFA 삭제 및 복제”에서 뭘 배우나요?
실수로 인한 삭제를 방지하도록 버전 관리를 활성화하고 리전 간 복제를 구성하며 MFA 삭제를 추가합니다. 브라우저에서 직접 실행하는 실습 코드로 Cloud & IT Cert Prep을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Cloud & IT Cert Prep을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Cloud & IT Cert Prep은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“버전 관리, MFA 삭제 및 복제” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Cloud & IT Cert Prep 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Cloud & IT Cert Prep 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 버킷, 객체 및 리전
- S3 액세스 제어: 버킷 정책 및 ACL
- 버전 관리, MFA 삭제 및 복제
- 스토리지 클래스 및 수명 주기 정책