次の方法で共有


不変 BLOB データに対するバージョン レベルの書き込み 1 回、多数の読み取り (WORM) ポリシー

バージョン レベルの書き込み 1 回の読み取り (WORM) ポリシーは、アカウント、コンテナー、またはバージョン レベルで設定できる不変ポリシーの一種です。 Azure Blob Storage の不変ストレージの詳細については、「不変ストレージを 使用してビジネス クリティカルな BLOB データを書き込み 1 回格納し、多くの (WORM) 状態を読み取る」を参照してください。

可用性

バージョンレベルの不変性 (VLW) ポリシーは、新しいアカウントにおいてアカウントレベルでサポートされており、また、新規および既存のアカウントやコンテナーではコンテナーおよびブロブレベルでサポートされます。 これらのポリシーは、汎用 v2 と Premium ブロック BLOB アカウントの両方でサポートされています。 この機能は、階層型名前空間アカウントではサポートされていません。

バージョンの依存関係

バージョン レベルのポリシーでは、ストレージ アカウントに対 して BLOB のバージョン管理 が有効になっている必要があります。 BLOB のバージョン管理を有効にする方法については、「BLOB のバージョン管理を有効にして管理する」をご覧ください。 バージョン管理を有効にすると、課金に影響する可能性があることに注意してください。 詳細については、 BLOB のバージョン管理の価格と課金に関するセクションを参照してください。

バージョン管理が有効になると、BLOB が最初にアップロードされるときに、そのバージョンの BLOB が現在のバージョンになります。 BLOB が上書きされるたびに、BLOB の以前の状態を格納する新しいバージョンが作成されます。 BLOB の現在のバージョンを削除すると、現在のバージョンは以前のバージョンになり、明示的に削除されるまで保持されます。 以前のバージョンの BLOB には、現在のバージョンが以前のバージョンになったときに有効だった時間ベースの保持ポリシーがあります。

ストレージ アカウントまたはコンテナーに対して既定のポリシーが有効な場合、上書き操作で以前のバージョンが作成されると、新しい現在のバージョンはアカウントまたはコンテナーの既定のポリシーを継承します。

各バージョンには時間ベースの保持ポリシーが1つだけ構成できます。 バージョンには、法的ホールドも 1 つ構成できます。

バージョン レベルの時間ベースのアイテム保持ポリシーを構成する方法については、「 BLOB バージョンの不変ポリシーを構成する」を参照してください。

有効化とポリシー設定

バージョン レベルの WORM で不変ポリシーを使用することは、2 段階のプロセスです。 まず、バージョン レベルの不変性を有効にします。 その後、バージョン レベルの不変ポリシーを設定できます。

ストレージ アカウント レベルでポリシーを設定するには、まずストレージ アカウントでバージョン レベルの WORM を有効にする必要があります。 これは、アカウント作成時にのみ実行できます。 既存のアカウントに対してバージョン レベルの WORM を有効にするオプションはありません。

アカウント レベルでバージョン レベルの不変ストレージのポリシーを設定する図。

コンテナー レベルでポリシーを設定するには、まず、アカウントまたはコンテナーでバージョン レベルの WORM を有効にする必要があります。

コンテナーでバージョン レベルの WORM を有効にする予定の場合は、コンテナーの作成時に有効にすることをお勧めします。 ただし、バージョン レベル以外の WORM 対応コンテナーは、バージョン レベルの WORM 対応コンテナーに移行できます。 コンテナーを移行しない場合でも、そのコンテナーにコンテナー レベルの WORM ポリシーを設定できますが、BLOB レベルのポリシーを設定するオプションは、そのコンテナーでは使用できません。

コンテナー レベルでバージョン レベルの不変ストレージのポリシーを設定する図。

BLOB レベルでポリシーを設定するには、アカウントまたはコンテナーでバージョン レベルの WORM を有効にする必要があります。 BLOB レベルでバージョン レベルの WORM を直接有効にする方法はありません。この設定は継承される必要があります。

BLOB レベルでバージョン レベルの不変ストレージのポリシーを設定する図。

移動

既存のコンテナーでは、バージョン レベルの不変性をサポートできますが、最初に移行プロセスを実行する必要があります。 このプロセスには時間がかかる場合があります。 有効にすると、そのコンテナーに対するバージョン レベルの WORM サポートを削除できなくなります。 ストレージ アカウントごとに一度に移行できるコンテナーは 10 個です。 移行にかかる時間は、主にコンテナー内の BLOB の量によって異なります。 BLOB の数が多いコンテナーの移行には、はるかに時間がかかります。 バージョン レベルの不変性をサポートするようにコンテナーを移行する方法の詳細については、「 既存のコンテナーを移行してバージョン レベルの不変性をサポートする」を参照してください。

現在のバージョンでポリシーを構成する

ストレージ アカウントまたはコンテナーのバージョン レベルの不変性のサポートを有効にした後、アカウントまたはコンテナーの既定の時間ベースの保持ポリシーを構成するオプションがあります。 アカウントまたはコンテナーの既定の時間ベースの保持ポリシーを構成し、BLOB をアップロードすると、BLOB はその既定のポリシーを継承します。 また、その BLOB のカスタム ポリシーを構成することで、アップロード時に任意の BLOB の既定のポリシーをオーバーライドすることもできます。

アカウントまたはコンテナーの既定の時間ベースの保持ポリシーがロック解除されている場合、既定のポリシーを継承する BLOB の現在のバージョンにもロック解除ポリシーが適用されます。 個々の BLOB をアップロードした後は、現在のバージョンの BLOB のポリシーの保持期間を短縮または延長したり、現在のバージョンを削除したりできます。 アカウントまたはコンテナーの既定のポリシーのロックが解除されたままであっても、現在のバージョンのポリシーをロックすることもできます。

