메뉴
Amazon Simple Storage Service
개발자 안내서 (API Version 2006-03-01)

버전 관리 사용

버전 관리는 동일 버킷 내에 여러 개의 객체 변형을 보유하는 것을 의미합니다. 버전 관리를 사용하면 Amazon S3 버킷에 저장된 모든 버전의 모든 객체를 보존, 검색 및 복원할 수 있습니다. 또한 의도치 않은 사용자 작업 및 애플리케이션 장애로부터 쉽게 복구할 수 있습니다.

예를 들어 photo.gif(버전 111111) 및 photo.gif (버전 121212)와 같이 하나의 버킷에서 키는 동일하지만 버전 ID가 다른 두 개의 객체를 보유할 수 있습니다.

버전 관리를 사용하는 버킷을 통해 실수로 삭제되거나 덮어쓴 객체를 복구할 수 있습니다. 예:

  • 객체를 영구적으로 제거하는 대신 삭제하는 경우, Amazon S3에서는 삭제 마커를 삽입하고 이는 현재 객체 버전이 됩니다. 따라서 언제든지 이전 버전을 복원할 수 있습니다. 자세한 내용은 객체 버전 삭제 단원을 참조하십시오.

  • 객체를 덮어쓴 경우 버킷에 새 객체 버전이 생깁니다. 따라서 언제든지 이전 버전을 복원할 수 있습니다.

중요

버전이 지정되지 않은 버킷에 객체 만료 수명 주기 정책이 있고 버전 관리를 사용할 때 같은 영구 삭제 행동을 유지하고자 하는 경우에는 비 최신 버전의 만료 정책을 추가해야 합니다. 비 최신 버전의 만료 수명 주기 정책은 버전 관리를 사용하는 버킷에서 비 최신 객체 버전의 삭제를 관리합니다. (버전 관리가 활성화된 버킷은 하나의 현재 객체 버전과 0개 이상의 최신이 아닌 객체 버전을 유지합니다.) 자세한 내용은 Amazon Simple Storage Service 콘솔 사용 설명서에서 버전 관리를 사용하는 버킷의 수명 주기 구성을 참조하십시오.

버킷은 버전 관리 미사용(기본값), 버전 관리 활성화 또는 버전 관리 일시 중지의 세 가지 상태 중 하나가 될 수 있습니다.

중요

버킷의 버전 관리를 활성화한 다음에는 버전 관리 미사용 상태로 돌아갈 수 없습니다. 그러나 해당 버킷에서 버전 관리를 일시 중지할 수는 있습니다.

버전 관리 상태는 해당 버킷의 전체 객체에 적용되며 일부에만 적용할 수는 없습니다. 처음에 버킷의 버전 관리를 활성화하면 그 이후로는 이 버킷 내의 객체는 항상 버전 관리를 사용하게 되며 고유한 버전 ID가 부여됩니다. 다음을 참조하십시오.

  • 버전 관리 상태로 설정하기 전에 버킷에 저장된 객체의 버전 ID는 null이 됩니다. 버전 관리를 활성화할 때 버킷의 기존 객체는 변경되지 않습니다. 이후 요청에서 Amazon S3가 객체를 처리하는 방법만 변경됩니다. 자세한 내용은 버전 관리를 사용하는 버킷의 객체 관리 단원을 참조하십시오.

  • 버킷 소유자(또는 적절한 권한을 가진 사용자)는 버전 관리를 일시 중지하여 객체 버전 발생을 중단할 수 있습니다. 버전 관리를 일시 중지할 때 버킷의 기존 객체는 변경되지 않습니다. 이후 요청에서 Amazon S3가 객체를 처리하는 방법만 변경됩니다. 자세한 내용은 버전 관리가 일시 중지된 버킷의 객체 관리 단원을 참조하십시오.

버킷의 버전 관리를 구성하는 방법

