Skip to main content
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

S3 REST API를 사용하여 S3 객체 잠금을 구성합니다.

StorageGRID 시스템에서 글로벌 S3 개체 잠금 설정이 활성화된 경우 S3 개체 잠금이 활성화된 버킷을 생성할 수 있습니다. 각 버킷에 대한 기본 보존 기간을 지정하거나 각 개체 버전에 대한 보존 기간을 설정할 수 있습니다.

버킷에 대한 S3 객체 잠금을 활성화하는 방법

StorageGRID 시스템에 대해 글로벌 S3 개체 잠금 설정이 활성화된 경우 각 버킷을 생성할 때 선택적으로 S3 개체 잠금을 활성화할 수 있습니다.

S3 객체 잠금은 버킷을 생성할 때만 활성화할 수 있는 영구 설정입니다. 버킷이 생성된 후에는 S3 객체 잠금을 추가하거나 비활성화할 수 없습니다.

버킷에 대해 S3 객체 잠금을 활성화하려면 다음 방법 중 하나를 사용하세요.

  • 테넌트 관리자를 사용하여 버킷을 생성합니다. 보다 "S3 버킷 생성" .

  • CreateBucket 요청을 사용하여 버킷을 생성합니다. x-amz-bucket-object-lock-enabled 요청 헤더. 보다 "버킷 작업" .

S3 객체 잠금에는 버킷 버전 관리가 필요하며, 이는 버킷이 생성될 때 자동으로 활성화됩니다. 버킷의 버전 관리를 일시 중단할 수 없습니다. 보다 "객체 버전 관리" .

버킷의 기본 보존 설정

버킷에 대해 S3 객체 잠금이 활성화된 경우, 선택적으로 버킷에 대한 기본 보존을 활성화하고 기본 보존 모드와 기본 보존 기간을 지정할 수 있습니다.

기본 보존 모드

  • 준수 모드에서:

    • 해당 객체는 보관 만료일에 도달할 때까지 삭제할 수 없습니다.

    • 객체의 보관 기한은 늘릴 수 있지만 줄일 수는 없습니다.

    • 해당 날짜에 도달하기 전까지는 객체의 보관 기간을 제거할 수 없습니다.

  • 거버넌스 모드에서:

    • 사용자 s3:BypassGovernanceRetention 허가를 사용할 수 있습니다 x-amz-bypass-governance-retention: true 보존 설정을 우회하기 위한 요청 헤더입니다.

    • 이러한 사용자는 보관 기한에 도달하기 전에 개체 버전을 삭제할 수 있습니다.

    • 이러한 사용자는 객체의 보관 기간을 늘리거나 줄이거나 제거할 수 있습니다.

기본 보존 기간

각 버킷에는 년 또는 일 단위로 지정된 기본 보존 기간이 있을 수 있습니다.

버킷의 기본 보존 기간을 설정하는 방법

버킷의 기본 보존 기간을 설정하려면 다음 방법 중 하나를 사용하세요.

PutObjectLockConfiguration

PutObjectLockConfiguration 요청을 사용하면 S3 객체 잠금이 활성화된 버킷의 기본 보존 모드와 기본 보존 기간을 설정하고 수정할 수 있습니다. 이전에 구성된 기본 보존 설정을 제거할 수도 있습니다.

새 개체 버전이 버킷에 수집되면 기본 보존 모드가 적용됩니다. x-amz-object-lock-mode 그리고 x-amz-object-lock-retain-until-date 지정되지 않았습니다. 기본 보존 기간은 보존 기간을 계산하는 데 사용됩니다. x-amz-object-lock-retain-until-date 지정되지 않았습니다.

객체 버전을 수집한 후 기본 보존 기간이 수정되면 객체 버전의 보존 기간은 동일하게 유지되며 새로운 기본 보존 기간을 사용하여 다시 계산되지 않습니다.

당신은 가지고 있어야 합니다 s3:PutBucketObjectLockConfiguration 이 작업을 완료하려면 권한이 필요하거나 계정 루트가 되어야 합니다.

그만큼 Content-MD5 요청 헤더는 PUT 요청에 지정되어야 합니다.

요청 예시

이 예에서는 버킷에 대해 S3 객체 잠금을 활성화하고 기본 보존 모드를 COMPLIANCE로, 기본 보존 기간을 6년으로 설정합니다.

PUT /bucket?object-lock HTTP/1.1
Accept-Encoding: identity
Content-Length: 308
Host: host
Content-MD5: request header
User-Agent: s3sign/1.0.0 requests/2.24.0 python/3.8.2
X-Amz-Date: date
X-Amz-Content-SHA256: authorization-string
Authorization: authorization-string

