論理的に削除された BLOB を管理および復元する

BLOB の論理的な削除を使用すると、削除されたデータがシステムに一定の期間保持されることにより、個々の BLOB とその複数バージョン、スナップショット、およびメタデータが誤った削除や上書きから保護されます。 保持期間中は、BLOB を削除時の状態に復元できます。 保持期間が過ぎると、BLOB オブジェクトは完全に削除されます。 保有期間の有効期限が切れる前に論理的に削除された BLOB を完全に削除することはできません。 BLOB の論理的な削除の詳細については、「BLOB の論理的な削除」を参照してください。

BLOB の論理的な削除は、BLOB データの包括的なデータ保護戦略の一部です。 データ保護に関する Microsoft の推奨事項の詳細については、「データ保護の概要」を参照してください。

この記事では、Azure portal、PowerShell、または Azure CLI を使用して、論理的に削除された BLOB とスナップショットを表示および復元する方法について説明します。 Blob Storage クライアント ライブラリのいずれかを使用して、論理的に削除されたオブジェクトを管理することもできます。

前提条件

なし

論理的に削除された BLOB を表示および管理する (フラット型名前空間)

Azure portal を使用して、論理的に削除された BLOB とスナップショットを表示および復元できます。 論理的に削除されたオブジェクトの復元は、ストレージ アカウントで BLOB のバージョン管理が有効になっているかどうかによっても若干異なります。 詳細については、「論理的に削除されたバージョンの復元」を参照してください。

削除された BLOB を表示する

論理的に削除された BLOBは、既定では Azure portal に表示されません。 論理的に削除された BLOB を表示するには、コンテナーの [概要] ページに移動し、 [削除された Blob を表示] 設定を切り替えます。 論理的に削除された BLOB は、 [削除済み] の状態で表示されます。

論理的に削除された BLOB を Azure portal で一覧表示する方法を示すスクリーンショット

次に、BLOB の一覧から、削除済みの BLOB を選択して、そのプロパティを表示します。 [概要] タブで、BLOB の状態が [削除済み] に設定されていることを確認します。 ポータルには、BLOB が完全に削除されるまでの日数も表示されます。

Azure portal での論理的に削除された BLOB のプロパティを示すスクリーンショット

削除されたスナップショットを表示する

BLOB を削除すると、その BLOB に関連するスナップショットもすべて削除されます。 論理的に削除された BLOB にスナップショットがある場合は、削除されたスナップショットも Azure portal に表示できます。 論理的に削除された BLOB のプロパティを表示し、 [スナップショット] タブに移動して、 [削除されたスナップショットを表示] を切り替えます。

削除されたスナップショットを Azure portal で表示する方法を示すスクリーンショット。

バージョン管理が無効になっている場合に論理的に削除されたオブジェクトを復元する

BLOB のバージョン管理が有効になっていない場合に論理的に削除された BLOB を Azure portal で復元するには、最初に BLOB のプロパティを表示し、 [概要] タブの [削除の取り消し] ボタンを選択します。BLOB を復元すると、論理的な削除の保持期間中に削除されたすべてのスナップショットも復元されます。

論理的に削除された BLOB を Azure portal で復元する方法を示すスクリーンショット

論理的に削除されたスナップショットをベース BLOB に昇格させるには、最初に BLOB の論理的に削除されたスナップショットが復元されていることを確認します。 ベース BLOB 自体が論理的に削除されていない場合でも、 [削除の取り消し] ボタンを選択すると、BLOB の論理的に削除されたスナップショットが復元されます。 次に、昇格させるスナップショットを選択し、 [スナップショットの昇格] ボタンを使用して、ベース BLOB をスナップショットの内容で上書きします。

スナップショットをベース BLOB に昇格させる方法を示すスクリーンショット

バージョン管理が有効になっている場合に論理的に削除された BLOB を復元する

バージョン管理が有効になっている場合に論理的に削除された BLOB を Azure portal で復元するには、論理的に削除された BLOB を選択してプロパティを表示し、 [バージョン] タブを選択します。現在のバージョンとして昇格させるバージョンを選択し、 [現在のバージョンに変更する] を選択します。

Azure portal で BLOB を復元するためにバージョンを昇格させる方法を示すスクリーンショット

バージョン管理が有効になっている場合に削除されたバージョンまたはスナップショットを復元するには、BLOB のプロパティを表示し、 [概要] タブの [削除の取り消し] ボタンを選択します。

Note

バージョン管理が有効になっている場合に、削除された BLOB に対して [削除の取り消し] 操作を選択すると、論理的に削除されたバージョンまたはスナップショットは復元されますが、ベース BLOB は復元されません。 ベース BLOB を復元するには、以前のバージョンを昇格させる必要があります。

論理的に削除された BLOB とディレクトリを表示および管理する (階層型名前空間)

階層型名前空間が使用されたアカウントの論理的に削除された BLOB とディレクトリを復元できます。

Azure portal を使用して、論理的に削除された BLOB とディレクトリを表示および復元できます。

