LoginSignup
3
1

More than 1 year has passed since last update.

Blobライフサイクル管理で自動削除された履歴をログに残す

Posted at

この記事は セゾン情報システムズ Advent Calendar 2022 ページ2の11日目の記事です。

Azure Blob Storageにはライフサイクル管理という機能があります。
これは例えば90日間変更がないBlobを自動的に削除したり、ホット層からクール層に自動的に移動したりすることができます。

今回このライフサイクル管理で自動削除されたBlobを、ログとして記録することができるのかを確認しました。

ライフサイクル管理

  • Azure Portalから[ライフサイクル管理]→[ルールの追加]を選択します。
    image.png

  • ストレージアカウントの全てのBlobを対象にすることもできるし、特定のコンテナーのみに絞ったりもできます。
    image.png

  • 例えば最終変更日が90日以上前のものは削除するといったルール設定が可能です。
    image.png

診断設定

  • 診断設定を使うことで、Blobの削除操作をログに記録することができます。

  • Azure Portalから[診断設定]を選択します。
    image.png

  • [StorageDelete]を保存します。保存先はLog Analyticsやストレージアカウントが選べますが、今回はストレージアカウントに保存します。
    image.png

ログ確認

  • 実際にライフサイクル管理で削除された場合、以下のように記録されていることが確認できました。
{
    "time": "2022-12-10T11:26:22.8742962Z",
    "resourceId": "/subscriptions/[SubscriptionId]/resourceGroups/[ResourceGroupName]/providers/Microsoft.Storage/storageAccounts/[StorageAccountName]/blobServices/default",
    "category": "StorageDelete",
    "operationName": "DeleteBlob",
    "operationVersion": "2020-02-10",
    "schemaVersion": "1.0",
    "statusCode": 202,
    "statusText": "Success",
    "durationMs": 9,
    "callerIpAddress": "x.x.x.x:50740",
    "correlationId": "xxx",
    "identity": {
        "type": "SAS",
        "tokenHash": "xxx"
    },
    "location": "Japan East",
    "properties": {
        "accountName": "[StorageAccountName]",
        "userAgentHeader": "xAzure/1.0 AzureStorage/1.0 ObjectLifeCycleScanner/0.50",
        "clientRequestId": "xxx",
        "serviceType": "blob",
        "objectKey": "/[StorageAccountName]/test/test.txt",
        "metricResponseType": "Success",
        "serverLatencyMs": 9,
        "requestHeaderSize": 645,
        "responseHeaderSize": 300,
        "tlsVersion": "TLS 1.2",
        "accessTier": "None"
    },
    "uri": "xxx",
    "protocol": "HTTPS",
    "resourceType": "Microsoft.Storage/storageAccounts/blobServices"
}
  • 次に気になるのが、手動削除した場合とライフサイクル管理で自動削除された場合で区別することができるのかです。ログを見比べたところ以下の違いがありました。
ライフサイクル管理
"userAgentHeader": "xAzure/1.0 AzureStorage/1.0 ObjectLifeCycleScanner/0.50",
手動削除
"userAgentHeader": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36",
  • ライフサイクル管理と手動削除では[userAgentHeader]の値に違いがありました。これをチェックすることで自動削除されたか確認ができそうです。

以上

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1