Azure Storage BLOB のインベントリ レポートを有効にする
- [アーティクル]
-
-
Azure Storage BLOB インベントリ機能により、ストレージ アカウント内のご自身のコンテナー、BLOB、スナップショット、BLOB バージョンの概要が提供されます。 インベントリ レポートを使用すると、ご自身の合計データ サイズ、経過日数、暗号化の状態、不変ポリシー、訴訟ホールドなど、BLOB とコンテナーのさまざまな属性を把握できます。 このレポートには、ビジネス要件とコンプライアンス要件に関するデータの概要が示されます。
BLOB インベントリ レポートの詳細については、Azure Storage BLOB インベントリに関するページをご覧ください。
BLOB インベントリ レポートを有効にするには、1 つ以上のルールが含まれるポリシーを、ストレージ アカウントに追加します。 ポリシーを追加、編集、または削除するには、Azure portal を使用します。
インベントリ レポートを有効にする
Azure ポータルにサインインして、作業を開始します。
ストレージ アカウントを見つけて、アカウントの概要を表示します。
[データ管理] で、 [BLOB インベントリ] を選択します。
[Add your first inventory rule](最初のインベントリルールを追加する) を選択します。
[ルールの追加] ページが表示されます。
[ルールの追加] ページで、ご自身の新しいルールに名前を付けます。
インベントリ レポートを保存するコンテナーを選択します。
[Object type to inventory](インベントリのオブジェクトの種類) で、BLOB とコンテナーのどちらのレポートを作成するかを選択します。
[BLOB] を選択した場合は、 [Blob subtype](BLOB のサブタイプ) の下で、レポートに含める BLOB の種類と、BLOB バージョンまたはスナップショット、あるいはその両方をインベントリ レポートに含めるかを選択します。
Note
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 create コマンドを使用して、BLOB インベントリ ポリシーを作成します。 --policy
パラメーターを使用して、ご自身の JSON ドキュメントの名前を指定します。
az storage account blob-inventory-policy create -g myresourcegroup --account-name mystorageaccount --policy @policy.json
インベントリ レポートを無効にする
個々のレポートを無効にできるだけでなく、BLOB インベントリがまったく実行されないようにすることもできます。
Azure portal にサインインします。
ストレージ アカウントを見つけて、アカウントの概要を表示します。
[データ管理] で、 [BLOB インベントリ] を選択します。
[Blob inventory settings]\(BLOB インベントリの設定\) を選択し、[Blob inventory settings]\(BLOB インベントリの設定\) ウィンドウで、[BLOB インベントリを有効にする] チェック ボックスをオフにし、[保存] を選択します。
[BLOB インベントリを有効にする] チェック ボックスをオフにすると、すべての BLOB インベントリ実行が中断されます。 インベントリの実行を再開する場合は、後でこのチェック ボックスをオンにできます。
BLOB インベントリ ポリシー完了イベントに登録する
BLOB インベントリ完了イベントに登録して、インベントリ実行の結果に関する情報を受け取ることができます。 このイベントは、インベントリ ポリシーで定義されたルールに対してインベントリの実行が完了したときにトリガーされます。 このイベントは、インベントリの実行が開始前に失敗してユーザー エラーになった場合にも発生します。 たとえば、無効なポリシーによって、または送信先コンテナーが存在しないときに発生するエラーによって、このイベントがトリガーされます。
Azure portal にサインインします。
ストレージ アカウントを見つけて、アカウントの概要を表示します。
左側のメニューで [イベント] を選択します。
[+ イベント サブスクリプション] を選択します。
[イベント サブスクリプションの作成] ページが表示されます。
[イベント サブスクリプションの作成] ページで、イベント サブスクリプションに名前を付け、既定のスキーマである Event Grid スキーマを使用します。
[イベントの種類] で、BLOB インベントリ完了を選択します。
[エンドポイントの詳細] で、エンドポイントの種類としてストレージ キューを選択し、[エンドポイントの構成] を選択します。
[キュー] ページで、サブスクリプション、ストレージ アカウントを選択し、新しいキューを作成します。 キューに名前を付け、[作成] をクリックします。
必要に応じて、イベントまたはその属性の件名をフィルター処理する場合は、[フィルター] タブを選択します。
必要に応じて、配信不能、再試行ポリシーを有効にして、イベント サブスクリプションの有効期限を設定する場合は、[追加機能] タブを選択します。
必要に応じて、[配信プロパティ] タブを選択して、ストレージ キュー メッセージの Time to Live を設定します。
[作成] を選択します
配信済みキュー メッセージを表示するには
ストレージ アカウントを見つけて、アカウントの概要を表示します。
[データ ストレージ] で [キュー] を選択し、メッセージにアクセスするようエンドポイントを構成するときに使用される、新しく作成キューを開きます。
目的のインベントリ実行時のメッセージを選択して、メッセージのプロパティにアクセスし、メッセージ本文でイベントの状態をレビューします。
BLOB ストレージ イベントに登録する方法の詳細については、Event Grid ソースとしての Azure Blob Storage - Azure Event Grid | Microsoft Learn に関する記事を参照してください
オプションであるアクセス時間の追跡を有効にする
BLOB アクセス時間の追跡を有効にすることを選択できます。 アクセス時間の追跡を有効にすると、BLOB が読み取りまたは書き込み操作で最後にアクセスされた時刻に基づいて、インベントリ レポートに LastAccessTime フィールドが含められます。 読み取りアクセス待ち時間への影響を最小限に抑えるために、過去 24 時間の最初の読み取りのみが最終アクセス時刻を更新します。 同じ 24 時間内のその後の読み取りでは、最終アクセス時刻は更新されません。 読み取り間で BLOB が変更された場合、最終アクセス時刻は 2 つの値のうち新しい方になります。
Azure portal で最終アクセス時刻の追跡を有効にするには、次の手順に従います。
Azure portal にサインインします。
ストレージ アカウントを見つけて、アカウントの概要を表示します。
[データ管理] で、 [BLOB インベントリ] を選択します。
[Blob inventory settings]\(BLOB インベントリの設定\) を選択し、[Blob inventory settings]\(BLOB インベントリの設定\) ウィンドウで [Enable last access tracking]\(最終アクセス追跡\) チェック ボックスをオンにします。
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
次のステップ