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

S3 REST API를 사용하여 StorageGRID S3 Object Lock을 구성합니다

StorageGRID 시스템에서 전역 S3 객체 잠금 설정이 활성화된 경우, S3 객체 잠금이 활성화된 버킷을 생성할 수 있습니다. 각 버킷에 대한 기본 보존 기간 또는 각 객체 버전에 대한 보존 기간 설정을 지정할 수 있습니다.

버킷에 S3 Object Lock을 활성화하는 방법

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

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

버킷에 S3 Object Lock을 활성화하려면 다음 방법 중 하나를 사용하십시오.

  • 테넌트 관리자를 사용하여 버킷을 생성합니다. "S3 버킷 생성"을 참조하십시오.

  • CreateBucket 요청과 x-amz-bucket-object-lock-enabled 요청 헤더를 사용하여 버킷을 생성합니다. "버킷에 대한 작업"을 참조하십시오.

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

버킷의 기본 보존 설정

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

기본 보존 모드

  • 규정 준수 모드에서:

    • 해당 객체는 지정된 보존 기간이 만료될 때까지 삭제할 수 없습니다.

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

    • 해당 날짜에 도달할 때까지 객체의 보존 기한을 제거할 수 없습니다.

  • 거버넌스 모드에서:

    • 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 권한이 있거나 루트 계정이어야 합니다.

The Content-MD5 요청 헤더는 PUT 요청에 반드시 지정해야 합니다.

요청 예시

이 예제는 버킷에 대해 S3 Object Lock을 활성화하고 기본 보존 모드를 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를 사용하여 지정합니다. 객체에 대한 보존 설정은 버킷의 기본 보존 설정을 재정의합니다.

각 객체에 대해 다음과 같은 설정을 지정할 수 있습니다.

  • 보존 모드: COMPLIANCE 또는 GOVERNANCE 중 하나.

  • 보존 기한: 개체 버전을 StorageGRID에서 얼마나 오래 보존해야 하는지를 지정하는 날짜입니다.

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

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

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

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

버킷에 객체 버전을 추가할 때 S3 Object Lock 설정을 지정하려면 "PutObject", "CopyObject", 또는 "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

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

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

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

    법적 보류(Legal Hold)가 켜짐(대소문자 구분)인 경우 해당 객체는 법적 보류 상태가 됩니다. 법적 보류가 꺼짐(Off)인 경우 법적 보류가 적용되지 않습니다. 그 외의 값은 400 Bad Request(InvalidArgument) 오류를 발생시킵니다.

이러한 요청 헤더를 사용하는 경우 다음 제한 사항에 유의하십시오.

  • Content-MD5 요청 헤더는 PutObject 요청에 x-amz-object-lock-* 요청 헤더가 있는 경우 필수입니다. `Content-MD5`은 CopyObject 또는 CreateMultipartUpload에는 필요하지 않습니다.

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

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

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

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

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

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

  • PutObjectLegalHold

    새로운 법적 보류 값이 ON으로 설정되면 해당 개체는 법적 보류 상태가 됩니다. 법적 보류 값이 OFF로 설정되면 법적 보류가 해제됩니다.

  • PutObjectRetention

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

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

    • 객체 버전에 기존 보존 날짜가 있는 경우 해당 날짜를 늘릴 수만 있습니다. 새 값은 미래 날짜여야 합니다.

거버넌스 모드 사용 방법

`s3:BypassGovernanceRetention`권한이 있는 사용자는 GOVERNANCE 모드를 사용하는 객체의 활성 보존 설정을 무시할 수 있습니다. 모든 DELETE 또는 PutObjectRetention 작업에는  `x-amz-bypass-governance-retention:true`요청 헤더가 포함되어야 합니다. 이러한 사용자는 다음과 같은 추가 작업을 수행할 수 있습니다.
  • DeleteObject 또는 DeleteObjects 작업을 수행하여 보존 기간이 경과하기 전에 개체 버전을 삭제합니다.

    법적 보존 조치가 적용된 개체는 삭제할 수 없습니다. 법적 보존 조치를 해제해야 합니다.

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

    규정 준수 모드에서 거버넌스 모드로 변경하는 것은 절대 허용되지 않습니다.

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