Microsoft セキュリティ観点からみた Microsoft Fabric の使いどころ

# 目次
[はじめに](#はじめに)
[Microsoft Fabric とは](#Microsoft-Fabric-とは)
[Microsoft セキュリティとの関係性](#Microsoft-セキュリティとの関係性)
[参考 URL](#参考-URL)
[おわりに](#おわりに)

# はじめに
2023 年 5 月に開催された Microsoft Build で **Microsoft Fabric** と呼ばれるサービスが発表されました。
一言で言うとデータ分析の SaaS なので、普段 Microsoft 365 セキュリティを運用している私のような立場ではそもそも関連が薄いサービスではあるのですが、そのような立場であえてこのサービスを評価した感想と、サービスの使いどころについてまとめたいと思います。

最初に結論を言うと、Microsoft Fabric を Microsoft セキュリティの運用で活用したり連携したりするシナリオはほぼありませんでした。それでも、少しくらいあるので一応まとめておきます。

また、Microsoft Fabric を Azure のデータ分析の素人が評価・レビューしている記事は多くないと思いますので、同じようなレベル感の方が Microsoft Fabric をざっくり理解するのに参考になれば幸いです。

# Microsoft Fabric とは
関連動画やドキュメントを色々見ましたがどれも理解するのが難しいと感じましたので、最初に自分なりの説明をしてみたいと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563573/c8d9ab51-e4aa-f779-8a19-19f44d1207eb.png)

### Microsoft Fabric は Power BI のためのサービス
詳しい人に怒られそうですが、いったんこのように理解していいと思います。

最終的にやりたいことは Power BI でデータを可視化し分析することであって、そのためのデータ準備を簡単に出来るようにしたい、というサービスが Microsoft Fabric です。
Power BI レポートの作成は (見た目にこだわらなければ) データの準備までのプロセスがほぼすべてですよね。分析に適したデータセットがあればレポートは一瞬で作成できるとも言えますし、データの準備こそが大変とも言えます。

### 結局は、データの準備を簡単にしたい！ということ
分析対象のデータは CSV のようなファイルとしてローカルやクラウド存在することもありますし、データベース (Azure SQL など) やデータウェアハウス (Azure Synapse Analytics) として存在することもあります。また、IoT などのリアルタイム分析に特化した Azure Data Explorer や Azure Log Analytics にデータがある場合もあります。これらの様々な場所にあるデータを分析しやすい形に整えるために、Azure Data Factory や Azure Synapse Analytics があり、さらに IoT などのリアルタイムでデータを統合（ストリーミング）するために Azure Event Hub や Azure Stream Analytics などがあります。

データを可視化したいだけ（データの準備なんてできればやりたくない）なのに、これらの PaaS を理解して使いこなすことのハードルは高いですよね。
Microsoft Fabric はこれらの操作を統合された SaaS として一通りできるようにしたもの、と理解できます。
ただ、ちょっと触ってみた感じでは、"簡単に" とは言えず、それなりの学習コストは必要になりそうです。

### データの置き場所は OneLake
Microsoft Fabric ではデータの置き場所は OneLake と呼ばれる仮想的なストレージが使われます。
OneLake に直接ファイルをアップロードすることもできますし、ADLS Gen2 や Amazon S3 などの別のクラウド ストレージのファイルのショートカットを作成することもできます。ショートカットが作成されたストレージにも OneLake のアドレスからアクセスできるようになるため、仮想的なストレージと表現しています。

### 最重要コンポーネントはレイクハウス？
OneLake 上に構築される "レイクハウス" と呼ばれるコンポーネントが重要です。
レイクハウスには CSV のようなファイルをアップロード（OneLake のアドレスが付与されます）したり、テーブルに読み込ませて SQL エンドポイントを作成して SQL クエリを実行したりできます。

Microsoft Fabric の最も一般的な使い方は、レイクハウスのテーブル上のデータを SQL クエリして Power BI レポートを作成するシナリオになりそうです。

イメージとしては下記の 3 ステップです。
① レイクハウスで "ファイル" に CSV ファイルをアップロード
② レイクハウスで "テーブル" に変換
③ テーブルに SQL クエリして Power BI レポートを作成

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563573/c47e556a-dc01-3e78-9fd9-00cf73e177f2.png)

レイクハウス上のシンプルなデータ処理（上記の ① と ②）はレイクハウス上の UI 操作からでも出来ますが、より複雑な処理（変換など）を担当するのが Dataflow Gen2 やデータ パイプラインと呼ばれるサービスです。
レイクハウスが Microsoft Fabric の中心なので、何から始めていいか分からない時はレイクハウスを作成することから始めるのが良いと思います。（複雑なことをしなければレイクハウスだけでも色々できる）

# Microsoft セキュリティとの関係性
ここまで Microsoft Fabric 単体の説明をしてきましたが、ここから先は Microsoft セキュリティ界隈の方向けに押さえていただきたいポイントを紹介します。

### 基本的には関係ないし、連携もしない
いきなり身も蓋もないのですが、Microsoft 365 Defender や Microsoft Sentinel といったセキュリティ関連サービスとの関係性はありません。

最初に Microsoft Fabric に興味をもったきっかけは "KQL データベース" というキーワードがあったため (セキュリティ調査では KQL と呼ばれるクエリを使用することがある) なのですが、色々調べてみて結論としてはセキュリティ調査で使用するデータを連携するシナリオは考慮されていませんでした。
例えば Sentinel や Log Analytics のデータを OneLake にショートカット作成してレイクハウス上のデータと結合して・・みたいなシナリオはありません。

### でも、KQL 使える！
前のセクションではレイクハウスが Microsoft Fabric の中心と書いたのですが、レイクハウス以外にも KQL データベースという Microsoft Fabric のコンポーネントがあり、ここにデータを溜めることで KQL を使用して分析したり Power BI レポートを作成することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563573/7b94c2e1-90af-c1e8-3337-3e72ffc99bfe.png)

KQL データベースは Real-Time Analytics というカテゴリのリソースになっているのですが、IoT などのリアルタイムでストリーミングされる大容量のデータ分析用途としての使用が想定されています。
もともと想定された用途とは少し違うかもしれませんが、セキュリティ調査で慣れている KQL を使用してデータ分析したい場合は KQL データベースを使用できます。
SQL より KQL が得意という人がどれだけいるか分かりませんが、使い慣れた言語を使えるのはうれしいですよね。

### Sentinel と Fabric KQL データベースを結合してクエリ
Sentinel（Log Analytics）も KQL データベースも両方 KQL を使用してデータ分析を行うサービスですが、同じく KQL を使用するサービスである Azure Data Explorer でクラスターを作成すれば、Sentinel と KQL データベースの両方に接続してテーブルを結合して相関分析を行うことができました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563573/f5839696-f64f-8d90-432f-ca8bebfbb101.png)
出来れば Sentinel にすべてのデータをまとめたいところですが、セキュリティ調査に関係がないログまでコストが大きい Sentinel に入れる必要もないので、どうしてもという場合はこのような解決策もあり得そうです。

Azure Data Explorer でテーブルを読み込むには "接続の追加" から各サービスの URI を入力します。
KQL データベースは「クエリ URI」をコピーするだけでいいのですが、Sentinel（Log Analytics）の場合は Azure サブスクリプション ID やワークスペース名などから下記のフォーマットで自分で URI を作成します。

Azure Data Explorer を使用して Azure Monitor のデータのクエリを実行する
https://learn.microsoft.com/ja-jp/azure/data-explorer/query-monitor-data
~~~
https://ade.loganalytics.io/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/microsoft.operationalinsights/workspaces/<workspace-name>
~~~

### データのアーカイブ領域として検討の余地あり
セキュリティ アラートやログ データを Microsoft Sentinel に溜める場合、1 日 1 GB のデータ取り込むとすると 2 万円/月かかり、さらに 1 年間データ保持する要件を加えると 6,000 円/月程度の費用がかかります。

前述の通り Microsoft Fabric は OneLake と呼ばれる仮想ストレージを使用しますが、OneLake は Azure Data Lake Storage Gen2 というサービス上に作られており、データの保管用途としてはかなり安価で、1TB のデータを保管して月数千円程度です。

:::note info
正確なコストは下記の URL から計算してください。
https://azure.microsoft.com/ja-jp/pricing/calculator/
:::

これまで BLOB ストレージに格納した JSON などのファイルは直接クエリ出来ないという大きなデメリットがあったのですが、今回 Microsoft Fabric の登場により ADLS Gen2 上のファイルを "簡単に" KQL データベースに読み込ませて KQL クエリを実行できるようになりました。

Sentinel 上のデータと結合させるには前述の Azure Data Explorer クラスターを作成する必要がありますが、そもそもクエリ出来ない状態と比べたらものすごくメリットがあると思います。

ただし、今回は割愛しますが Microsoft Fabric 自体の料金もあるので、Sentinel のデータサイズとの兼ね合いでトータルで判断する必要があります。

# 参考 URL
Microsoft Fabric のキャッチアップに役立った URL を載せておきます。

Microsoft Fabric のドキュメント
https://learn.microsoft.com/ja-jp/fabric/

Microsoft Fabric の概要　※ラーニング パス
https://learn.microsoft.com/ja-jp/training/paths/get-started-fabric/

【D1-5】Microsoft Fabric - AI 時代のデータ分析（概要編）
https://www.youtube.com/watch?v=W5T_7FC6F88

【A1-6】Microsoft Fabric - AI 時代のデータ分析（詳細編）
https://www.youtube.com/watch?v=jPzELeyv4jA

Microsoft Fabric を利用して Blob ストレージに格納された Azure ログを分析する
https://qiita.com/YoshiakiOi/items/3386a34bf41bcb72678b

# おわりに
今回は Microsoft セキュリティと Microsoft Fabric という異質な領域を無理やり結び付けて評価してみました。
ばしっとはまるシナリオは今のところないのですが、「何が出来ないかが分かる」というのもとても大事なことだと思いますので、もしふわっと Microsoft Fabric が気になっていた人がいたら参考になれば幸いです。