Object Lock으로 객체 잠금 - Amazon Simple Storage Service

Object Lock으로 객체 잠금

S3 객체 잠금을 사용하면 고정된 시간 동안 또는 무기한으로 Amazon S3 객체의 삭제 또는 덮어쓰기를 방지하는 데 도움이 됩니다. 객체 잠금은 WORM(Write Once Read Many) 모델을 사용하여 객체를 저장합니다. 객체 잠금을 사용하면 WORM 스토리지가 필요한 규제 요구 사항을 충족하거나 객체 변경 또는 삭제에 대한 보호 계층을 추가하는 데 도움이 됩니다.

참고

S3 객체 잠금은 SEC 17a-4, CFTC 및 FINRA 규정의 적용을 받는 환경에서 Cohasset Associates가 평가했습니다. 객체 잠금과 이러한 규정의 관계에 대한 자세한 내용은 Cohasset Associates Compliance Assessment를 참조하세요.

객체 잠금은 보관 기간법적 보존 등 객체 보관을 관리하는 2가지 방법을 제공합니다. 객체 버전에는 보존 기간과 법적 보존 또는 둘 다를 지정할 수 있습니다.

  • 보존 기간 - 보존 기간은 객체가 잠겨 있는 동안 고정된 기간을 지정합니다. 개별 객체에 대해 고유한 보존 기간을 설정할 수 있습니다. 또한 S3 버킷에 기본 보존 기간을 설정할 수 있습니다. 버킷 정책의 s3:object-lock-remaining-retention-days 조건 키를 사용하여 최소 및 최대 허용 보존 기간을 제한할 수도 있습니다. 이를 통해 보존 기간의 범위를 설정하고 이 범위보다 짧거나 길 수 있는 보존 기간을 제한할 수 있습니다.

  • 법적 보존 - 법적 보존은 보존 기간과 동일한 보호를 제공하지만 만료 날짜는 없습니다. 대신, 명시적으로 제거할 때까지 법적 보존이 유지됩니다. 법적 보존은 보존 기간과 별개이며 개별 객체 버전에 적용됩니다.

객체 잠금은 S3 버전 관리가 활성화된 버킷에서만 작동합니다. 객체 버전을 잠그면 Amazon S3는 해당 객체 버전의 메타데이터에 잠금 정보를 저장합니다. 객체에 보존 기간 또는 법적 보존을 설정하면 요청에 지정된 버전만 보호됩니다. 보존 기간과 법적 보존은 객체의 새로운 버전을 생성하거나 객체에 추가할 마커를 삭제하는 것을 차단하지 않습니다. S3 버전 관리에 대한 자세한 내용은 S3 버전 관리로 여러 버전의 객체 유지 섹션을 참조하세요.

객체 키 이름이 동일한 기존의 보호된 객체가 있는 버킷에 객체를 넣으면 Amazon S3는 해당 객체의 새 버전을 생성합니다. 기존의 보호된 버전의 객체는 보관 구성에 따라 잠긴 상태로 유지됩니다.

S3 객체 잠금 작동 방식

보관 기간

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

개별 객체 버전 또는 버킷의 속성에 명시적으로 보존 기간을 지정하여 버킷의 모든 객체에 자동으로 적용되도록 할 수 있습니다. 객체 버전에 명시적으로 보관 기간을 적용할 경우 객체 버전에 대해 보관 종료일을 지정합니다. Amazon S3는 객체 버전의 메타데이터에 이 날짜를 저장합니다.

또한 버킷 속성에 보존 기간을 설정할 수 있습니다. 버킷에 보존 기간을 설정할 때 버킷에 있는 모든 객체 버전을 보호해야 하는 기간을 일 또는 연 단위로 지정합니다. 객체를 버킷에 배치할 때 Amazon S3는 객체 버전의 생성 타임스탬프에 지정된 기간을 추가하여 객체 버전에 대한 보존 만료 날짜를 계산합니다. 그러면 객체 버전에 해당 보존 기간으로 개별 잠금을 명시적으로 설정한 것처럼 객체 버전이 보호됩니다.

참고

버킷에 명시적인 개별 보존 모드 및 기간이 있는 객체 버전에 PUT 작업을 수행하는 경우 객체 버전의 개별 객체 잠금 설정이 모든 버킷 속성 보존 설정보다 우선합니다.

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

예를 들어 보관 기간이 15~30일인 객체가 있고 보관 기간이 60일인 동일한 이름의 객체를 Amazon S3에 PUT한다고 가정합니다. 이 경우 PUT 요청이 성공하면 Amazon S3에서는 보존 기간이 60일인 새 버전의 객체를 생성합니다. 이전 버전은 원래 보관 기간을 유지하고 15일 후에 삭제할 수 있게 됩니다.

객체 버전에 보존 설정을 적용한 후에 보존 기간을 연장할 수 있습니다. 이렇게 하려면 객체 버전에 대해 현재 구성된 객체 잠금 요청보다 이후에 해당되는 보존 만료 날짜를 지정하여 객체 버전에 대한 새 잠금 요청을 제출하세요. Amazon S3는 기존 보관 기간을 보다 연장된 새 기간으로 대체합니다. 객체 보존 기간을 설정할 권한이 있는 사용자는 객체 버전의 보존 기간을 연장할 수 있습니다. 보존 기간을 설정하려면 s3:PutObjectRetention 권한이 있어야 합니다.

