データが重要な価値を持つ現代、特に法的な証拠や監査ログなど、保護が求められる情報をどのように管理するかは、企業や組織にとって重要な課題です。
悪意のある攻撃や内部のミスによって、大切なデータが変更されることは避けなければなりません。そこで登場するのが、Azure Blob Storageの不変ストレージです。
前編後編の2回に分けて説明をしていきたいと思います。
不変ストレージとは
不変ストレージとは、一度データを保存すると、そのデータが変更されることなく保持されるストレージのことです。
主に以下のようなシナリオに対して有効です。
- データの保護
- 重要なデータが誤って消されたり、誰かに意図的に変更されたりするのを防ぐことが可能です。
- 規制の遵守
- 多くの業界では、法律や規制に従ってデータを安全に保存する必要があります。
- 不変ストレージを使うことで、これらの要件を満たすことができます。
- 訴訟ホールド
- BLOB の不変ストレージを使用すると、ユーザーは訴訟やビジネス用途に不可欠な機密情報を、ホールドが削除されるまでの必要な期間中、改ざん防止状態で保存できます。
たとえば、監査で使用するログやアクティビティログなどを保存するのに適しています。
また使用NGなケースとしては以下となります。
- データベースなどに使用する保存領域
- 都度更新の発生するファイル
頻繁に更新されるファイルに対して不変ポリシーを適用すると、データの更新ができなくなり、運用に支障をきたす可能性があります。
不変ポリシー
不変ポリシーを設定することにより、データを一定の期間中に変更や削除できないように制限することが可能となります。これにより、データの整合性を保ちつつ、法令遵守や監査要件を満たすことが可能となります。
不変ポリシーには、以下の2つのタイプがあります。
時間ベースの保持ポリシー
時間ベースの保持ポリシーは、Blobが指定された期間(例:数日から数年)の間、変更や削除を防ぐための設定です。
たとえば、金融機関などでは顧客データを数年間保持する法的規制があり、その要件を満たすためにこのポリシーが活用されます。
訴訟ホールド
訴訟ホールドは、特定の訴訟や調査のためにデータを保持し、削除できないようにする機能です。訴訟が発生した場合、対象となるデータを保持することで、法的要件を満たすことができます。
このホールドが設定されると、データはユーザーによって削除されたり変更されたりすることはありません。
設定方法
ここからは実際設定をしながら設定値などについて解説していきたいと思います。
前提として、すでに作成されているストレージアカウントでのコンテナーレベルでの不変ポリシーの設定方法についての手順とします。
※「バージョンレベルの不変性のサポート」という、Blob の特定のバージョンに不変ポリシーを適用することで変更や削除を防ぐことを目的とした機能もあります。これは、ストレージアカウントを作成するタイミングで有効化する必要がある機能である為、後編で解説していきます。
ステップ1: ストレージアカウントの選択
不変ポリシーを設定したいストレージアカウントを選択し、そのアカウントをクリックします。
ステップ2: コンテナの選択
左側のメニューから「データストレージ」セクションの「コンテナー」を選びます。
ポリシーを設定するコンテナーを選択します。
ステップ3: 不変ポリシーの設定
左側メニューから「アクセスポリシー」をクリックします。その後、「不変BLOBストレージ」セクションで「ポリシーの追加」を選択します。
ステップ4: 保持ポリシーの詳細設定
ここで、ポリシーの種類を選択します。以下のオプションがあります。
時間ベースの保持ポリシー
Blobを一定の期間、不変として保持します。保持日数を設定し、変更や削除を防ぎます。
例えば、特定のプロジェクトに関連するデータを1年間保持する設定が可能です。
※注意:後述します「ロックのポリシー」を使用する場合は日数を1日など短めに設定してください、Blobおよびデータの削除ができなくなります。
訴訟ホールド
訴訟または調査が発生した際に、特定のデータを保護するために使用します。
訴訟ホールドを設定すると、その期間中にBlobは削除できなくなります。設定したポリシーを削除することによりblobの削除は可能となります。
設定する際には、識別子文字列として機能する 1 つ以上のユーザー定義英数字タグに関連付けられている必要があります。 たとえば、タグにはケース ID またはイベント名を含めることができます。
次に対する保護された追加書き込みを許可する
データの不変性を維持しつつ、新しいデータの追加を可能にするための設定です。
この機能は、不変ストレージポリシーが適用されている状況でも、必要に応じて新しいデータを追加する必要がある場合に用いられます。
ログや監査データなどデータを保持しつつ日々の更新や新たな記録を追加する必要がある際には、「ブロック BLOB と 追加 BLOB」を選択し、使用するBlobの種類で「ブロックBLOB」と「追加BLOB」のいずれかを選択します。
設定が完了したら、「保存」ボタンをクリックして変更を適用します。これで、不変ポリシーが適用され、選択したコンテナ内のBlobは指定された条件に基づいて変更や削除ができなくなります。
ステップ5: ポリシーのロック(時間ベースの保持ポリシーを設定した場合限定)
時間ベースの保持ポリシーを設定した場合、ストレージアカウントに対してRBAC権限がある人だとポリシーを削除してコンテナーおよびデータを削除することが可能です。
それを防ぐにはポリシーのロックを実施する必要があります。
状態が「ロック解除」となっていることを確認し、右側の「・・・」をクリックします。
「ロックのポリシー」を選択します。
保持ポリシーの確認に「はい」と入力し、「保存」ボタンをクリックして変更を適用します。
上記設定が完了するとポリシーがロックされ、以下のように「削除」ボタンがグレーアウトして削除が不可能な状態となります。
※保持期間の日数経過後ポリシーは削除可能な状態となります。
実際にコンテナーを削除してみる
各ポリシーが有効化されたコンテナーを削除してみます。以下のようなエラーメッセージが表示され、削除ができなくなっていることがわかります。
まとめ
Azure Blob Storageの不変ストレージは、データ保護やコンプライアンスのための強力な機能です。
時間ベースの保持ポリシーや訴訟ホールドを利用することで、企業は法的な要件に適切に対応し、データの整合性を維持することができます。
簡単にコンテナーレベルで不変ポリシーを設定できるため、ぜひ試してみてください。