S3 객체 잠금 개요 - Amazon Simple Storage Service

S3 객체 잠금 개요

S3 객체 잠금을 사용하면 write-once-read-many(WORM) 모델을 사용하여 객체를 저장할 수 있습니다. 고정된 시간 동안 또는 무기한으로 객체를 삭제하거나 덮어쓰지 않도록 할 수 있습니다. S3 객체 잠금을 사용하여 WORM 스토리지가 필요한 규제 요구 사항을 충족하거나 객체 변경 및 삭제에 대한 보호 계층을 추가할 수 있습니다.

Amazon S3 객체의 잠금 상태 관리에 대한 자세한 내용은 Amazon S3 객체 잠금 관리 단원을 참조하십시오.

참고

S3 객체 잠금이 있는 S3 버킷은 Amazon S3 서버 액세스 로깅의 대상 버킷으로 사용할 수 없습니다.

다음 단원에서는 S3 객체 잠금의 주요 기능에 대해 설명합니다.

보관 모드

S3 객체 잠금은 두 가지 보관 모드를 제공합니다.

  • 거버넌스 모드

  • 규정 준수 모드

이러한 보관 모드는 객체에 대해 다양한 수준의 보호를 적용합니다. 둘 중 한 가지 보관 모드를 객체 잠금에 의해 보호되는 객체 버전에 적용할 수 있습니다.

거버넌스 모드에서 특별한 권한이 없는 한 사용자는 객체 버전을 덮어쓰거나 삭제하거나 잠금 설정을 변경할 수 없습니다. 거버넌스 모드를 사용하면 대부분의 사용자가 객체를 삭제하지 못하도록 보호하지만, 필요에 따라 일부 사용자에게 보관 설정을 변경하거나 객체를 삭제할 수 있는 권한을 부여할 수 있습니다. 규정 준수 모드 보관 기간을 생성하기 전에 거버넌스 모드를 사용하여 보관 기간 설정을 테스트할 수도 있습니다. 거버넌스 모드 보관 설정을 재정의하거나 제거하려면 사용자가 s3:BypassGovernanceRetention 권한을 갖고 있어야 하며 재정의 모드를 재정의해야 하는 요청과 함께 요청 헤더로 x-amz-bypass-governance-retention:true를 명시적으로 포함해야 합니다.

참고

Amazon S3 콘솔에는 기본적으로 x-amz-bypass-governance-retention:true 헤더가 포함됩니다. 거버넌스 모드로 보호되는 객체를 삭제하려는 경우 s3:BypassGovernanceRetention 또는 s3:GetBucketObjectLockConfiguration 권한이 있으면 작업이 성공합니다.

규정 준수 모드에서 보호된 객체 버전은 AWS 계정의 루트 사용자를 포함한 어떤 사용자도 덮어쓰거나 삭제할 수 없습니다. 규정 준수 모드에서 객체를 잠그면 보관 모드를 변경할 수 없으며 보관 기간을 줄일 수 없습니다. 규정 준수 모드는 보관 기간 동안 객체 버전을 덮어쓰거나 삭제할 수 없도록 합니다.

참고

객체 잠금을 설정하거나 변경할 때 발생하는 객체 버전의 메타데이터 업데이트는 객체 버전을 덮어쓰거나 해당 Last-Modified 타임스탬프를 재설정하지 않습니다.

보관 기간

보관 기간은 정해진 시간 동안 객체 버전을 보호합니다. 객체 버전에 보관 기간을 설정하면 Amazon S3는 객체 버전의 메타데이터에 타임스탬프를 저장하여 보관 기간이 만료되는 시점을 표시합니다. 보관 기간이 만료된 후 객체 버전에 법적 보존을 설정하지 않는 한 객체 버전을 덮어쓰거나 삭제할 수 있습니다.

보관 기간은 명시적으로 또는 버킷 기본 설정을 통해 객체 버전에 적용할 수 있습니다. 객체 버전에 명시적으로 보관 기간을 적용할 경우 객체 버전에 대해 보관 종료일을 지정합니다. Amazon S3는 객체 버전의 메타데이터에 보관 종료일 설정을 저장하고 보관 기간이 만료될 때까지 객체 버전을 보호합니다.