削除された BLOB とディレクトリを表示する

論理的に削除された BLOB またはディレクトリは、既定では Azure portal に表示されません。 論理的に削除された BLOB とディレクトリを表示するには、コンテナーの [概要] ページに移動し、 [削除された Blob を表示] 設定を切り替えます。 論理的に削除された BLOB とディレクトリは、 [削除済み] の状態で表示されます。 次の図は、論理的に削除されたディレクトリを示しています。

Azure portal で論理的に削除された BLOB を一覧表示する方法を示すスクリーンショット (階層型名前空間が有効なアカウント)。

[削除された BLOB の表示] 設定を切り替えたときに、論理的に削除された BLOB とディレクトリが Azure portal に表示されない理由としては、次の 2 つがあります。

  • セキュリティ プリンシパルが承認のためにアクセス制御リスト (ACL) エントリのみに依存している場合、論理的に削除された BLOB とディレクトリは表示されません。

    これらの項目を表示するには、アカウントの所有者であるか、セキュリティ プリンシパルにストレージ BLOB データ所有者ストレージ BLOB データ共同作成者、またはストレージ BLOB データ閲覧者のロールが割り当てられている必要があります。

  • 論理的に削除された項目 (サブディレクトリおよび BLOB) を含むディレクトリの名前を変更すると、それらの論理的に削除された項目はディレクトリから切断されるため、表示されなくなります。

    Azure portal でそれらを表示するには、ディレクトリの名前を元の名前に戻すか、元のディレクトリ名を使用する別のディレクトリを作成する必要があります。

論理的に削除された BLOB またはディレクトリを一覧から選択すると、そのプロパティを表示できます。 [概要] タブで、状態が [削除済み] に設定されていることを確認します。 ポータルには、BLOB が完全に削除されるまでの日数も表示されます。

Azure portal で論理的に削除された BLOB のプロパティを示すスクリーンショット (階層型名前空間が有効なアカウント)。

論理的に削除された BLOB とディレクトリを復元する

Azure portal で論理的に削除された BLOB またはディレクトリを復元するには、最初に BLOB またはディレクトリのプロパティを表示し、次に [概要] タブの [削除の取り消し] ボタンを選択します。次の図は、論理的に削除されたディレクトリの [削除の取り消し] ボタンを示しています。

Azure portal で論理的に削除された BLOB を復元する方法を示すスクリーンショット (階層型名前空間が有効なアカウント)。

PowerShell を使用して論理的に削除された BLOB とディレクトリを復元する

重要

このセクションは、階層型名前空間があるアカウントにのみ適用されます。

  1. Az.Storage プレビュー モジュールがインストールされていることを確認します。 詳細については、PowerShell 経由での論理的な削除の有効化に関するページを参照してください。

  2. ストレージ アカウント キー、接続文字列、または Microsoft Entra ID を使用して、ストレージ アカウントの承認を取得します。 詳細については、「アカウントに接続する」を参照してください。

    次の例では、ストレージ アカウント キーを使用して承認を取得します。

     $ctx = New-AzStorageContext -StorageAccountName '<storage-account-name>' -StorageAccountKey '<storage-account-key>'
    
  3. 論理的に削除された項目を復元するには、Restore-AzDataLakeGen2DeletedItem コマンドを使用します。

    $filesystemName = "my-file-system"
    $dirName="my-directory"
    $deletedItems = Get-AzDataLakeGen2DeletedItem -Context $ctx -FileSystem $filesystemName -Path $dirName
    $deletedItems | Restore-AzDataLakeGen2DeletedItem
    

論理的に削除された項目が含まれているディレクトリの名前を変更すると、それらの項目はディレクトリから切断されます。 それらの項目を復元するには、ディレクトリの名前を元の名前に戻すか、元のディレクトリ名を使用する別のディレクトリを作成する必要があります。 そうしないと、これらの論理的に削除された項目を復元しようとしたときにエラーが発生します。

Azure CLI を使用して論理的に削除された BLOB とディレクトリを復元する

重要

このセクションは、階層型名前空間があるアカウントにのみ適用されます。

  1. storage-preview 拡張機能がインストールされていることを確認します。 詳細については、PowerShell を使用した論理的な削除の有効化に関するページを参照してください。

  2. 削除された項目の一覧を取得します。

    $filesystemName = "my-file-system"
    az storage fs list-deleted-path -f $filesystemName --auth-mode login
    
  3. 項目を復元するには、az storage fs undelete-path コマンドを使用します。

    $dirName="my-directory"
    az storage fs undelete-path -f $filesystemName --deleted-path-name $dirName --deletion-id "<deletionId>" --auth-mode login
    

    論理的に削除された項目が含まれているディレクトリの名前を変更すると、それらの項目はディレクトリから切断されます。 それらの項目を復元するには、ディレクトリの名前を元の名前に戻すか、元のディレクトリ名を使用する別のディレクトリを作成する必要があります。 そうしないと、これらの論理的に削除された項目を復元しようとしたときにエラーが発生します。