객체 잠금 고려 사항
Amazon S3 객체 잠금을 사용하면 고정된 시간 동안 또는 무기한으로 객체의 삭제 또는 덮어쓰기를 방지하는 데 도움이 됩니다.
Amazon S3 콘솔, AWS Command Line Interface(AWS CLI), AWS SDK 또는 Amazon S3 REST API를 사용하여 객체 잠금 정보를 보거나 설정할 수 있습니다. S3 객체 잠금 기능에 대한 일반적인 내용은 Object Lock으로 객체 잠금 섹션을 참조하세요.
중요
-
버킷에 객체 잠금이 활성화하고 나면 해당 버킷에서 객체 잠금을 비활성화하거나 버전 관리를 일시 중지할 수 없습니다.
-
객체 잠금이 설정된 S3 버킷은 서버 액세스 로그의 대상 버킷으로 사용할 수 없습니다. 자세한 내용은 서버 액세스 로깅을 사용한 요청 로깅 단원을 참조하십시오.
주제
잠금 정보를 볼 수 있는 권한
HeadObject 또는 GetObject 작업을 사용하여 프로그래밍 방식으로 Amazon S3 객체 버전의 객체 잠금 상태를 볼 수 있습니다. 두 작업 모두 지정된 객체 버전에 대한 보존 모드, 보존 만료 날짜 및 법적 보존 상태를 반환합니다. 또한 S3 Inventory를 사용하여 S3 버킷의 여러 객체에 대한 객체 잠금 상태를 볼 수 있습니다.
객체 버전의 보관 모드 및 보관 기간을 보려면 s3:GetObjectRetention
권한이 있어야 합니다. 객체 버전의 법적 보존 상태를 보려면 s3:GetObjectLegalHold
권한이 있어야 합니다. 버킷의 기본 보존 구성을 보려면 s3:GetBucketObjectLockConfiguration
권한이 있어야 합니다. S3 객체 잠금이 활성화되지 않은 버킷에 대해 객체 잠금 구성을 요청하면 Amazon S3가 오류를 반환합니다.
거버넌스 모드 무시
s3:BypassGovernanceRetention
권한이 있는 경우, 거버넌스 모드에서 잠긴 객체 버전이 마치 보호되지 않은 것처럼 작업을 수행할 수 있습니다. 이러한 작업에는 객체 버전 삭제, 보존 기간 단축 또는 빈 파라미터와 함께 새로운 PutObjectRetention
요청을 배치하여 객체 잠금 보존 기간을 제거하는 작업이 포함됩니다.
거버넌스 모드를 무시하려면 요청에 이 모드를 무시할 것인지 명시해야 합니다. 이를 위해 PutObjectRetention
API 요청에 x-amz-bypass-governance-retention:true
헤더를 포함하거나 AWS CLI 또는 AWS SDK를 통해 만든 요청과 동등한 파라미터를 사용합니다. s3:BypassGovernanceRetention
권한이 있는 경우, S3 콘솔은 콘솔을 통해 만든 요청에 이 헤더를 자동으로 적용합니다.
참고
거버넌스 모드 무시는 객체 버전의 법적 보존 상태에 영향을 주지 않습니다. 객체 버전에 법적 보존이 활성화된 경우, 법적 보존은 유지되고, 객체 버전을 덮어쓰거나 삭제하는 요청을 차단합니다.
S3 복제에 객체 잠금 사용
S3 복제에 객체 잠금을 사용하여 잠긴 객체와 보존 메타데이터를 서로 다른 S3 버킷에 비동기식으로 자동 복사할 수 있습니다. 즉, 복제된 객체의 경우 Amazon S3는 소스 버킷의 객체 잠금 구성을 사용합니다. 다시 말해, 소스 버킷에 객체 잠금이 활성화되어 있는 경우, 대상 버킷에도 객체 잠금이 활성화되어 있어야 합니다. 객체가 대상 버킷(S3 복제 외부)에 직접 업로드되는 경우 대상 버킷에 설정된 객체 잠금을 사용합니다. 복제를 사용하면 소스 버킷의 객체가 하나 이상의 대상 버킷으로 복제됩니다.
객체 잠금이 활성화된 버킷에서 복제를 설정하려면 S3 콘솔, AWS CLI, Amazon S3 REST API 또는 AWS SDK를 사용할 수 있습니다.
참고
복제에 객체 잠금을 사용하려면 복제 설정에 사용하는 AWS Identity and Access Management(IAM) 역할에서 소스 S3 버킷에 두 가지 권한을 추가로 부여해야 합니다. 두 가지 추가 권한은 s3:GetObjectRetention
과 s3:GetObjectLegalHold
입니다. 역할에 s3:Get*
권한 문이 있으면 해당 문이 요구 사항을 충족합니다. 자세한 내용은 라이브 복제에 대한 권한 설정 단원을 참조하십시오.
S3 복제에 대한 일반적인 정보는 리전 내 및 리전 간 객체 복제 섹션을 참조하세요.
S3 복제 설정의 예는 라이브 복제 구성 예제 섹션을 참조하세요.
암호화에 Object Lock 사용
Amazon S3는 기본적으로 모든 새 객체를 암호화합니다. 암호화된 객체에 Object Lock을 사용할 수 있습니다. 자세한 내용은 암호화로 데이터 보호 단원을 참조하십시오.
Object Lock을 사용하면 Amazon S3 객체의 삭제 또는 덮어쓰기를 방지하는 데 도움이 되지만, 삭제 중인 암호화 키 또는 암호화 키에 대한 액세스 권한 손실을 보호하지 못합니다. 예를 들어, AWS KMS 서버 측 암호화로 객체를 암호화하고 AWS KMS 키를 삭제하면 객체를 읽을 수 없게 될 수 있습니다.
Amazon S3 인벤토리에서 객체 잠금 사용
정해진 일정으로 S3 버킷의 객체 목록을 생성하도록 Amazon S3 인벤토리를 구성할 수 있습니다. 객체에 대한 다음 객체 잠금 메타데이터를 포함하도록 Amazon S3 인벤토리를 구성할 수 있습니다.
-
보존 만료 날짜
-
보존 모드
-
법적 보존 상태
자세한 내용은 S3 Inventory를 사용한 데이터 카탈로그화 및 분석 단원을 참조하십시오.
객체 잠금을 통한 S3 수명 주기 정책 관리
객체 수명 주기 관리 구성은 삭제 마커 배치를 포함하여 보호된 객체에서 계속 정상적으로 작동합니다. 하지만 객체의 잠긴 버전은 S3 수명 주기 만료 정책에 따라 삭제할 수 없습니다. 객체 잠금은 객체가 상주하는 스토리지 클래스와 관계없이 그리고 스토리지 클래스 간 S3 수명 주기 전환 전반에 걸쳐 유지됩니다.
객체 수명 주기 관리에 대한 자세한 내용은 객체 수명 주기 관리 단원을 참조하십시오.
객체 잠금으로 삭제 마커 관리
보호된 객체 버전은 삭제할 수 없지만 해당 객체에 대한 삭제 마커를 생성할 수 있습니다. 객체에 삭제 마커를 배치해도 객체 또는 해당 객체 버전은 삭제되지 않습니다. 그러나 대부분의 경우 객체가 삭제된 것처럼 Amazon S3가 동작을 수행하게 됩니다. 자세한 내용은 삭제 마커를 통한 작업 섹션을 참조하세요.
참고
기본 객체에 설정된 보관 기간이나 법적 보존과 상관없이 삭제 마커는 WORM으로 보호되지 않습니다.
객체 잠금과 함께 S3 Storage Lens 사용
객체 잠금 지원 스토리지 바이트 및 객체 수에 대한 지표를 보려면 Amazon S3 스토리지 렌즈를 사용하면 됩니다. S3 스토리지 렌즈는 조직 전반에서 객체 스토리지 사용 및 활동에 대한 가시성을 확보하는 데 사용할 수 있는 클라우드 스토리지 분석 기능입니다.
자세한 내용은 S3 Storage Lens를 사용하여 데이터 보호 단원을 참조하십시오.
전체 지표 목록은 Amazon S3 스토리지 렌즈 지표 용어집 섹션을 참조하세요.
객체 잠금이 활성화된 버킷에 객체 업로드
Content-MD5
또는 x-amz-sdk-checksum-algorithm
헤더는 Object Lock을 사용하여 보존 기간이 구성된 객체를 업로드하는 모든 요청에 필요합니다. 이러한 헤더는 업로드 중에 객체의 무결성을 확인하는 방법입니다.
Amazon S3 콘솔로 객체를 업로드할 때 S3는 자동으로 Content-MD5
헤더를 추가합니다. 선택적으로 콘솔을 통해 x-amz-sdk-checksum-algorithm
헤더로 추가 체크섬 함수 및 체크섬 값을 지정할 수 있습니다. PutObject API를 사용하는 경우 Content-MD5
헤더, x-amz-sdk-checksum-algorithm
헤더 또는 둘 다 지정하여 Object Lock 보존 기간을 구성해야 합니다.
자세한 내용은 객체 무결성 확인 단원을 참조하십시오.
이벤트 및 알림 구성
Amazon S3 이벤트 알림을 사용하면 AWS CloudTrail을 사용하여 객체 잠금 구성 및 데이터에 대한 액세스 및 변경 사항을 추적할 수 있습니다. CloudTrail에 대한 자세한 내용은 AWS CloudTrail 사용 설명서의 AWS CloudTrail이란 무엇입니까?를 참조하세요.
Amazon CloudWatch를 사용하여 이 데이터를 기반으로 알림을 생성할 수도 있습니다. CloudWatch에 대한 자세한 내용은 Amazon CloudWatch 사용 설명서의 Amazon CloudWatch란 무엇인가요?를 참조하세요.
버킷 정책을 사용하여 보존 기간에 제한 설정
버킷 정책을 사용하여 버킷의 최소 및 최대 허용 보존 기간을 설정할 수 있습니다. 최대 보존 기간은 100년입니다.
다음 예에서는 s3:object-lock-remaining-retention-days
조건 키를 사용하여 최대 보관 기간을 10일로 설정하는 버킷 정책을 보여 줍니다.
{ "Version": "2012-10-17", "Id": "
SetRetentionLimits
", "Statement": [ { "Sid": "SetRetentionPeriod
", "Effect": "Deny", "Principal": "*", "Action": [ "s3:PutObjectRetention" ], "Resource": "arn:aws:s3:::/*", "Condition": { "NumericGreaterThan": { "s3:object-lock-remaining-retention-days": "10" } } } ] }
amzn-s3-demo-bucket1
참고
버킷이 복제 구성의 대상 버킷인 경우 복제를 사용하여 생성된 객체 복제본에 대해 최소 및 최대 허용 보존 기간을 설정할 수 있습니다. 이렇게 하려면 버킷 정책에서 s3:ReplicateObject
작업을 허용해야 합니다. 복제 권한에 대한 자세한 내용은 라이브 복제에 대한 권한 설정 섹션을 참조하세요.
버킷 정책에 대한 자세한 내용은 다음 주제를 참조하세요.
-
서비스 승인 참조의 Amazon S3에 사용되는 작업, 리소스 및 조건 키
S3 리소스 유형별 S3 API 작업 권한에 대한 자세한 내용은 Amazon S3 API 작업에 필요한 권한 섹션을 참조하세요.