다음 방법 중 하나를 사용하여 버킷 버전 관리를 구성할 수 있습니다.

  • Amazon S3 콘솔을 사용하여 버전 관리를 구성합니다.

  • AWS SDK를 사용하여 프로그래밍 방식으로 버전 관리를 구성합니다.

    콘솔 및 SDK 모두 Amazon S3에서 버전 관리 기능을 관리하기 위해 제공하는 REST API를 호출합니다.

    참고

    필요한 경우 코드에서 직접 Amazon S3 REST API를 호출하게 할 수도 있습니다. 하지만 이 방법은 요청 인증을 위한 코드를 작성해야 하므로 번거로울 수 있습니다.

    생성한 각 버킷에는 버전 관리 하위 리소스가 연결되어 있습니다(버킷 구성 옵션 참조). 기본적으로 버킷은 버전 관리 미사용 상태이며, 따라서 버전 관리 하위 리소스는 빈 버전 관리 구성을 저장합니다.

    Copy
    <VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> </VersioningConfiguration>

    버전 관리를 활성화하려면 Amazon S3에 상태가 포함된 버전 관리 구성을 사용하여 요청을 보냅니다.

    Copy
    <VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Status>Enabled</Status> </VersioningConfiguration>

    버전 관리를 일시 중지하려면 상태 값을 Suspended로 설정합니다.

버킷 소유자, 버킷을 생성한 AWS 계정(루트 계정), 인증된 사용자는 버킷의 버전 관리 상태를 구성할 수 있습니다. 권한에 대한 자세한 내용은 Amazon S3 리소스에 대한 액세스 권한 관리 단원을 참조하십시오.

버전 관리 구성의 예는 버킷 버전 관리 활성화의 예제 단원을 참조하십시오.

MFA Delete

선택적으로 MFA(Multi-Factor Authentication) Delete를 활성화하도록 버킷을 구성하여 다른 보안 계층을 추가할 수 있습니다. 이 경우, 다음 작업 중 하나에 대한 추가 인증이 필요합니다.

  • 버킷의 버전 관리 상태 변경

  • 객체 버전 영구 삭제

MFA Delete는 다음 두 가지 인증 유형이 모두 필요합니다.

  • 보안 자격 증명

  • 승인된 인증 디바이스에 표시된 유효한 일련 번호, 공백, 6자리 코드 연결

MFA Delete는 이러한 추가된 보안을 보안 자격 증명이 손상된 경우 등에 제공합니다.

MFA Delete를 활성화 또는 비활성화하려면 버킷에 대한 버전 관리를 구성하는 데 사용한 것과 동일한 API를 사용합니다. Amazon S3에서는 버킷의 버전 관리 상태를 저장하는 동일한 versioning 하위 리소스에 MFA delete 구성을 저장합니다.

Copy
<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Status>VersioningState</Status> <MfaDelete>MfaDeleteState</MfaDelete> </VersioningConfiguration>

MFA Delete를 사용하려면 하드웨어 또는 가상 MFA 디바이스 중에 하나를 사용하여 인증 코드를 생성할 수 있습니다. 다음은 생성된 인증 코드가 하드웨어 디바이스에 표시된 것을 보여 주는 예제입니다.

참고

MFA Delete 및 MFA 보호 API 액세스는 서로 다른 시나리오에 대한 보호를 제공하기 위해 마련된 기능입니다. 버킷의 데이터가 실수로 삭제될 수 없도록 하려면 버킷에 MFA Delete를 구성합니다. MFA 보호 API 액세스는 민감한 Amazon S3 리소스에 액세스할 때 다른 인증 요소(MFA 코드)를 적용하기 위해 사용됩니다. 이러한 Amazon S3 리소스에 대한 모든 작업은 MFA를 사용하여 생성한 임시 자격 증명으로 수행되도록 요구할 수 있습니다. 문제 해결 예는 MFA 인증이 필요한 버킷 정책 추가 단원을 참조하십시오.

인증 디바이스를 구입하고 활성화하는 방법에 대한 자세한 내용은 https://aws.amazon.com/iam/details/mfa/ 단원을 참조하십시오.

참고

버킷 소유자, 버킷을 생성한 AWS 계정(루트 계정), 모든 인증된 IAM 사용자는 버전 관리를 활성화할 수 있지만, 버킷 소유자(루트 계정)만 MFA Delete를 활성화할 수 있습니다.

자세한 내용은 다음 주제를 참조하십시오.