NEXTSCAPE blog

株式会社ネクストスケープの社員による会社公式ブログです。ネスケラボでは、社員が日頃どのようなことに興味をもっているのか、仕事を通してどのような面白いことに取り組んでいるのかなど、会社や技術に関する情報をマイペースに紹介しています。

MENU

Azure Blob Storage の不変ストレージ

こんにちわ。
コンサルティング&テクノロジー部のAzureチームの開發(@mamikaihatsu)です。
Azureプレビューネタには飛びつかずにはいられません。

6月に不変ストレージ(Immutable Storage)がパブリックプレビューしましたので早速試してみました。

 

不変ストレージは、データの変更削除が不可能なストレージです。

ただ、データの変更削除が不可能 とはいっても、どのような動作をするのかという疑問がありました。

例えば

そもそも不変ストレージってなぁに?
具体的にどういう制限をかけることができるの?
本当に変更削除できないの?
不変の設定自体を変えられてしまうのでは?
もし、設定変更された時に誰が変更したのか知りたい!どこをみればいいの?

私と同じような疑問を持った方には、ぜひ読んでいただきたいです。
※本記事では、不変ストレージの機能詳細と、その監視やセキュリティについて記載します。

f:id:nextscape_blog:20210911200842p:plain



不変ストレージとは



まず、そもそも不変ストレージとはどのような機能なのでしょうか。

  • データの変更削除が不可能な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年!
    ロック機能。ポリシーの監査。
  • 訴訟ホールド
    設定時から設定解除するまで変更削除不可



では、具体的にどのような制限をかけることが出来るのか、各ポリシーの詳細な機能を見てみましょう。


不変ストレージのポリシー詳細

 

■時間ベースの保持

 

f:id:nextscape_blog:20210911200905p:plain 
コンテナのアクセスポリシーを[時間ベースの保持]で設定後、すぐに削除および変更は不可になります。
適用期間は日数で設定し、ファイルをアップロードした日時を起点に制限がかかります。
また、ロックをかけた場合、ポリシーを削除する事はできませんが、日数の延長は可能となります。
ただし、日数延長の編集上限(5回)があるので慎重に行ってください。
ポリシーの監査は、保持期間の設定変更、ロックの日時などが参照できます。


▼コンテナのアクセスポリシーを時間ベースで設定後、ロック、監査ログを確認。
最後にコンテナ内のファイル削除を試みる⇒削除できませんでした

f:id:nextscape_blog:20210911200936g:plain


 

■訴訟ホールド

 

f:id:nextscape_blog:20210911201011p:plain 
コンテナのアクセスポリシーを[訴訟ホールド]で設定後、すぐに削除および変更は不可になります。
ポリシーの[訴訟ホールド]の設定を削除すると、変更削除が可能になります。
[時間ベースの保持]のようにロックやポリシーの監査はありません。
そのかわり、RBACでの管理制限やアクティビティログでの監査は可能です(後述)


▼コンテナのアクセスポリシーを[訴訟ホールド]で設定後、
コンテナ内のファイル削除を試みる⇒削除できませんでした

f:id:nextscape_blog:20210911201033g:plain 


変更削除不可の影響範囲


コンテナ内のファイルが変更削除が不可になっていても、
コンテナごと削除されたら・・
Storageアカウントごと削除されたら・・
って気になりますよね。

f:id:nextscape_blog:20210911201101p:plain
これら、ポリシーが有効となっているコンテナは
コンテナ自身やこれらが含まれるStorageアカウントの削除は出来ません。

f:id:nextscape_blog:20210911201123p:plain
同様に、リソースグループの削除は出来ませんが
Storageアカウントを別のリソースグループへの移動は可能となります。



コンテナ内のドキュメントはもちろんの事、コンテナや、含まれるStorageアカウントや
リソースグループも削除出来なくるのはわかったのですが
不変ストレージのポリシー設定が変更削除されては意味がないのでは・・と
気になった方もいるかと思います。

その辺りはAzureの既存サービスで一挙解決です!


不変ストレージの監視・セキュリティ

 

■ポリシーの変更可能ユーザーの管理


[時間ベースの保持]であれば、ロックさえすればポリシーの削除は出来ないですが、期間の延長は可能です。
また、[訴訟ホールド]だとポリシー自体を削除されてしまう危険性があります。
このような事を防ぐ為、アクセス制御 (IAM) で管理者に制限をかける事ができます。

f:id:nextscape_blog:20210911201155p:plain 
ストレージ管理者はRBACで管理します。
不変ストレージのポリシーを変更できないロールとして
[ストレージ BLOB データ共同作成者]や[ストレージ BLOB データ閲覧者]が
プレビューとして出ているので設定時に参考にしてください。
また、カスタムロールでポリシーを操作を許可しないようにする事も可能です。


■ポリシーの変更の監査ログ


ポリシーを誰が変更したか知りたい、そんな時はアクティビティログで見る事ができます。

f:id:nextscape_blog:20210911201221p:plain 
[モニター] > [アクティビティログ] にログが蓄積されています。
ポリシーが変更された時にアラートメールを送るという設定をする事も可能です。


最後に


今までコンプライアンスに準拠する為にアプリ側で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関連記事一覧へ