버킷 기본 설정을 사용할 때는 보관 종료일을 지정하지 않습니다. 대신, 버킷에 있는 모든 객체 버전을 보호해야 하는 기간을 일 또는 연 단위로 지정합니다. 객체를 버킷에 배치하면 Amazon S3는 객체 버전의 생성 타임스탬프에 지정된 기간을 추가하여 객체 버전에 대한 보관 종료일을 계산합니다. 객체 버전의 메타데이터에 보관 종료일을 저장합니다. 그러면 객체 버전에 해당 보관 기간의 잠금을 명시적으로 배치한 것처럼 객체 버전이 보호됩니다.

참고

버킷에 객체 버전을 배치하라는 요청이 명시적 보관 모드와 기간을 포함하면 해당 설정은 해당 객체 버전에 대한 버킷 기본 설정을 재정의합니다.

다른 모든 객체 잠금 설정과 마찬가지로 보관 기간은 개별 객체 버전에 적용됩니다. 단일 객체의 서로 다른 버전은 보관 모드 및 기간이 각기 다를 수 있습니다.

예를 들어 보관 기간 15-30일인 객체가 있고 같은 이름으로 60일 보관 기간으로 객체를 Amazon S3에 PUT한다고 가정하십시오. 이 경우 PUT이 성공하면 Amazon S3는 보관 기간이 60일인 새 버전의 객체가 생성됩니다. 이전 버전은 원래 보관 기간을 유지하고 15일 후에 삭제할 수 있게 됩니다.

보관 설정을 객체 버전에 적용한 후에는 보관 기간을 연장할 수 있습니다. 이렇게 하려면 Retain Until Date이 현재 객체 버전에 구성된 날짜보다 뒤에 있는 객체 버전에 대해 새 잠금 요청을 제출합니다. Amazon S3는 기존 보관 기간을 새롭고 더 긴 기간으로 대체합니다. 객체 보관 기간을 설정할 권한이 있는 사용자는 두 모드 중 하나에서 잠긴 객체 버전에 대해 보관 기간을 연장할 수 있습니다.

객체 잠금을 사용하면 객체 버전에 법적 보존을 설정할 수도 있습니다. 보관 기간과 마찬가지로 법적 보존을 사용하면 객체 버전을 덮어쓰거나 삭제할 수 없습니다. 그러나 법적 보존에는 연결된 보관 기간이 없고, 제거될 때까지 유효합니다. 법적 보존은 s3:PutObjectLegalHold 권한을 가진 사용자가 자유롭게 배치하고 제거할 수 있습니다. 전체 Amazon S3 권한 목록은 Amazon S3에 사용되는 작업, 리소스 및 조건 키 단원을 참조하십시오.

법적 보존은 보관 기간과 독립적입니다. 객체가 포함된 버킷에 객체 잠금이 활성화되어 있으면 지정된 객체 버전에 보관 기간이 설정되었는지 여부에 관계없이 법적 보존을 설정하고 제거할 수 있습니다. 객체 버전에 법적 보존을 설정해도 해당 객체 버전의 보관 모드 또는 보관 기간에는 영향을 주지 않습니다. 예를 들어, 객체 버전을 보관 기간으로도 보호하는 동시에, 객체 버전에 법적 보존을 적용한다고 가정합니다. 보관 기간이 만료되면 객체의 WORM 보호가 손실되지 않습니다. 오히려, 법적 보유는 권한 있는 사용자가 명시적으로 제거할 때까지 객체를 계속 보호합니다. 마찬가지로 객체 버전의 보관 기간이 유효한 상태에서 법적 보존을 제거하면 보관 기간이 만료될 때까지 객체 버전이 보호됩니다.

버킷 구성

객체 잠금을 사용하려면 버킷에 대해 활성화합니다. 버킷에 있는 새 객체에 적용할 기본 보관 모드와 기간을 선택적으로 구성할 수도 있습니다.

S3 객체 잠금 활성화

