Azure Storage Blob 인벤토리 보고서 사용
이 문서의 내용
Azure Storage Blob 인벤토리 기능은 스토리지 계정 내의 컨테이너, Blob, 스냅샷 및 Blob 버전의 개요를 제공합니다. 인벤토리 보고서를 사용하여 전체 데이터 크기, 사용 기간, 암호화 상태, 불변성 정책, 법적 보류 등의 다양한 Blob 및 컨테이너 특성을 이해할 수 있습니다. 이 보고서는 비즈니스 및 규정 준수 요구 사항에 대한 데이터 개요를 제공합니다.
Blob 인벤토리 보고서에 대해 자세히 알아보려면 Azure Storage Blob 인벤토리 를 참조하세요.
스토리지 계정에 하나 이상의 규칙이 있는 정책을 추가하여 Blob 인벤토리 보고서를 사용합니다. Azure Portal 을 사용하여 정책을 추가, 편집 또는 제거합니다.
인벤토리 보고서 사용
Azure Portal 에 로그인하여 시작합니다.
스토리지 계정을 찾아 계정 개요를 표시합니다.
데이터 관리 에서 Blob 인벤토리 를 선택합니다.
첫 번째 인벤토리 규칙 추가 를 선택합니다.
규칙 추가 페이지가 나타납니다.
규칙 추가 페이지에서 새 규칙의 이름을 지정합니다.
인벤토리 보고서를 저장할 컨테이너를 선택합니다.
인벤토리에 대한 개체 유형 에서 Blob 또는 컨테이너에 대해 보고서를 만들지 여부를 선택합니다.
Blob 을 선택한 경우 Blob 하위 유형 에서 보고서에 포함할 Blob의 유형을 선택하고, 인벤토리 보고서에 Blob 버전 및/또는 스냅샷을 포함할지 여부를 선택합니다.
참고 항목
Blob 버전을 포함하는 옵션은 계층 구조 네임스페이스 기능이 사용하도록 설정되지 않은 계정에만 나타납니다.
해당하는 옵션을 사용하는 새 규칙을 저장하려면 계정에서 버전 및 스냅샷을 사용하도록 설정해야 합니다.
보고서에 포함할 필드 및 보고서의 형식을 선택합니다.
보고서를 생성할 빈도를 선택합니다.
필요에 따라 인벤토리 보고서의 필터 Blob에 접두사 일치를 추가합니다.
저장 을 선택합니다.
Azure PowerShell 모듈을 사용하여 정책을 추가, 편집 또는 제거할 수 있습니다.
Windows PowerShell 명령 창을 엽니다.
최신 Azure PowerShell 모듈이 있는지 확인합니다. Azure PowerShell 모듈 설치 를 참조하세요.
Connect-AzAccount
명령을 사용하여 Azure 구독에 로그인하고 화면의 지시를 따릅니다.
Connect-AzAccount
ID가 둘 이상의 구독과 연결되어 있으면 활성 구독을 설정합니다.
$context = Get-AzSubscription -SubscriptionId <subscription-id>
Set-AzContext $context
<subscription-id>
자리 표시자 값을 구독의 ID로 바꿉니다.
사용하려는 스토리지 계정을 정의하는 스토리지 계정 컨텍스트를 가져옵니다.
$storageAccount = Get-AzStorageAccount -ResourceGroupName "<resource-group-name>" -AccountName "<storage-account-name>"
$ctx = $storageAccount.Context
New-AzStorageBlobInventoryPolicyRule 명령을 사용하여 인벤토리 규칙을 만듭니다. 각 규칙에는 보고서 필드가 나열됩니다. 보고서 필드의 전체 목록은 Azure Storage Blob 인벤토리 를 참조하세요.
$containerName = "my-container"
$rule1 = New-AzStorageBlobInventoryPolicyRule -Name Test1 -Destination $containerName -Disabled -Format Csv -Schedule Daily -PrefixMatch con1,con2 `
-ContainerSchemaField Name,Metadata,PublicAccess,Last-modified,LeaseStatus,LeaseState,LeaseDuration,HasImmutabilityPolicy,HasLegalHold
$rule2 = New-AzStorageBlobInventoryPolicyRule -Name test2 -Destination $containerName -Format Parquet -Schedule Weekly -BlobType blockBlob,appendBlob -PrefixMatch aaa,bbb `
-BlobSchemaField name,Last-Modified,Metadata,LastAccessTime
$rule3 = New-AzStorageBlobInventoryPolicyRule -Name Test3 -Destination $containerName -Format Parquet -Schedule Weekly -IncludeBlobVersion -IncludeSnapshot -BlobType blockBlob,appendBlob -PrefixMatch aaa,bbb `
-BlobSchemaField name,Creation-Time,Last-Modified,Content-Length,Content-MD5,BlobType,AccessTier,AccessTierChangeTime,Expiry-Time,hdi_isfolder,Owner,Group,Permissions,Acl,Metadata,LastAccessTime
$rule4 = New-AzStorageBlobInventoryPolicyRule -Name test4 -Destination $containerName -Format Csv -Schedule Weekly -BlobType blockBlob -BlobSchemaField Name,BlobType,Content-Length,Creation-Time
Set-AzStorageBlobInventoryPolicy 를 사용하여 Blob 인벤토리 정책을 만듭니다. -Rule
매개 변수를 사용하여 이 명령으로 규칙을 전달합니다.
$policy = Set-AzStorageBlobInventoryPolicy -StorageAccount $storageAccount -Rule $rule1,$rule2,$rule3,$rule4
Azure CLI 를 통해 정책을 추가, 편집 또는 제거할 수 있습니다.
먼저 Azure Cloud Shell 을 열거나 Azure CLI를 로컬로 설치 한 경우 Windows PowerShell과 같은 명령 콘솔 애플리케이션을 엽니다.
ID가 둘 이상의 구독과 연결되어 있으면 활성 구독을 설정합니다.
az account set --subscription <subscription-id>
<subscription-id>
자리 표시자 값을 구독의 ID로 바꿉니다.
JSON 문서에서 정책의 규칙을 정의합니다. 다음은 policy.json
이라는 예제 JSON 파일의 콘텐츠를 보여 줍니다.
{
"enabled": true,
"type": "Inventory",
"rules": [
{
"enabled": true,
"name": "inventoryPolicyRule2",
"destination": "mycontainer",
"definition": {
"filters": {
"blobTypes": [
"blockBlob"
],
"prefixMatch": [
"inventoryprefix1",
"inventoryprefix2"
],
"includeSnapshots": true,
"includeBlobVersions": true
},
"format": "Csv",
"schedule": "Daily",
"objectType": "Blob",
"schemaFields": [
"Name",
"Creation-Time",
"Last-Modified",
"Content-Length",
"Content-MD5",
"BlobType",
"AccessTier",
"AccessTierChangeTime",
"Snapshot",
"VersionId",
"IsCurrentVersion",
"Metadata"
]
}
}
]
}
az storage account blob-inventory-policy 만들기 명령을 사용하여 Blob 인벤토리 정책을 만듭니다. --policy
매개 변수를 사용하여 JSON 문서의 이름을 제공합니다.
az storage account blob-inventory-policy create -g myresourcegroup --account-name mystorageaccount --policy @policy.json
인벤토리 보고서 사용 안 함
개별 보고서를 사용하지 않도록 설정할 수 있지만 Blob 인벤토리가 전혀 실행되지 않도록 할 수도 있습니다.
Azure Portal 에 로그인합니다.
스토리지 계정을 찾아 계정 개요를 표시합니다.
데이터 관리 에서 Blob 인벤토리 를 선택합니다.
Blob 인벤토리 설정 을 선택하고 Blob 인벤토리 설정 창에서 Blob 인벤토리 사용 확인란을 선택 취소한 다음 저장 을 선택합니다.
BLOB 인벤토리 사용 확인란을 선택 취소하면 모든 Blob 인벤토리 실행이 일시 중지됩니다. 나중에 인벤토리 실행을 다시 시작하려면 이 확인란을 선택할 수 있습니다.
Blob 인벤토리 정책 완료 이벤트 구독
Blob 인벤토리 완료 이벤트를 구독하여 인벤토리 실행 결과에 대한 정보를 받을 수 있습니다. 인벤토리 정책이 정의된 규칙에 대해 인벤토리 실행이 완료되면 이 이벤트가 트리거됩니다. 인벤토리가 실행되기 전에 사용자 오류로 인해 인벤토리 실행이 실패하는 경우에도 이 이벤트가 발생합니다. 예를 들어 잘못된 정책 또는 대상 컨테이너가 없어서 발생하는 오류는 이 이벤트를 트리거합니다.
Azure Portal 에 로그인합니다.
스토리지 계정을 찾아 계정 개요를 표시합니다.
왼쪽 메뉴에서 이벤트를 선택합니다 .
+ 이벤트 구독 을 선택합니다.
이벤트 구독 만들기 페이지가 나타납니다.
이벤트 구독 만들기 페이지에서 이벤트 구독 의 이름을 지정하고 기본 스키마인 Event Grid 스키마를 사용합니다.
이벤트 유형에서 Blob 인벤토리 완료를 선택합니다.
엔드포인트 세부 정보에서 스토리지 큐를 엔드포인트 유형으로 선택하고 엔드포인트 구성을 선택합니다 .
큐 페이지에서 구독, 스토리지 계정을 선택하고 새 큐를 만듭니다. 큐 이름을 지정한 다음 만들기를 클릭합니다 .
필요에 따라 이벤트 또는 해당 특성의 제목을 필터링하려는 경우 필터 탭을 선택합니다 .
필요에 따라 배달 못 한 편지로 설정하고 정책을 다시 시도하며 이벤트 구독 만료 시간을 설정하려면 추가 기능 탭을 선택합니다 .
필요에 따라 배달 속성 탭을 선택하여 스토리지 큐 메시지 시간을 라이브로 설정합니다.
만들기 를 선택합니다.
배달된 큐 메시지를 보려면
스토리지 계정을 찾아 계정 개요를 표시합니다.
Data Storage에서 큐를 선택하고 메시지에 액세스하도록 엔드포인트를 구성하는 데 사용되는 새로 만든 큐를 엽니다.
원하는 인벤토리 런타임에 대한 메시지를 선택하여 이벤트 상태에 대한 메시지 본문을 검토하는 메시지 속성에 액세스합니다.
Blob Storage 이벤트를 구독하는 방법에 대한 자세한 방법은 Azure Blob Storage를 Event Grid 원본으로 참조 하세요. - Azure Event Grid | Microsoft Learn
필요에 따라 액세스 시간 추적 사용
Blob 액세스 시간 추적을 사용하도록 설정하도록 선택할 수 있습니다. 액세스 시간 추적이 사용하도록 설정되면 읽기 또는 쓰기 작업을 통해 Blob에 마지막으로 액세스한 시간을 기준으로 LastAccessTime 필드가 인벤토리 보고서에 포함됩니다. 읽기 액세스 대기 시간에 대한 영향을 최소화하기 위해 최근 24시간 동안의 첫 번째 읽기만 마지막 액세스 시간을 업데이트합니다. 동일한 24시간 동안의 이후 읽기는 마지막 액세스 시간을 업데이트하지 않습니다. 읽기 간에 Blob이 수정되는 경우 마지막 액세스 시간은 두 값 중 더 최근입니다.
Azure Portal에서 마지막 액세스 시간 추적을 사용하도록 설정하려면 다음 단계를 수행합니다.
Azure Portal 에 로그인합니다.
스토리지 계정을 찾아 계정 개요를 표시합니다.
데이터 관리 에서 Blob 인벤토리 를 선택합니다.
Blob 인벤토리 설정 을 선택하고 Blob 인벤토리 설정 창에서 마지막 액세스 추적 사용 확인란을 선택합니다.
PowerShell을 사용하여 마지막 액세스 시간 추적을 사용하도록 설정하려면 다음 예제와 같이 Enable-AzStorageBlobLastAccessTimeTracking 명령을 호출합니다. 꺾쇠 괄호로 묶인 자리 표시자 값을 사용자 고유의 값으로 바꿔야 합니다.
# Initialize these variables with your values.
$rgName = "<resource-group>"
$accountName = "<storage-account>"
Enable-AzStorageBlobLastAccessTimeTracking -ResourceGroupName $rgName `
-StorageAccountName $accountName `
-PassThru
Azure CLI를 사용하여 마지막 액세스 시간 추적을 사용하도록 설정하려면 다음 예제와 같이 az storage account blob-service-properties update 명령을 호출합니다. 꺾쇠 괄호로 묶인 자리 표시자 값을 사용자 고유의 값으로 바꿔야 합니다.
az storage account blob-service-properties update \
--resource-group <resource-group> \
--account-name <storage-account> \
--enable-last-access-tracking true
다음 단계