コンテナのソフト削除は、削除されたコンテナを一定期間ストレージ アカウントに保持することで、コンテナを誤削除から保護します。 保持期間中は、論理的に削除されたコンテナーとその内容を、削除された時点のコンテナーの状態に復元することができます。 保持期間が経過すると、コンテナーとその内容は完全に削除されます。
推奨されるデータ保護の構成
コンテナーのソフト削除は、アカウント内の包括的なデータ保護戦略の一部です。 ストレージ アカウントを最適に保護するために、Microsoft では次のデータ保護機能を有効にすることをお勧めします。
Blobソフト削除は、削除したBlobやスナップショット、またはバージョンを復元するためのものです。 BLOB の論理的な削除も有効にする方法については、BLOB の論理的な削除の有効化と管理に関する記事をご覧ください。
コンテナソフトデリットは、削除したコンテナを復元するためのものです。 コンテナーの論理的な削除を有効にする方法については、「コンテナーの論理的な削除を有効にして管理する」をご覧ください。
アカウントの誤削除やランサムウェアなど、より広範なデータ損失シナリオから保護するには、アカウント内機能に加えてAzure Backupを有効にすることを検討してください。 Microsoftがあなたのワークロードに応じたデータ保護の推奨事項について詳しく知りたい方は、データ保護の概要をご覧ください。
Tip
Blob とコンテナのソフト削除を大規模に有効にするには、組み込みの Azure Policy「ストレージ アカウント上の Blob とコンテナのソフト削除を構成」を使いましょう。
コンテナーのソフト削除のしくみ
コンテナソフト削除を有効にする際は、削除されたコンテナの保持期間を1日から365日まで指定してください。 既定の保持期間は 7 日に設定されています。 最低7日間を選び、データ量やデータ損失の検出・対応にかかる時間に応じて保持期間を延長してください。
保持期間中は、コンテナーの復元操作を呼び出せば、削除されたコンテナーを復旧することができます。 コンテナーを復元すると、コンテナー内の BLOB、それらのバージョンおよびスナップショットも復元されます。
警告
コンテナーの論理的な削除を使用すると、コンテナー全体、および削除時の内容のみを復元することができます。 親コンテナが削除されていない状態で削除されたBlobを復元するには、Blobソフト削除またはBlobバージョン管理を使う必要があります。 コンテナーを復元するときは、元の名前に復元する必要があります。 元の名前を使って新しいコンテナを作成すると、ソフト削除されたコンテナは復元できません。
次の図は、コンテナーの論理的な削除が有効になっている場合に、削除されたコンテナーを復元する方法を示しています。
保持期間が終了すると、Azure Storageはコンテナを永久に削除し、復元できません。 保持期間の起算はコンテナが削除された時点から始まります。 保持期間はいつでも変更できますが、新しい設定は更新 後 に削除されたコンテナーにのみ適用されます。 すでに削除されたコンテナは、最初に削除された際の保持期間に基づいて永久に削除されます。
コンテナーの論理的な削除を無効にしても、既存の論理的に削除されたコンテナーは完全に削除されません。 削除時の保持期間に基づいて永久に削除されます。
コンテナーの論理的な削除は、次の種類のストレージ アカウントで使用できます。
- 汎用 v2 および v1 ストレージ アカウント
- ブロック BLOB ストレージ アカウント
- BLOB ストレージ アカウント
階層型名前空間が Azure Data Lake Storage で使用可能になっているストレージ アカウントもサポートされています。
バージョン 2019-12-12 以降の Azure Storage REST API では、コンテナーの論理的な削除がサポートされています。
ソフト削除されたコンテナを復元するための最も権限の低い組み込みロールはStorage Blob Data Contributorです。
重要
コンテナーのソフト削除はストレージ アカウントの削除に対する保護にはならず、そのアカウント内のコンテナー削除に対してのみ保護されます。 ストレージ アカウントを削除から保護するには、ストレージ アカウント リソースに対してロックを構成します。 Azure Resource Manager リソースのロックの詳細については、「リソースのロックによる予期せぬ変更の防止」を参照してください。
作業量の考慮事項
既存アカウントでコンテナソフトデリットを有効にする前に、以下のポイントを考慮してください。
有効にしても過去にはさかのぼって適用されません: コンテナのソフト削除は、有効にした後に削除したコンテナのみを保護します。 有効化前に削除されたコンテナは復元できません。
コンテナは元の名前にのみ復元されます: ソフト削除されたコンテナは、削除された時の名前にのみ復元できます。 その名前で新しいコンテナを作成する場合は、復元する前に必ず名前を変更するか削除しなければなりません。
保持期間が短い方が優先されます: コンテナソフト削除とブロブソフト削除は独立した保持期間を持ちます。 もしブロブのソフト削除保持期間がコンテナソフト削除保持期間より短い場合、復元されたコンテナ内のブロブはコンテナ保持期間が終了する前にすでに永久に削除されている可能性があります。 2 つの保持期間を調整して、BLOB が欠落したコンテナーを復元しないようにします。
保持期間の変更は遡及的ではありません: 保持期間の変更は、更新後に削除されたコンテナにのみ適用されます。 すでにソフト削除されたコンテナは、削除時に有効だった保持期間を保持します。
すでにソフト削除済みのコンテナで保持期間を延長するには再削除が必要です: すでにソフト削除されたコンテナにより長い保存期間を適用するには、元の削除を解除し、新しい保持期間が有効になった状態で再度削除してください。
ソフト削除を無効にしても、既存のソフト削除済みコンテナは削除されません: コンテナソフト削除を無効にしても、すでにソフト削除されたコンテナはすぐには削除されません。 これらは残留し、元の保持期間が終了するまで復元可能です。
HNSアカウントはソフト削除コンテナを列挙できません: 階層的な名前空間を持つアカウントでは、ソフト削除されたコンテナを一覧表示できません。 修復には、正確な元の容器名を知る必要があります。
フラット型名前空間アカウントの階層型名前空間 (ADLS) へのアップグレードをブロックする: コンテナーの論理的な削除が有効になっている間は、階層名前空間への移行がブロックされます。 移行前に無効にし、移行完了後に再度有効にしてください。
機能のサポート
Data Lake Storage Gen2、Network File System (NFS) 3.0 プロトコル、または SSH ファイル転送プロトコル (SFTP) を有効にすると、この機能のサポートが影響を受ける場合があります。 これらの機能のいずれかを有効にしている場合は、「Azure Storage アカウントでの Blob Storage 機能のサポート」 を参照して、この機能のサポートを評価してください。
価格と課金
コンテナーのソフト削除を有効にしても、追加料金はかかりません。 ソフト削除されたコンテナ内のデータに対して、アクティブなデータと同じ料金を支払います。
コストを抑えるために、チームが誤削除を検出して復旧できるよう、最短の保持期間を設定しましょう。 Microsoftは最低7日を推奨していますが、この値はワークロードのデータ量や要件に応じて調整してください。
監視とトラブルシューティング
Azure Monitorのアクティビティログを使ってコンテナ削除イベントをモニターします。 Azureポータルでソフト削除コンテナを見るには、ストレージブラウザで「削除済みコンテナを表示」を有効にしてください。 プログラムでは、include=deleted を使用して List Containers 操作を実行します。
ソフト削除したコンテナが見えません: ソフト削除されたコンテナはデフォルトで隠されています。 Azureポータルで、ストレージブラウザで「削除されたコンテナを表示」を有効にしてください。 APIを通じて、
include=deletedでList Containersを呼び出します。 それでもコンテナーが表示されない場合は、コンテナーが削除される前にコンテナーの論理的な削除が有効になっていたこと、および保存期間が経過していないことを確認してください。コンテナの名前が使われているため復元できません:元のコンテナが削除された後に同じ名前の新しいコンテナを作成しました。 コンテナは元の名前にしか復元できないので、まず競合するコンテナの名前を変更するか削除し、その後復元してください。
HNSアカウントでソフト削除コンテナが見つかりません: 階層的な名前空間を持つアカウントはソフト削除コンテナの列挙をサポートしていません。 修復には正確な元のコンテナ名が必要です。
階層型名前空間(ADLS)へのアップグレードがブロックされています: コンテナソフト削除は階層型名前空間への移行をブロックします。 コンテナのソフト削除を無効にし、移行を実行し、移行完了後に再度有効化します。
複数のコンテナを同時に復元する必要があります:Azureポータルでは一括復元は利用できません。 Azure PowerShell または Azure CLI を使って複数のコンテナにまたがって復元をスクリプトしてください。
有効にした範囲が広すぎたので、大規模に論理的な削除を無効にする必要がある: 各種ツールを使用して論理的な削除を無効にする手順については、コンテナーの論理的な削除の有効化の記事を参照してください。