<ObjectLockConfiguration>
    <ObjectLockEnabled>Enabled</ObjectLockEnabled>
    <Rule>
        <DefaultRetention>
            <Mode>COMPLIANCE</Mode>
            <Years>6</Years>
        </DefaultRetention>
    </Rule>
</ObjectLockConfiguration>

버킷의 기본 보존 기간을 결정하는 방법

버킷에 대해 S3 객체 잠금이 활성화되어 있는지 확인하고 기본 보존 모드와 보존 기간을 확인하려면 다음 방법 중 하나를 사용하세요.

  • 테넌트 관리자에서 버킷을 확인하세요. 보다 "S3 버킷 보기" .

  • GetObjectLockConfiguration 요청을 발행합니다.

GetObjectLockConfiguration

GetObjectLockConfiguration 요청을 사용하면 버킷에 대해 S3 객체 잠금이 활성화되어 있는지 확인하고, 활성화되어 있는 경우 버킷에 대해 기본 보존 모드와 보존 기간이 구성되어 있는지 확인할 수 있습니다.

새 개체 버전이 버킷에 수집되면 기본 보존 모드가 적용됩니다. x-amz-object-lock-mode 지정되지 않았습니다. 기본 보존 기간은 보존 기간을 계산하는 데 사용됩니다. x-amz-object-lock-retain-until-date 지정되지 않았습니다.

당신은 가지고 있어야 합니다 s3:GetBucketObjectLockConfiguration 이 작업을 완료하려면 권한이 필요하거나 계정 루트가 되어야 합니다.

요청 예시

GET /bucket?object-lock HTTP/1.1
Host: host
Accept-Encoding: identity
User-Agent: aws-cli/1.18.106 Python/3.8.2 Linux/4.4.0-18362-Microsoft botocore/1.17.29
x-amz-date: date
x-amz-content-sha256: authorization-string
Authorization: authorization-string

응답 예시

HTTP/1.1 200 OK
x-amz-id-2: iVmcB7OXXJRkRH1FiVq1151/T24gRfpwpuZrEG11Bb9ImOMAAe98oxSpXlknabA0LTvBYJpSIXk=
x-amz-request-id: B34E94CACB2CEF6D
Date: Fri, 04 Sep 2020 22:47:09 GMT
Transfer-Encoding: chunked
Server: AmazonS3

<?xml version="1.0" encoding="UTF-8"?>
<ObjectLockConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <ObjectLockEnabled>Enabled</ObjectLockEnabled>
    <Rule>
        <DefaultRetention>
            <Mode>COMPLIANCE</Mode>
            <Years>6</Years>
        </DefaultRetention>
    </Rule>
</ObjectLockConfiguration>

객체에 대한 보존 설정을 지정하는 방법

S3 객체 잠금이 활성화된 버킷에는 S3 객체 잠금 보존 설정이 있는 객체와 없는 객체를 조합하여 포함할 수 있습니다.

객체 수준 보존 설정은 S3 REST API를 사용하여 지정됩니다. 객체의 보존 설정은 버킷의 기본 보존 설정보다 우선합니다.

각 개체에 대해 다음 설정을 지정할 수 있습니다.

  • 보존 모드: 규정 준수 또는 거버넌스.

  • 보관 기한: StorageGRID 에서 개체 버전을 보관해야 하는 기간을 지정하는 날짜입니다.

    • 준수 모드에서는 보관 기간이 미래로 설정된 경우 객체를 검색할 수는 있지만 수정하거나 삭제할 수는 없습니다. 보관 기한은 늘릴 수 있지만, 이 날짜를 줄이거나 제거할 수는 없습니다.

    • 거버넌스 모드에서는 특별 권한이 있는 사용자가 보관 기간 설정을 무시할 수 있습니다. 보존 기간이 만료되기 전에 개체 버전을 삭제할 수 있습니다. 또한 보관 기한을 늘리거나 줄이거나 심지어 제거할 수도 있습니다.

  • 법적 보존: 객체 버전에 법적 보존을 적용하면 해당 객체가 즉시 잠깁니다. 예를 들어, 조사나 법적 분쟁과 관련된 객체에 대해 법적 보류를 요청해야 할 수도 있습니다. 법적 보존에는 만료일이 없지만, 명시적으로 삭제하기 전까지는 유지됩니다.

    객체에 대한 법적 보존 설정은 보존 모드 및 보존 기간과 무관합니다. 객체 버전이 법적 보존 상태에 있는 경우 누구도 해당 버전을 삭제할 수 없습니다.

버킷에 객체 버전을 추가할 때 S3 객체 잠금 설정을 지정하려면 다음을 실행하세요."PutObject" ,"복사객체" , 또는"CreateMultipartUpload" 요구.

