객체 잠금 고려 사항 - Amazon Simple Storage Service

객체 잠금 고려 사항

Amazon S3 객체 잠금을 사용하면 고정된 시간 동안 또는 무기한으로 객체의 삭제 또는 덮어쓰기를 방지하는 데 도움이 됩니다.

Amazon S3 콘솔, AWS Command Line Interface(AWS CLI), AWS SDK 또는 Amazon S3 REST API를 사용하여 객체 잠금 정보를 보거나 설정할 수 있습니다. S3 객체 잠금 기능에 대한 일반적인 내용은 S3 객체 잠금 사용 섹션을 참조하세요.

중요
  • 버킷에 객체 잠금이 활성화하고 나면 해당 버킷에서 객체 잠금을 비활성화하거나 버전 관리를 일시 중지할 수 없습니다.

  • 객체 잠금이 설정된 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:GetObjectRetentions3:GetObjectLegalHold입니다. 역할에 s3:Get* 권한 문이 있으면 해당 문이 요구 사항을 충족합니다. 자세한 내용은 권한 설정 단원을 참조하십시오.

S3 복제에 대한 일반적인 정보는 객체 복제 섹션을 참조하세요.

S3 복제 설정의 예는 연습: 복제 구성 예제 섹션을 참조하세요.

Amazon S3 인벤토리에서 객체 잠금 사용

정해진 일정으로 S3 버킷의 객체 목록을 생성하도록 Amazon S3 인벤토리를 구성할 수 있습니다. 객체에 대한 다음 객체 잠금 메타데이터를 포함하도록 Amazon S3 인벤토리를 구성할 수 있습니다.

  • 보존 만료 날짜

  • 보존 모드

  • 법적 보존 상태

자세한 내용은 Amazon S3 인벤토리 단원을 참조하십시오.

객체 잠금을 통한 S3 수명 주기 정책 관리

객체 수명 주기 관리 구성은 삭제 마커 배치를 포함하여 보호된 객체에서 계속 정상적으로 작동합니다. 하지만 객체의 잠긴 버전은 S3 수명 주기 만료 정책에 따라 삭제할 수 없습니다. 객체 잠금은 객체가 상주하는 스토리지 클래스와 관계없이 그리고 스토리지 클래스 간 S3 수명 주기 전환 전반에 걸쳐 유지됩니다.

객체 수명 주기 관리에 대한 자세한 내용은 스토리지 수명 주기 관리 단원을 참조하십시오.

객체 잠금으로 삭제 마커 관리

보호된 객체 버전은 삭제할 수 없지만 해당 객체에 대한 삭제 마커를 생성할 수 있습니다. 객체에 삭제 마커를 배치해도 객체 또는 해당 객체 버전은 삭제되지 않습니다. 그러나 대부분의 경우 객체가 삭제된 것처럼 Amazon S3가 동작을 수행하게 됩니다. 자세한 내용은 삭제 마커를 통한 작업 섹션을 참조하세요.

참고

기본 객체에 설정된 보관 기간이나 법적 보존과 상관없이 삭제 마커는 WORM으로 보호되지 않습니다.

객체 잠금과 함께 S3 Storage Lens 사용

객체 잠금 지원 스토리지 바이트 및 객체 수에 대한 지표를 보려면 Amazon S3 스토리지 렌즈를 사용하면 됩니다. S3 스토리지 렌즈는 조직 전반에서 객체 스토리지 사용 및 활동에 대한 가시성을 확보하는 데 사용할 수 있는 클라우드 스토리지 분석 기능입니다.

자세한 내용은 S3 Storage Lens를 사용하여 데이터 보호 단원을 참조하십시오.

전체 지표 목록은 Amazon S3 스토리지 렌즈 지표 용어집 섹션을 참조하세요.

객체 잠금이 활성화된 버킷에 객체 업로드

Content-MD5 헤더는 객체 잠금을 사용하여 보존 기간이 구성된 객체를 업로드하는 모든 요청에 필요합니다. MD5 다이제스트는 버킷에 업로드한 후 객체의 무결성을 확인하는 방법입니다. 객체를 업로드한 후 Amazon S3는 객체의 MD5 다이제스트를 계산하여 사용자가 제공한 값과 비교합니다. 두 다이제스트가 일치하는 경우에만 요청이 성공합니다. S3 콘솔은 이 헤더를 자동으로 추가하지만 PutObject API를 사용할 때는 이 헤더를 지정해야 합니다.

자세한 내용은 객체를 업로드할 때 Content-MD5 사용 단원을 참조하십시오.

이벤트 및 알림 구성

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:::DOC-EXAMPLE-BUCKET1/*", "Condition": { "NumericGreaterThan": { "s3:object-lock-remaining-retention-days": "10" } } } ] }
참고

버킷이 복제 구성의 대상 버킷인 경우 복제를 사용하여 생성된 객체 복제본에 대해 최소 및 최대 허용 보존 기간을 설정할 수 있습니다. 이렇게 하려면 버킷 정책에서 s3:ReplicateObject 작업을 허용해야 합니다. 복제 권한에 대한 자세한 내용은 권한 설정 섹션을 참조하세요.

버킷 정책에 대한 자세한 내용은 다음 주제를 참조하세요.