Azure Blob Storage용 변경이 불가능한 스토리지를 사용하면 사용자가 중요 비즈니스용 데이터를 WORM(Write Once, Read Many) 상태로 저장할 수 있습니다. WORM 상태인 데이터는 사용자가 지정한 시간 동안 수정하거나 삭제할 수 없습니다. Blob 데이터에 대한 불변성 정책을 구성하면 데이터를 덮어쓰거나 삭제하지 못하도록 방지할 수 있습니다. 불변성 정책에는 시간 기반 보존 정책과 법적 보존이 포함됩니다. Blob Storage 불변성 정책에 대한 자세한 내용은 비즈니스에 중요한 BLOB 데이터를 변경이 불가능한 스토리지에 저장을 참조하세요.
불변성 정책의 범위는 개별 Blob 버전 또는 컨테이너로 지정할 수 있습니다. 이 문서에서는 컨테이너 수준 불변성 정책을 구성하는 방법을 설명합니다. 버전 수준 불변성 정책을 구성하는 방법은 Blob 버전 수준 불변성 정책 구성을 참조하세요.
참고 항목
NFS(네트워크 파일 시스템) 3.0 프로토콜 또는 SFTP(SSH 파일 전송 프로토콜)를 사용하도록 설정된 계정에서는 불변성 정책이 지원되지 않습니다.
컨테이너의 시간 기반 보존 정책을 구성하려면 Azure Portal, PowerShell 또는 Azure CLI를 사용합니다. 컨테이너 수준 보존 정책은 1일~146,000일 사이에서 구성할 수 있습니다.
Azure Portal에서 컨테이너의 시간 기반 보존 정책을 구성하려면 다음 단계를 수행합니다.
원하는 컨테이너로 이동합니다.
오른쪽에서 자세히 단추를 선택한 다음, 액세스 정책을 선택합니다.
변경이 불가능한 Blob Storage에서 정책 추가를 선택합니다.
정책 종류 필드에서 시간 기반 보존을 선택하고 보존 기간(일)을 지정합니다.
컨테이너 범위를 사용하는 정책을 만들려면 버전 수준 불변성 사용 확인란을 선택하지 마세요.
보호된 추가 쓰기 허용 여부를 선택합니다.
추가 Blob 옵션을 사용하면 워크로드에서 블록 추가 작업을 사용하여 추가 Blob의 끝에 새 데이터 블록을 추가할 수 있습니다.
블록 및 추가 Blob 옵션은 추가 Blob 옵션과 동일한 권한을 제공하지만 블록 Blob에 새 블록을 쓰는 기능을 추가합니다. Blob Storage API는 애플리케이션이 이를 직접 수행하는 방법을 제공하지 않습니다. 그러나 애플리케이션은 Data Lake Storage API에서 사용할 수 있는 추가 및 플러시 메서드를 사용하여 이 작업을 수행할 수 있습니다. 또한 일부 Microsoft 애플리케이션은 내부 API를 사용하여 블록 Blob을 만든 다음 추가합니다. 워크로드가 이러한 도구에 의존하는 경우 이 속성을 사용하여 해당 도구가 블록 Blob에 블록을 추가하려고 할 때 나타날 수 있는 오류를 방지할 수 있습니다.
이러한 옵션에 대한 자세한 내용은 보호된 추가 Blob 쓰기 허용을 참조하세요.
불변성 정책을 구성한 후에는 범위가 컨테이너로 지정되는 것을 볼 수 있습니다.
PowerShell을 사용하여 컨테이너의 시간 기반 보존 정책을 구성하려면 Set-AzRmStorageContainerImmutabilityPolicy 명령을 호출하고 보존 간격(일)을 입력합니다. 꺾쇠 괄호로 묶인 자리 표시자 값을 사용자 고유의 값으로 바꿔야 합니다.
Set-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName <resource-group> `
-StorageAccountName <storage-account> `
-ContainerName <container> `
-ImmutabilityPeriod 10
보호된 추가 쓰기를 허용하려면 -AllowProtectedAppendWrite
또는 -AllowProtectedAppendWriteAll
매개 변수를 true
로 설정합니다.
AllowProtectedAppendWrite 옵션을 사용하면 워크로드에서 블록 추가 작업을 사용하여 추가 Blob 끝에 새 데이터 블록을 추가할 수 있습니다.
AllowProtectedAppendWriteAll 옵션은 AllowProtectedAppendWrite 옵션과 동일한 권한을 제공하지만 블록 Blob에 새 블록을 쓰는 기능을 추가합니다. Blob Storage API는 애플리케이션이 이를 직접 수행하는 방법을 제공하지 않습니다. 그러나 애플리케이션은 Data Lake Storage API에서 사용할 수 있는 추가 및 플러시 메서드를 사용하여 이 작업을 수행할 수 있습니다. 또한 일부 Microsoft 애플리케이션은 내부 API를 사용하여 블록 Blob을 만든 다음 추가합니다. 워크로드가 이러한 도구에 의존하는 경우 이 속성을 사용하여 해당 도구가 블록 Blob에 블록을 추가하려고 할 때 나타날 수 있는 오류를 방지할 수 있습니다.
이러한 옵션에 대한 자세한 내용은 보호된 추가 Blob 쓰기 허용을 참조하세요.
Azure CLI를 사용하여 컨테이너의 시간 기반 보존 정책을 구성하려면 az storage container immutability-policy create 명령을 호출하고 보존 간격(일)을 입력합니다. 꺾쇠 괄호로 묶인 자리 표시자 값을 사용자 고유의 값으로 바꿔야 합니다.
az storage container immutability-policy create \
--resource-group <resource-group> \
--account-name <storage-account> \
--container-name <container> \
--period 10
보호된 추가 쓰기를 허용하려면 --allow-protected-append-writes
또는 --allow-protected-append-writes-all
매개 변수를 true
로 설정합니다.
--allow-protected-append-writes 옵션을 사용하면 워크로드에서 블록 추가 작업을 사용하여 추가 Blob 끝에 새 데이터 블록을 추가할 수 있습니다.
--allow-protected-append-writes-all 옵션은 --allow-protected-append-writes 옵션과 동일한 권한을 제공하지만 블록 Blob에 새 블록을 쓰는 기능을 추가합니다. Blob Storage API는 애플리케이션이 이를 직접 수행하는 방법을 제공하지 않습니다. 그러나 애플리케이션은 Data Lake Storage API에서 사용할 수 있는 추가 및 플러시 메서드를 사용하여 이 작업을 수행할 수 있습니다. 또한 일부 Microsoft 애플리케이션은 내부 API를 사용하여 블록 Blob을 만든 다음 추가합니다. 워크로드가 이러한 도구에 의존하는 경우 이 속성을 사용하여 해당 도구가 블록 Blob에 블록을 추가하려고 할 때 나타날 수 있는 오류를 방지할 수 있습니다.
이러한 옵션에 대한 자세한 내용은 보호된 추가 Blob 쓰기 허용을 참조하세요.
잠금 해제된 보존 정책 수정
잠금 해제된 시간 기반 보존 정책을 수정하여 보존 간격을 줄이거나 늘리고, 컨테이너의 추가 Blob에 대한 쓰기를 추가로 허용할 수 있습니다. 잠금 해제된 정책을 삭제할 수도 있습니다.
Azure Portal에서 잠금 해제된 시간 기반 보존 정책을 수정하려면 다음 단계를 수행합니다.
원하는 컨테이너로 이동합니다.
자세히 단추를 선택하고 액세스 정책을 선택합니다.
변경이 불가능한 Blob 버전 섹션 아래에서 잠금 해제된 기존 정책을 찾습니다. 자세히 단추를 선택한 다음, 메뉴에서 편집을 선택합니다.
정책의 새 보존 간격을 입력합니다. 보호된 추가 허용을 선택하여 보호된 추가 Blob에 쓰기를 허용할 수도 있습니다.
잠금 해제된 정책을 삭제하려면 자세히 단추를 선택하고 삭제를 선택합니다.
참고 항목
버전 수준 불변성 사용 확인란을 선택하여 버전 수준 불변성 정책을 사용하도록 설정할 수 있습니다. 버전 수준 불변성 정책 사용에 대한 자세한 내용은 Blob 버전 수준 불변성 정책 구성을 참조하세요.
잠금 해제된 정책을 수정하려면 먼저 Get-AzRmStorageContainerImmutabilityPolicy 명령을 호출하여 정책을 검색합니다. 다음으로, AzRmStorageContainerImmutabilityPolicy 명령을 호출하여 정책을 업데이트합니다. 새 보존 간격(일) 및 -ExtendPolicy
매개 변수를 포함합니다. 꺾쇠 괄호로 묶인 자리 표시자 값을 사용자 고유의 값으로 바꿔야 합니다.
$policy = Get-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName <resource-group> `
-AccountName <storage-account> `
-ContainerName <container>
Set-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName <resource-group> `
-StorageAccountName <storage-account> `
-ContainerName <container> `
-ImmutabilityPeriod 21 `
-AllowProtectedAppendWriteAll true `
-Etag $policy.Etag `
-ExtendPolicy
잠금 해제된 정책을 삭제하려면 Remove-AzRmStorageContainerImmutabilityPolicy 명령을 호출합니다.
Remove-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName <resource-group> `
-AccountName <storage-account> `
-ContainerName <container>
-Etag $policy.Etag
Azure CLI를 사용하여 잠금 해제된 시간 기반 보존 정책을 수정하려면 az storage container immutability-policy extend 명령을 호출하고 새 보존 간격(일)을 입력합니다. 꺾쇠 괄호로 묶인 자리 표시자 값을 사용자 고유의 값으로 바꿔야 합니다.
$etag=$(az storage container immutability-policy show \
--account-name <storage-account> \
--container-name <container> \
--query etag \
--output tsv)
az storage container immutability-policy extend \
--resource-group <resource-group> \
--account-name <storage-account> \
--container-name <container> \
--period 21 \
--if-match $etag \
--allow-protected-append-writes-all true
잠금 해제된 정책을 삭제하려면 az storage container immutability-policy delete 명령을 호출합니다.
시간 기반 보존 정책 잠금
시간 기반 보존 정책 테스트가 완료되면 해당 정책을 잠글 수 있습니다. 잠긴 정책은 SEC 17a-4(f) 및 기타 규정을 준수합니다. 잠긴 정책의 보존 간격을 최대 5배까지 늘릴 수 있지만, 줄일 수는 없습니다.
정책이 잠기면 해당 정책을 삭제할 수 없습니다. 그러나 보존 간격이 만료되면 Blob을 삭제할 수 있습니다.
Azure Portal을 사용하여 정책을 잠그려면 다음 단계를 수행합니다.
- 잠긴 정책이 있는 컨테이너로 이동합니다.
- 변경이 불가능한 Blob 버전 섹션에서 잠금이 해제된 기존 정책을 찾습니다. 자세히 단추를 선택한 다음, 메뉴에서 잠금 정책을 선택합니다.
- 정책을 잠글 것인지 확인합니다.
PowerShell을 사용하여 정책을 잠그려면 먼저 Get-AzRmStorageContainerImmutabilityPolicy 명령을 호출하여 정책의 ETag를 검색합니다. 그런 다음, Lock-AzRmStorageContainerImmutabilityPolicy 명령을 호출하고 ETag 값을 전달하여 정책을 잠급니다. 꺾쇠 괄호로 묶인 자리 표시자 값을 사용자 고유의 값으로 바꿔야 합니다.
$policy = Get-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName <resource-group> `
-AccountName <storage-account> `
-ContainerName <container>
Lock-AzRmStorageContainerImmutabilityPolicy -ResourceGroupName <resource-group> `
-AccountName <storage-account> `
-ContainerName <container> `
-Etag $policy.Etag
Azure CLI를 사용하여 정책을 잠그려면 먼저 az storage container immutability-policy show 명령을 호출하여 정책의 ETag를 검색합니다. 그런 다음, az storage container immutability-policy lock 명령을 호출하고 ETag 값을 전달하여 정책을 잠급니다. 꺾쇠 괄호로 묶인 자리 표시자 값을 사용자 고유의 값으로 바꿔야 합니다.
$etag=$(az storage container immutability-policy show \
--account-name <storage-account> \
--container-name <container> \
--query etag \
--output tsv)
az storage container immutability-policy lock \
--resource-group <resource-group> \
--account-name <storage-account> \
--container-name <container> \
--if-match $etag
법적 보존이 명시적으로 취소될 때까지 해당 법적 보존에서 변경이 불가능한 데이터를 저장합니다. 법적 보존 정책에 대한 자세한 내용은 변경이 불가능한 Blob 데이터에 대한 법적 보존을 참조하세요.
Azure Portal을 사용하여 컨테이너의 법적 보존을 구성하려면 다음 단계를 수행합니다.
원하는 컨테이너로 이동합니다.
자세히 단추를 선택하고 액세스 정책을 선택합니다.
변경이 불가능한 Blob 버전 섹션 아래에서 정책 추가를 선택합니다.
정책 형식으로 법적 보존을 선택합니다.
하나 이상의 법적 보존 태그를 추가합니다.
보호된 추가 쓰기 허용 여부를 선택한 다음 저장을 선택합니다.
추가 Blob 옵션을 사용하면 워크로드에서 블록 추가 작업을 사용하여 추가 Blob의 끝에 새 데이터 블록을 추가할 수 있습니다.
이 설정은 또한 새 블록을 블록 Blob에 쓰는 기능을 추가합니다. Blob Storage API는 애플리케이션이 이를 직접 수행하는 방법을 제공하지 않습니다. 그러나 애플리케이션은 Data Lake Storage API에서 사용할 수 있는 추가 및 플러시 메서드를 사용하여 이 작업을 수행할 수 있습니다. 또한 이 속성을 사용하면 Azure Data Factory와 같은 Microsoft 애플리케이션에서 내부 API를 사용하여 데이터 블록을 추가할 수 있습니다. 워크로드가 이러한 도구에 의존하는 경우 이 속성을 사용하여 해당 도구가 Blob에 데이터를 추가하려고 할 때 나타날 수 있는 오류를 방지할 수 있습니다.
이러한 옵션에 대한 자세한 내용은 보호된 추가 Blob 쓰기 허용을 참조하세요.
불변성 정책을 구성한 후에는 범위가 컨테이너로 지정되는 것을 볼 수 있습니다.
다음 이미지는 시간 기반 보존 정책과 법적 보존이 모두 구성된 컨테이너를 보여줍니다.
법적 보존을 지우려면 액세스 정책 대화 상자로 이동하여 정책의 바로 가기 메뉴에서 편집을 선택합니다. 그런 다음 정책에 대한 모든 태그를 삭제하여 보존을 지웁니다.
PowerShell을 사용하여 컨테이너의 법적 보존을 구성하려면 Add-AzRmStorageContainerLegalHold 명령을 호출합니다. 꺾쇠 괄호로 묶인 자리 표시자 값을 사용자 고유의 값으로 바꿔야 합니다.
Add-AzRmStorageContainerLegalHold -ResourceGroupName <resource-group> `
-StorageAccountName <storage-account> `
-Name <container> `
-Tag <tag1>,<tag2>,...`
-AllowProtectedAppendWriteAll true
법적 보존을 취소하려면 Remove-AzRmStorageContainerLegalHold 명령을 호출합니다.
Remove-AzRmStorageContainerLegalHold -ResourceGroupName <resource-group> `
-StorageAccountName <storage-account> `
-Name <container> `
-Tag <tag1>,<tag2>,...
PowerShell을 사용하여 컨테이너의 법적 보존을 구성하려면 az storage container legal-hold set 명령을 호출합니다. 꺾쇠 괄호로 묶인 자리 표시자 값을 사용자 고유의 값으로 바꿔야 합니다.
az storage container legal-hold set \
--tags tag1 tag2 \
--container-name <container> \
--account-name <storage-account> \
--resource-group <resource-group> \
--allow-protected-append-writes-all true
법적 보존을 취소하려면 az storage container legal-hold clear 명령을 호출합니다.
az storage container legal-hold clear \
--tags tag1 tag2 \
--container-name <container> \
--account-name <storage-account> \
--resource-group <resource-group> \
다음 단계