변경이 불가능한 Blob 데이터에 대한 컨테이너 수준 WORM(Write Once, Read Many) 정책

컨테이너 수준 WORM(Write Once, Read Many) 정책은 컨테이너 수준에서 설정할 수 있는 불변성 정책 형식입니다. Azure Blob Storage의 변경이 불가능한 스토리지에 대해 자세히 알아보려면 WORM(Write Once, Read Many) 상태로 변경이 불가능한 스토리지를 사용하여 비즈니스에 중요한 Blob 데이터 저장을 참조하세요.

가용성

CLW(컨테이너 수준 WORM) 정책은 모든 신규 및 기존 컨테이너에 사용할 수 있습니다. 이러한 정책은 범용 v2, 프리미엄 블록 Blob, 범용 v1(레거시) 및 Blob Storage(레거시) 계정에 대해 지원됩니다.

더 많은 기능을 활용할 수 있도록 범용 v1 계정을 범용 v2로 업그레이드하는 것이 좋습니다. 기존 범용 v1 스토리지 계정 업그레이드에 대한 자세한 내용은 스토리지 계정 업그레이드를 참조하세요.

이 기능은 계층 구조 네임스페이스 계정에 지원됩니다. 계층 구조 네임스페이스가 사용하도록 설정된 경우 Blob이 변경이 불가능한 상태일 때 Blob의 이름을 바꾸거나 Blob을 이동할 수 없습니다. Blob 이름과 디렉터리 구조는 변경이 불가능한 정책이 적용되면 수정할 수 없는 필수적인 컨테이너 수준 데이터를 제공합니다.

이 기능을 사용하도록 설정하는 프로세스는 없습니다. 모든 컨테이너에서 자동으로 사용할 수 있습니다. 신규 또는 기존 컨테이너에 정책을 설정하는 방법에 대해 자세히 알아보려면 컨테이너 수준 WORM 불변성 정책 구성을 참조하세요.

삭제

컨테이너 수준 WORM 정책 집합이 있는 컨테이너를 삭제하려면 먼저 컨테이너를 비워야 합니다. 계층 구조 네임스페이스가 사용하도록 설정된 컨테이너에 정책 집합이 있는 경우 디렉터리를 삭제하려면 디렉터리를 비워야 합니다.

컨테이너 수준 WORM 정책이 있는 계정을 삭제하는 작업 순서를 보여 주는 다이어그램.

시나리오

시나리오 금지된 작업 Blob 보호 컨테이너 보호 계정 보호
컨테이너가 활성 시간 기반 보존 정책을 통해 보호되고/되거나 법적 보존이 적용되고 있습니다. Blob 삭제, Blob 배치1, Blob 메타데이터 설정, 페이지 배치, Blob 속성 설정, Blob 스냅샷 생성, Blob 증분 복사, 블록 추가2 컨테이너의 모든 Blob은 콘텐츠 및 사용자 메타데이터에 대해 변경할 수 없습니다. 컨테이너 수준 WORM 정책이 적용되는 경우 컨테이너 삭제가 실패합니다. 하나 이상의 Blob을 포함하고 있는 컨테이너가 있으면 스토리지 계정 삭제가 실패합니다.
컨테이너 범위가 지정된 만료된 시간 기반 보존 정책을 통해 컨테이너가 보호되고 있으며 법적 보존이 적용되고 있습니다. Blob 배치1, Blob 메타데이터 설정, 페이지 배치, Blob 속성 설정, Blob 스냅샷 생성, Blob 증분 복사, 블록 추가2 삭제 작업이 허용됩니다. 덮어쓰기 작업은 허용되지 않습니다. 정책 잠금 또는 잠금 해제 여부에 관계 없이 하나 이상의 Blob이 컨테이너에 있는 경우 컨테이너를 삭제할 수 없습니다. 시간 기반 보존 정책이 잠긴 컨테이너가 하나 이상 있으면 스토리지 계정 삭제가 실패합니다.
잠금 해제된 정책은 삭제 보호를 제공하지 않습니다.

1 Azure Storage는 Blob 배치 작업에서 새 Blob을 만드는 것을 허용합니다. 변경할 수 없는 컨테이너의 기존 Blob 경로에 대한 후속 덮어쓰기 작업은 허용되지 않습니다.

