はじめに
BLOBには不変BLOBストレージがあります。これは不用意に削除されない、もしくは変更されないようにするものです。
Azure Blob Storage の不変ストレージを使用すると、ユーザーはビジネスに不可欠なデータを WORM (Write Once, Read Many) 状態で保存できます。 WORM の状態では、ユーザーが指定した期間、データを変更および削除できません。 BLOB データに不変ポリシーを構成することにより、上書きや削除からデータを保護することができます。
WORMはLTOやテープなど利用しバックアップをしている人には馴染み深いとおもいます。
そして不変ストレージは2種類あります。これらの挙動を紹介していきます。
- 訴訟ホールド
- 時間ベースの保持
これらの挙動はほぼ同じです。読み取りはできます。新規にファイルの追加も行えます。ただし、変更や削除が行えません。つまり既存のファイルに何か手を加えることができません。そしてこの2種類の違いは期限付きか無期限かの大きな違いがあります。ほかに違いがあります。
これらを使い分けるとした場合、どのようなケースがあるでしょうか?例えば、訴訟ホールドはその名の通り法規的にデータを保全したい場合です。フォレンジックのためだったり証拠として残しておくために利用したりします。時間ベースの保持では、例えば監査のために3年間ログを保存したいなどの場合です。3年後には削除できるようになります。
訴訟ホールド
訴訟ホールドでは、訴訟ホールドが明示的にクリアされるまで、不変データを格納します。 訴訟ホールドを設定すると、オブジェクトの作成と読み取りは可能ですが、変更または削除はできません。
コンテナーを開き、アクセスポリシーを設定します。
不変BLOBストレージでポリシーを追加します。
訴訟ホールドを選択します。タグは適当にいれます(必要に応じて利用します)。追加書き込みを許可するをなしにします。追加します。
試しにファイルをアップロードします。問題なくアップロードできます。
同じファイルを上書きでアップロードすると失敗します。
エラーを確認するとそ訴訟ホールドが節制されているため許可できないとでます。
ここで訴訟ホールドのポリシーを削除します。
削除後はファイルを上書きでアップロードでいます。
このように不変BLOBストレージを訴訟ホールドで利用します。
時間ベースの保持
時間ベースのアイテム保持ポリシーを使用すると、ユーザーは指定した間隔でデータを格納するポリシーを設定できます。 時間ベースのアイテム保持ポリシーを設定すると、オブジェクトの作成と読み取りは可能ですが、変更または削除はできません。 保持期間の期限が切れた後はオブジェクトを削除できますが、上書きはできません。
時間ベースの保持を選択します。保持したい期間を設定します。
書き込みを許可をなしにします。
前章の訴訟ホールドと同様にファイルアップロードを行うとポリシーで許可されていないとでます。
ファイルの削除も行えません。
時間ベースの保持のポリシーを削除する場合は警告がでます。
このように不変BLOBストレージを時間ベースの保持で利用します。
まとめ
BLOBデータの不変ストレージにおける訴訟ホールドと時間ベースの保持について説明しました。
通常は時間ベースの保持のポリシーを利用する場合は多いと思います。特に監査に絡んだログです。活用しつつ運用のミスを減らしてください。