こんにちわ。
コンサルティング&テクノロジー部のAzureチームの開發(@mamikaihatsu)です。
Azureプレビューネタには飛びつかずにはいられません。
6月に不変ストレージ(Immutable Storage)がパブリックプレビューしましたので早速試してみました。
不変ストレージは、データの変更削除が不可能なストレージです。
ただ、データの変更削除が不可能 とはいっても、どのような動作をするのかという疑問がありました。
例えば
そもそも不変ストレージってなぁに?
具体的にどういう制限をかけることができるの?
本当に変更削除できないの?
不変の設定自体を変えられてしまうのでは?
もし、設定変更された時に誰が変更したのか知りたい!どこをみればいいの?
私と同じような疑問を持った方には、ぜひ読んでいただきたいです。
※本記事では、不変ストレージの機能詳細と、その監視やセキュリティについて記載します。
不変ストレージとは
まず、そもそも不変ストレージとはどのような機能なのでしょうか。
- データの変更削除が不可能なAzure Blob ストレージ
- SEC 17a-4(f)、CFTC 1.31©-(d)、FINRA などの規制に準拠する際に利用可能
- 金融機関、医療、保険、メディア、公安、法的機関などで求められている機能
つまり、金融機関などのサービスを構築する場合に
データ改ざん防止のコンプライアンスに準拠したストレージとして
利用する事が出来るという事です。
では、不変ストレージを利用するには、どのように構築すればよいのでしょうか。
■不変ストレージの構築
- GPv2 アカウントの Blob Storage をサポート(Hot、Cool、Archive )
- Blob コンテナーでポリシーを設定
既存の GPv2 アカウントの Blob Storage に対しても設定する事ができます。
■不変ストレージの変更削除不可の対象ユーザー
この変更削除不可というのは、共有アクセス署名(SAS)やStored Access Policy のような
匿名ユーザーに対してに限らず、RBAC で管理されたユーザー(ストレージ管理者)に対しても有効になります。
■不変ストレージのポリシーの種類
不変にするためのポリシー設定は以下の2種類になります。
- 時間ベースの保持
指定した日数の間、変更削除不可 (日数範囲:1~146000)←MAX 400年!
ロック機能。ポリシーの監査。 - 訴訟ホールド
設定時から設定解除するまで変更削除不可
では、具体的にどのような制限をかけることが出来るのか、各ポリシーの詳細な機能を見てみましょう。
不変ストレージのポリシー詳細
■時間ベースの保持
コンテナのアクセスポリシーを[時間ベースの保持]で設定後、すぐに削除および変更は不可になります。
適用期間は日数で設定し、ファイルをアップロードした日時を起点に制限がかかります。
また、ロックをかけた場合、ポリシーを削除する事はできませんが、日数の延長は可能となります。
ただし、日数延長の編集上限(5回)があるので慎重に行ってください。
ポリシーの監査は、保持期間の設定変更、ロックの日時などが参照できます。
▼コンテナのアクセスポリシーを時間ベースで設定後、ロック、監査ログを確認。
最後にコンテナ内のファイル削除を試みる⇒削除できませんでした
■訴訟ホールド
コンテナのアクセスポリシーを[訴訟ホールド]で設定後、すぐに削除および変更は不可になります。
ポリシーの[訴訟ホールド]の設定を削除すると、変更削除が可能になります。
[時間ベースの保持]のようにロックやポリシーの監査はありません。
そのかわり、RBACでの管理制限やアクティビティログでの監査は可能です(後述)
▼コンテナのアクセスポリシーを[訴訟ホールド]で設定後、
コンテナ内のファイル削除を試みる⇒削除できませんでした
変更削除不可の影響範囲
コンテナ内のファイルが変更削除が不可になっていても、
コンテナごと削除されたら・・
Storageアカウントごと削除されたら・・
って気になりますよね。
これら、ポリシーが有効となっているコンテナは
コンテナ自身やこれらが含まれるStorageアカウントの削除は出来ません。
同様に、リソースグループの削除は出来ませんが
Storageアカウントを別のリソースグループへの移動は可能となります。
コンテナ内のドキュメントはもちろんの事、コンテナや、含まれるStorageアカウントや
リソースグループも削除出来なくるのはわかったのですが
不変ストレージのポリシー設定が変更削除されては意味がないのでは・・と
気になった方もいるかと思います。
その辺りはAzureの既存サービスで一挙解決です!
不変ストレージの監視・セキュリティ
■ポリシーの変更可能ユーザーの管理
[時間ベースの保持]であれば、ロックさえすればポリシーの削除は出来ないですが、期間の延長は可能です。
また、[訴訟ホールド]だとポリシー自体を削除されてしまう危険性があります。
このような事を防ぐ為、アクセス制御 (IAM) で管理者に制限をかける事ができます。
ストレージ管理者はRBACで管理します。
不変ストレージのポリシーを変更できないロールとして
[ストレージ BLOB データ共同作成者]や[ストレージ BLOB データ閲覧者]が
プレビューとして出ているので設定時に参考にしてください。
また、カスタムロールでポリシーを操作を許可しないようにする事も可能です。
■ポリシーの変更の監査ログ
ポリシーを誰が変更したか知りたい、そんな時はアクティビティログで見る事ができます。
[モニター] > [アクティビティログ] にログが蓄積されています。
ポリシーが変更された時にアラートメールを送るという設定をする事も可能です。
最後に
今までコンプライアンスに準拠する為にアプリ側でBlobに対して制御を組み込んでいたかと思います。
それが簡単に設定する事が可能となったことにより、様々な用途でStorageが利用しやすくなりました。
ポリシーの[時間ベースの保持][訴訟ホールド]は組み合わせて利用する事も可能なので
より柔軟に活用できるかと思います。
■おまけ
2018年7月24日に、弊社の会議室を利用してAzureもくもく会@新宿(@azumokushinjuku)が開催されます。
このもくもく会は月に1回ペースで開催しており、次回は私も参加しますのでお時間がある方はぜひお越しください!
一緒にAzureでもくもくしましょう!Microsoft MVP for Microsoft Azure のメンバーも参加する予定です!
■Azure関連記事
Azure Blob Storage で HTTPS カスタムドメインの静的 Web サイトを構築
Microsoft de:code 2018 MRPP出展レポート
【de:code2018レポート】HoloLens×AI×IoTセッションに登壇しました!
Azure SQLDabase にプライベートなネットワークからアクセスしてみよう
...Azure関連記事一覧へ