アカウントまたはコンテナーの既定の時間ベースの保持ポリシーがロックされている場合、既定のポリシーを継承する BLOB の現在のバージョンにもロックされたポリシーが適用されます。 ただし、BLOB のみを対象とするポリシーを設定して BLOB をアップロードするときに既定のポリシーをオーバーライドした場合、明示的にロックするまで、その BLOB のポリシーはロック解除されたままになります。 現在のバージョンのポリシーがロックされている場合は、保持間隔を延長できますが、ポリシーを削除したり、保持間隔を短くしたりすることはできません。

ストレージ アカウントまたはコンテナーに対して既定のポリシーが構成されていない場合は、カスタム ポリシーを使用するか、ポリシーなしで BLOB をアップロードできます。

ストレージ アカウントまたはコンテナーの既定のポリシーが変更された場合、それらのポリシーが既定のポリシーから継承された場合でも、そのコンテナー内のオブジェクトに対するポリシーは変更されません。

次の表は、アップロード時に BLOB に時間ベースの保持ポリシーを設定するために使用できるさまざまなオプションを示しています。

アカウントまたはコンテナーの既定のポリシーの状態 既定のポリシーを使用して BLOB をアップロードする カスタム ポリシーを使用して BLOB をアップロードする ポリシーのない BLOB をアップロードする
アカウントまたはコンテナーの既定のポリシー (ロック解除) 既定のロック解除されたポリシーを使用して BLOB がアップロードされる カスタム ロック解除ポリシーを使用して BLOB をアップロードする ポリシーなしで BLOB がアップロードされる
アカウントまたはコンテナーの既定のポリシー (ロック) 既定のロックされたポリシーを使用して BLOB がアップロードされる カスタム ロック解除ポリシーを使用して BLOB をアップロードする ポリシーなしで BLOB がアップロードされる
アカウントまたはコンテナーに既定のポリシーがない なし カスタム ロック解除ポリシーを使用して BLOB をアップロードする ポリシーなしで BLOB がアップロードされる

以前のバージョンでポリシーを構成する

バージョン管理を有効にすると、BLOB への書き込み操作または削除操作によって、操作前の BLOB の状態を保存する新しい以前のバージョンの BLOB が作成されます。 既定では、現在のバージョンが以前のバージョンに変わった際、その以前のバージョンには、当時有効だった時間ベースの保持ポリシーが適用されます。 新しい現在のバージョンは、コンテナーのポリシー (存在する場合) を継承します。

以前のバージョンによって継承されたポリシーがロック解除されている場合は、保持間隔を短くしたり長くしたり、ポリシーを削除したりすることができます。 以前のバージョンのポリシーは、現在のバージョンのポリシーのロックが解除されている場合でも、そのバージョンに対してロックできます。

以前のバージョンによって継承されたポリシーがロックされている場合は、保持間隔を長くすることができます。 ポリシーを削除することも、保持間隔を短くすることもできません。 現在のバージョンでポリシーが構成されていない場合、以前のバージョンはポリシーを継承しません。

バージョンのカスタム ポリシーを構成できます。 現在のバージョンのポリシーが変更された場合、ポリシーが現在のバージョンから継承された場合でも、既存の以前のバージョンのポリシーは変更されません。

削除

変更できないポリシーに対してアカウントまたはコンテナーが有効になると、空になるまで削除することはできません。 注意すべき主な点は、変更できないポリシーがバージョン レベルの WORM アカウントまたはコンテナーに設定されているかどうかは関係ありません。ポリシーに対して有効になっているかどうかが重要です。 まず、削除するためにはアカウントまたはコンテナーを空にしておく必要があります。

バージョン レベルの不変ポリシーを持つアカウントを削除するときの操作の順序を示す図。

シナリオ

シナリオ 禁止されている操作 BLOB 保護 コンテナー保護 アカウントの保護
Blob バージョンはアクティブな保持ポリシーによって保護されているか、リーガルホールドが有効になっています。 BLOBの削除BLOBメタデータの設定、およびPut Page BLOB のバージョンは削除できません。 ユーザー メタデータを書き込むことができません。
PUT BLOBPut Block List、または Copy BLOB で BLOB を上書きすると、新しいバージョン1 が作成されます。
ポリシーがロックまたはロック解除されているかどうかに関係なく、コンテナーに少なくとも 1 つの BLOB が存在する場合、コンテナーの削除は失敗します。 バージョン レベルの不変ストレージが有効になっているコンテナーが少なくとも 1 つ存在する場合、またはアカウントに対して有効になっている場合、ストレージ アカウントの削除は失敗します。
Blob バージョンは、有効期限が切れた保持ポリシーで保護されており、法的なホールドはありません。 Set Blob Metadata と Put Page Blob バージョンは、有効期限が切れた保持ポリシーで保護されており、法的なホールドはありません。 BLOB のバージョンは削除できます。
PUT BLOBPut Block List、または Copy BLOB で BLOB を上書きすると、新しいバージョン1 が作成されます。
ロックされた時間ベースの保持ポリシーを持つ BLOB バージョンを含むコンテナーが少なくとも 1 つ存在する場合、ストレージ アカウントの削除は失敗します。
ロック解除されたポリシーでは、削除保護は提供されません。

1 つの BLOB バージョンは、コンテンツに対して常に不変です。 ストレージ アカウントのバージョン管理が有効になっている場合、ブロック BLOB への書き込み操作では、Put Block 操作を除き、新しいバージョンが作成されます。

制限

1 つのアカウントに一意の時間ベースのアイテム保持ポリシーを設定できるコンテナーは 10,000 個のみです。ただし、10,000 を超えるコンテナーによって継承されるアカウント レベルのポリシーを設定できます。

次のステップ