2블록 추가 작업은 allowProtectedAppendWrites 또는 allowProtectedAppendWritesAll 속성이 사용하도록 설정된 정책에만 허용됩니다.

보호된 추가 Blob 쓰기 허용

추가 Blob은 데이터 블록으로 구성되며 감사 및 로깅 시나리오에 필요한 데이터 추가 작업에 최적화되어 있습니다. 기본적으로 추가 Blob은 Blob의 끝에 새 블록을 추가할 수 있습니다. 불변성에 관계없이 추가 Blob에서 기존 블록을 수정하거나 삭제하는 작업은 기본적으로 허용되지 않습니다. 추가 Blob에 대한 자세한 내용은 추가 Blob 정보를 참조하세요.

allowProtectedAppendWrites 속성 설정을 사용하면 불변성 보호 및 규정 준수를 유지하면서 추가 Blob에 새 블록을 쓸 수 있습니다. 이 설정이 사용하도록 설정되면 추가 Blob을 정책으로 보호되는 컨테이너에 직접 만든 다음, 블록 추가 작업을 통해 새 데이터 블록을 추가 Blob의 끝에 계속 추가할 수 있습니다. 새 블록만 추가할 수 있으며, 기존 블록은 수정하거나 삭제할 수 없습니다. 이 설정을 사용하도록 설정해도 블록 Blob 또는 페이지 Blob의 불변성 동작에 영향을 주지 않습니다.

AllowProtectedAppendWritesAll 속성 설정은 allowProtectedAppendWrites 속성과 동일한 권한을 제공하고 블록 Blob에 새 블록을 쓰는 기능을 추가합니다. Blob Storage API는 애플리케이션이 이를 직접 수행하는 방법을 제공하지 않습니다. 그러나 애플리케이션은 Data Lake Storage Gen2 API에서 사용할 수 있는 추가 및 플러시 방법을 사용하여 이를 수행할 수 있습니다. 또한 이 속성을 사용하면 Azure Data Factory와 같은 Microsoft 애플리케이션에서 내부 API를 사용하여 데이터 블록을 추가할 수 있습니다. 워크로드가 이러한 도구에 의존하는 경우 이 속성을 사용하여 해당 도구가 Blob에 데이터를 추가하려고 할 때 나타날 수 있는 오류를 방지할 수 있습니다.

추가 Blob은 유효 보존 기간 동안 변경할 수 없는 상태로 유지됩니다. 추가 Blob의 초기 생성 이후에 새 데이터를 추가할 수 있으므로 보존 기간이 결정되는 방식에 약간의 차이가 있습니다. 유효 보존은 추가 Blob의 마지막 수정 시간과 사용자가 지정한 보존 간격 간의 차이입니다. 마찬가지로 보존 간격이 늘어나면 변경이 불가능한 스토리지는 사용자가 지정한 보존 간격의 가장 최근 값을 사용하여 유효 보존 기간을 계산합니다.

예를 들어 사용자가 allowProtectedAppendWrites 속성이 사용하도록 설정되고 보존 간격이 90일인 시간 기반 보존 정책을 만든다고 가정합니다. 오늘 logblob1 추가 Blob이 컨테이너에 만들어지고, 새 로그가 다음 10일 동안 추가 Blob에 계속 추가되므로 logblob1의 유효 보존 기간은 오늘부터 100일(마지막으로 추가한 시간 + 90일)입니다.

잠금 해제된 시간 기반 보존 정책을 통해 allowProtectedAppendWritesAllowProtectedAppendWritesAll 속성 설정을 언제든지 사용 및 사용하지 않도록 설정할 수 있습니다. 시간 기반 보존 정책이 잠기면 allowProtectedAppendWritesAllowProtectedAppendWritesAll 속성 설정을 변경할 수 없습니다.

제한

  • 스토리지 계정의 경우 변경이 불가능한 정책(시간 기반 보존 또는 법적 보존)이 포함된 최대 컨테이너 수는 10,000개입니다.

  • 컨테이너의 경우 동시에 최대 법적 보존 태그 수는 10개입니다.

  • 법적 보존 태그의 최소 길이는 세 개의 영숫자입니다. 최대 길이는 23자의 영숫자입니다.

  • 컨테이너의 경우 정책 기간 동안 최대 10개의 법적 보존 정책 감사 로그가 보존됩니다.

다음 단계