객체를 잠그기 전에 버킷이 S3 객체 잠금을 사용하도록 구성해야 합니다. 이를 위해 버킷을 구성할 때 객체 잠금을 활성화하기로 지정해야 합니다. 객체 잠금에 버킷을 구성하면 보관 기간, 법적 보존 또는 두 가지를 모두 사용하여 해당 버킷의 객체를 잠글 수 있습니다.

참고
  • 새 버킷의 객체 잠금만 활성화할 수 있습니다. 기존 버킷에 대해 객체 잠금을 적용하려면 AWS Support에 문의하십시오.

  • 객체 잠금이 활성화된 버킷을 생성하면 Amazon S3가 버킷의 버전 관리를 자동으로 활성화합니다.

  • 객체 잠금이 활성화된 버킷을 생성하면 객체 잠금을 비활성화하거나 버킷의 버전 관리를 일시 중지할 수 없습니다.

콘솔에서 객체 잠금 활성화에 대한 자세한 내용은 Amazon Simple Storage Service 콘솔 사용 설명서Amazon S3 객체를 어떻게 잠급니까?를 참조하십시오.

기본 보관 설정

버킷에 객체 잠금을 켜면 버킷은 보호된 객체를 저장할 수 있습니다. 그러나 이 설정은 버킷에 넣은 객체를 자동으로 보호하지 않습니다. 버킷에 있는 객체 버전을 자동으로 보호하려면 기본 보관 기간을 구성할 수 있습니다. 객체를 만들 때 객체에 다른 보관 모드와 기간을 명시적으로 지정하지 않으면 기본 설정이 버킷에 있는 모든 새 객체에 적용됩니다.

작은 정보

버킷에 배치된 모든 새 객체 버전에 대해 버킷 기본 보관 모드 및 기간을 적용하려는 경우 버킷 기본값을 설정하고 사용자가 객체 보관 설정을 적용하는 권한을 거부하면 됩니다. 그러면 Amazon S3가 버킷에 있는 새 객체 버전에 기본 보관 모드와 기간을 적용하고 보관 모드와 설정이 포함된 객체를 구성하라는 요청은 거절합니다.

버킷 기본 설정에는 모드와 기간이 모두 필요합니다. 버킷 기본 모드는 거버넌스 또는 규정 준수입니다. 자세한 내용은 보관 모드 단원을 참조하십시오.

기본 보관 기간은 타임스탬프가 아닌 일 또는 연 단위 기간으로 설명됩니다. 기본 보관 기간으로 버킷에 객체 버전을 배치하면 객체 잠금이 보관 종료일을 계산합니다. 객체 버전의 생성 타임스탬프에 기본 보관 기간을 추가하여 보관 종료일을 계산합니다. 마치 수동으로 타임스탬프를 계산하여 객체 버전에 직접 배치한 것처럼 Amazon S3가 결과 타임스탬프를 객체 버전의 보관 종료일로 저장합니다.

기본 설정은 버킷에 배치된 새 객체에만 적용됩니다. 버킷에 기본 보관 설정을 지정해도 이미 버킷에 있는 객체에는 보관 설정이 적용되지 않습니다.

중요

객체 잠금은 개별 객체 버전에만 적용됩니다. 기본 보관 기간이 있는 버킷에 객체를 배치하고 해당 객체의 보관 기간을 명시적으로 지정하지 않으면 Amazon S3는 버킷 기본값과 일치하는 보관 기간을 사용하여 객체를 생성합니다. 객체가 생성된 후 보관 기간은 버킷의 기본 보관 기간과 독립적입니다. 버킷의 기본 보관 기간을 변경해도 해당 버킷의 모든 객체에 대한 기존 보관 기간은 변경되지 않습니다.

참고

버킷에 기본 보존 기간을 구성하면 해당 버킷에 대한 객체 업로드 요청에 Content-MD5 헤더가 포함되어야 합니다. 자세한 내용은 Amazon Simple Storage Service API ReferencePUT Object를 참조하십시오.

필수 권한

객체 잠금 작업에는 특정 권한이 필요합니다. 필요한 권한에 대한 자세한 내용은 — 객체 작업 예제 단원을 참조하십시오. 권한과 함께 조건을 사용하는 방법에 대한 자세한 내용은 Amazon S3 조건 키 단원을 참조하십시오.