다음을 사용할 수 있습니다.

  • x-amz-object-lock-mode, COMPLIANCE 또는 GOVERNANCE(대소문자 구분)가 될 수 있습니다.

    참고 지정하면 x-amz-object-lock-mode , 또한 지정해야 합니다 x-amz-object-lock-retain-until-date .
  • x-amz-object-lock-retain-until-date

    • retain-until-date 값은 다음 형식이어야 합니다. 2020-08-10T21:46:00Z . 소수점 이하 초도 허용되지만 소수점 이하 3자리만 보존됩니다(밀리초 단위 정밀도). 다른 ISO 8601 형식은 허용되지 않습니다.

    • 보관 기한은 미래로 설정해야 합니다.

  • x-amz-object-lock-legal-hold

    법적 보존이 켜져 있는 경우(대소문자 구분), 해당 객체는 법적 보존 상태로 전환됩니다. 법적 보류가 OFF인 경우 법적 보류가 적용되지 않습니다. 다른 값을 입력하면 400 잘못된 요청(InvalidArgument) 오류가 발생합니다.

다음 요청 헤더를 사용하는 경우 다음 제한 사항을 알아두세요.

  • 그만큼 Content-MD5 요청 헤더가 필요한 경우 x-amz-object-lock-* 요청 헤더가 PutObject 요청에 있습니다. Content-MD5 CopyObject나 CreateMultipartUpload에는 필요하지 않습니다.

  • 버킷에 S3 개체 잠금이 활성화되어 있지 않고 x-amz-object-lock-* 요청 헤더가 존재하는 경우 400 잘못된 요청(InvalidRequest) 오류가 반환됩니다.

  • PutObject 요청은 다음을 사용할 수 있도록 지원합니다. x-amz-storage-class: REDUCED_REDUNDANCY AWS 동작과 일치하도록. 하지만 S3 객체 잠금이 활성화된 버킷에 객체가 수집되는 경우 StorageGRID 항상 이중 커밋 수집을 수행합니다.

  • 이후 GET 또는 HeadObject 버전 응답에는 헤더가 포함됩니다. x-amz-object-lock-mode , x-amz-object-lock-retain-until-date , 그리고 x-amz-object-lock-legal-hold 구성된 경우 및 요청 발신자가 올바른 경우 s3:Get* 권한.

당신은 사용할 수 있습니다 s3:object-lock-remaining-retention-days 정책 조건 키는 개체에 허용되는 최소 및 최대 보존 기간을 제한합니다.

개체의 보존 설정을 업데이트하는 방법

기존 개체 버전에 대한 법적 보존 또는 보존 설정을 업데이트해야 하는 경우 다음 개체 하위 리소스 작업을 수행할 수 있습니다.

  • PutObjectLegalHold

    새로운 법적 보존 값이 ON이면 해당 객체는 법적 보존 상태에 놓이게 됩니다. 법적 보류 값이 OFF이면 법적 보류가 해제됩니다.

  • PutObjectRetention

    • 모드 값은 COMPLIANCE 또는 GOVERNANCE(대소문자 구분)가 될 수 있습니다.

    • retain-until-date 값은 다음 형식이어야 합니다. 2020-08-10T21:46:00Z . 소수점 이하 초도 허용되지만 소수점 이하 3자리만 보존됩니다(밀리초 단위 정밀도). 다른 ISO 8601 형식은 허용되지 않습니다.

    • 객체 버전에 기존 보유 기간이 설정되어 있는 경우 해당 기간을 늘릴 수만 있습니다. 새로운 값은 미래에 있어야 합니다.

GOVERNANCE 모드 사용 방법

가지고 있는 사용자 s3:BypassGovernanceRetention 권한은 GOVERNANCE 모드를 사용하는 개체의 활성 보존 설정을 우회할 수 있습니다. 모든 DELETE 또는 PutObjectRetention 작업에는 다음이 포함되어야 합니다. x-amz-bypass-governance-retention:true 요청 헤더. 이러한 사용자는 다음과 같은 추가 작업을 수행할 수 있습니다.

  • 보존 기간이 만료되기 전에 개체 버전을 삭제하려면 DeleteObject 또는 DeleteObjects 작업을 수행합니다.

    법적 보존 조치가 적용된 객체는 삭제할 수 없습니다. 법적 보존은 해제되어야 합니다.

  • 개체의 보존 기간이 만료되기 전에 개체 버전의 모드를 GOVERNANCE에서 COMPLIANCE로 변경하는 PutObjectRetention 작업을 수행합니다.

    COMPLIANCE에서 GOVERNANCE로 모드를 변경하는 것은 결코 허용되지 않습니다.

  • PutObjectRetention 작업을 수행하여 개체 버전의 보존 기간을 늘리거나 줄이거나 제거합니다.