객체 또는 S3 버킷에 보존 기간을 설정할 때는 규정 준수 또는 거버넌스라는 보존 모드 중 하나를 선택해야 합니다.

보존 모드

S3 객체 잠금은 객체에 각기 다른 보호 수준을 적용하는 두 가지 보존 모드를 제공합니다.

  • 규정 준수 모드

  • 거버넌스 모드

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

참고

보존 날짜가 만료되기 전에 규정 준수 모드에서 객체를 삭제하는 유일한 방법은 연결된 AWS 계정을 삭제하는 것입니다.

거버넌스 모드에서 특별한 권한이 없는 한 사용자는 객체 버전을 덮어쓰거나 삭제하거나 잠금 설정을 변경할 수 없습니다. 거버넌스 모드를 사용하면 대부분의 사용자가 객체를 삭제하지 못하도록 보호하지만, 필요에 따라 일부 사용자에게 보존 설정을 변경하거나 객체를 삭제할 수 있는 권한을 부여할 수 있습니다. 규정 준수 모드 보관 기간을 생성하기 전에 거버넌스 모드를 사용하여 보관 기간 설정을 테스트할 수도 있습니다.

거버넌스 모드 보존 설정을 재정의하거나 제거하려면 s3:BypassGovernanceRetention 권한을 갖고 있어야 하며 거버넌스 모드 재정의를 요구하는 요청과 함께 요청 헤더로 x-amz-bypass-governance-retention:true를 명시적으로 포함해야 합니다.

참고

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

객체 잠금을 사용하면 객체 버전에 법적 보존을 적용할 수도 있습니다. 보관 기간과 마찬가지로 법적 보존을 사용하면 객체 버전을 덮어쓰거나 삭제할 수 없습니다. 그러나 법적 보존에는 고정된 기간이 없으며, 제거될 때까지 유효합니다. 법적 보존은 s3:PutObjectLegalHold 권한을 가진 사용자가 자유롭게 배치하고 제거할 수 있습니다.

법적 보존은 보관 기간과 독립적입니다. 객체 버전에 법적 보존을 설정해도 해당 객체 버전의 보관 모드 또는 보관 기간에는 영향을 주지 않습니다.

예를 들어, 객체 버전을 보존 기간으로도 보호하면서 객체 버전에 법적 보존을 적용한다고 가정해 봅시다. 보관 기간이 만료되면 객체의 WORM 보호가 손실되지 않습니다. 법적 보존은 권한 있는 사용자가 명시적으로 법적 보존을 제거할 때까지 객체를 계속 보호합니다. 마찬가지로 객체 버전의 보관 기간이 유효한 상태에서 법적 보존을 제거하면 보관 기간이 만료될 때까지 객체 버전이 보호됩니다.

S3 객체 잠금 사용의 모범 사례

미리 정의된 보존 기간 동안 대부분의 사용자가 객체를 삭제하지 못하도록 보호하는 동시에 특별한 권한이 있는 일부 사용자가 보존 설정을 변경하거나 객체를 삭제할 수 있도록 유연성을 부여하려면 거버넌스 모드를 사용하는 것이 좋습니다.

미리 정의된 보존 기간 동안 AWS 계정의 루트 사용자를 비롯한 어떤 사용자도 객체를 삭제할 수 없게 하려면 규정 준수 모드를 사용하는 것이 좋습니다. 규정 준수 데이터를 저장해야 하는 경우 이 모드를 사용할 수 있습니다.

객체를 변경 불가능한 상태로 유지하려는 기간이 확실하지 않은 경우 법적 보존을 사용할 수 있습니다. 데이터에 외부 감사가 예정되어 있고 감사가 완료될 때까지 객체를 변경할 수 없는 상태로 유지하고 싶기 때문일 수 있습니다. 또는 프로젝트가 완료될 때까지 변경 불가능으로 유지하려는 데이터 세트를 활용하는 진행 중인 프로젝트가 있을 수도 있습니다.

필수 권한

객체 잠금 작업에는 특정 권한이 필요합니다. 시도하려는 정확한 작업에 따라 다음 권한 중 하나가 필요할 수 있습니다.

  • s3:BypassGovernanceRetention

  • s3:GetBucketObjectLockConfiguration

  • s3:GetObjectLegalHold

  • s3:GetObjectRetention

  • s3:PutBucketObjectLockConfiguration

  • s3:PutObjectLegalHold

  • s3:PutObjectRetention

설명이 포함된 Amazon S3 권한의 전체 목록은 서비스 승인 참조에서 Amazon S3에 사용되는 작업, 리소스 및 조건 키를 참조하세요.

S3 리소스 유형별 S3 API 작업 권한에 대한 자세한 내용은 Amazon S3 API 작업에 필요한 권한 섹션을 참조하세요.

권한과 함께 조건을 사용하는 방법에 대한 자세한 내용은 조건 키를 사용한 버킷 정책 예시 단원을 참조하십시오.