Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Microsoft Fabric のネットワーク保護のアップデートについて

Microsoft Fabric のネットワーク保護のアップデートについて

Microsoft Data Analytics Day(Online) 勉強会 2025/08
https://sqlserver.connpass.com/event/364307/

発表資料

Avatar for Ryoma Nagata

Ryoma Nagata

August 27, 2025

More Decks by Ryoma Nagata

Other Decks in Technology

Transcript

  1. Microsoft MVP for Data Platform 永田 亮磨 (ZEAL CORPORATION) X:

    @ryomaru0825 Linkedin: ryoma-nagata-0825 Qiita: ryoma-nagata Microsoft Fabric の ネットワーク保護のアップデートについて
  2. 自己紹介 永田 亮磨(Ryoma Nagata) • Microsoft MVP for Data Platform

    • Databricks Solutions Architect Champion • 株式会社ジール • Microsoft Data Analytics Solution の導入など • 主な活動場所 • Qiita : @ryoma-nagata • X(Twitter) : @ryomaru0825 • connpass : • JSSUG (Japan SQL Server User Group) • JEDAI - The Data & AI Meetup 推しサービス(≒守備範囲) Databricks / Power BI / Machine Learning PurviewDG / Microsoft Fabric
  3. 3種のレイヤーによる Fabric 受信防御 Microsoft Fabric の受信防御は現在3つのレイヤーで構成可能(併用可能)  Entra ID による条件付きアクセス

     Fabric サービスに Entra ID でログインすることが出来る条件を指定  M365 を使用するときにもよく利用され、Fabric のネットワーク保護は第一にこれを使用することが推奨  Fabric テナント全体でのネットワーク保護  プライベートリンク:プライベート IP による通信で Fabric にアクセス  パブリックアクセスブロック:パブリック IP による通信を遮断する  Fabric ワークスペースでのネットワーク保護  プライベートリンク:プライベート IP による通信で Fabric ワークスペースにアクセス  パブリックアクセスブロック:パブリック IP による通信を遮断する Microsoft Entra ID 条件付きアクセス  デバイス制限  クライアント IP 制限 Fabric ワークスペース Fabric テナント ネットワーク保護  テナントレベルのプライベートリ ンク  パブリックアクセスブロック ネットワーク保護  ワークスペースレベルのプライ ベートリンク  パブリックアクセスブロック サービスへの認証 サービス全体 サービス内のリソース
  4. Fabric の受信防御の目的と、ドキュメントに記載された主な制限  プライベートリンク: 対象リソースに対してプライベート IP 経由の接続を提供 対象 サポート外となる主な機能 プライベートリンク

    パブリック受信アクセスブロック テナントレベル → 一括で全体統制 × Copilot × Power BI の PDF エクスポート × 使用状況メトリック、Fabric 容量メトリック アプリ × !オンプレミスデータゲートウェイ(インストール時にプラ イベートリンクを一時的に無効にする回避が必要) × Cosmos DB, Open Mirroring 以外のミラーリング × Warehouse ビジュアルクエリ × データフローGen1をソースにしたモデル ワークスペースレベル → プロジェクト個々で影響 小さく設定 × 仮想ネットワークデータゲートウェイまたはオンプレミス データゲートウェイを使用したデータパイプラインとコピー ジョブ(Power BI の接続は可能) × イベントストリームの利用 × スキーマ有効なレイクハウス × デプロイパイプライン × Fabric Portal 画面(!現時点は GUI 開発不可) × 既定のセマンティックモデル 共通 × スタータープール(数分の起動時間が必要になる) × OneLake カタログの統制タブ × 試用版容量 × ウェアハウスへのコピー - (ワークスペースレベルでの制限が大きく未知数)  パブリック受信アクセスブロック: Microsoft Fabric 内を含む Public ネットワーク経由での アクセスを完全にブロック(プライベートリンクは必須) プライベートIP パブリックIP Microsoft Fabric 仮想ネットワーク VPN Public NW プライベートIP パブリックIP Microsoft Fabric 仮想ネットワーク VPN Public NW
  5. テナント×ワークスペースのプライベートリンク設定の組み合わせの例 ネットワークとアクセスできるワークスペースの組み合わせ  A -> WS 1 ・・・テナントへのプライベートリンクにアクセスできない場合、WSプライベートリンクのみアクセス可  B

    -> WS 1, 2, 3・・・同上  C -> WS 3,4・・・ワークスペースレベルでパブリックアクセスブロックが無効なワークスペースにはテナントプライベートリン からアクセス可能  外部ネットワーク -> × テナントレベルのパブリックアクセスブロック有効のため テナントとワークスペースのプライベート リンクを使用する - Microsoft Fabric | Microsoft Learn
  6. Fabric 送信保護 マネージド仮想ネットワークとパブリック送信アクセスブロックを使用して外部へのアクセスを制御  データにアクセスするだけでなく、送信することへの対策 Microsoft Fabric Storage ワークスペース -

    マネージド仮想ネットワーク:無効 - アウトバウンドブロック:無効 共用の仮想ネットワーク Microsoft の管理するネットワーク Public IP にアクセス Synapse Analytics Azure SQL DB Fabric Engine マネージド仮想ネットワーク マネージド プライベートエンドポイント Private IP にアクセス Fabric Engine マネージド仮想ネットワーク マネージド プライベートエンドポイント Fabric Engine ワークスペース - マネージド仮想ネットワーク:有効 - アウトバウンドブロック:無効 ワークスペース - マネージド仮想ネットワーク:有効 - アウトバウンドブロック:有効 プライベートリンク パブリックIP マネージド仮想ネットワーク 外へのアクセス不可 OneLake (別のワークスペース)
  7. パブリック送信アクセスブロックのシナリオ(現時点)  ショートカット  プライベートエンドポイント経由×OneLake限定  (私の環境では不可)  ノートブック 

    プライベートエンドポイント経由でAzure PaaS また はOneLakeデータアクセス  パブリックライブラリからの取得不可  レイクハウス  SQL 分析エンドポイントは利用不可  利用不可の機能  CICD : Git 、配置パイプライン 実際には作成不可 ワークスペースの送信アクセス保護の概要 - Microsoft Fabric | Microsoft Learn ワークスペースの送信アクセス保護 - シナリオ - Microsoft Fabric |Microsoft Learn
  8. テナントレベルの保護設定の概要フロー - プライベートリンク 1. テナント設定を変更 3. 2を参照するプライベートエ ンドポイントを作成 2. プライベートリンクサービ

    スを作成 管理ポータルにアクセスし、トグルをオン (Fabric 管理者ロールが必要) テナント ID を使用してカスタムテンプレート をデプロイ 「Microsoft.PowerBI/privateLink ServicesForPowerBI」を選択して、 プライベートエンドポイントを作成 テナント レベルのプライベート リンクを設定して使用する - Microsoft Fabric | Microsoft Learn
  9. テナントレベルの保護設定の概要フロー - パブリックアクセスブロック 1. プライベートリンク経由で Fabricにアクセス 2. テナント設定を変更 パブリック IP

    経由でアクセスしている場 合、設定できない 管理ポータルにアクセスし、トグルをオン (Fabric 管理者ロールが必要) テナント レベルのプライベート リンクを設定して使用する - Microsoft Fabric | Microsoft Learn
  10. ワークスペースレベルの保護設定の概要フロー - プライベートリンク 1. テナント設定を変更 3. 2を参照するプライベートエ ンドポイントを作成 2. プライベートリンクサービ

    スを作成 管理ポータルにアクセスし、トグルをオン (Fabric 管理者ロールが必要) テナント ID とワークスペース ID を使用して カスタムテンプレートをデプロイ 「Microsoft.Fabric/privateLinkSer vicesForFabric」を選択して、プライ ベートエンドポイントを作成 ワークスペース レベルのプライベート リンクを設定して使用する - Microsoft Fabric | Microsoft Learn
  11. ワークススペースレベルの保護設定の概要フロー - パブリック受信/送信アクセスブロック 1. テナント設定を変更 python ノートブックで変更可能 設定をするワークスペースとは別のワークス ペースで実行することを推奨 ※予期せぬ切断を回避

    ワークスペースの送信アクセス保護を設定する - Microsoft Fabric | Microsoft Learn ワークスペース レベルのプライベート リンクを設定して使用する - Microsoft Fabric | Microsoft Learn 2. REST API でワークスペース 設定を変更(将来的にはUI) 管理ポータルにアクセスし、トグルをオン (Fabric 管理者ロールが必要)
  12. Fabric python notebook による変更サンプル from sempy import fabric import json

    workspaceID = fabric.resolve_workspace_id(workspace=“<ワークスペース名>") url = f"https://api.fabric.microsoft.com/v1/workspaces/{workspaceID}/networking/communicationPolicy" client = fabric.FabricRestClient() responce = client.get(url) data = json.loads(responce.content) print("変更前") print(data) # 以下どちらかまたは併用で指定 # # パブリック受信ブロック # payload = { # "inbound": { # "publicAccessRules": { # "defaultAction": "Deny" # } # } # } # # パブリック送信ブロック payload = { "outbound": { "publicAccessRules": { "defaultAction": "Deny" } } } response = client.put(url,json=payload) print("変更後") responce = client.get(url) data = json.loads(responce.content) print(data)
  13. 複雑な仕様を踏まえて考えたこと 最も影響が少なく、現状メリットのあるユースケースは 「パブリックアクセスは有効にしながら、ワークスペースプライベートリンクのみを使用 すること」  テナントレベルのプライベートリンクとパブリックアクセスブロック→既存ワークロードやオンプレミスデータゲートウェイ に影響  ワークスペースプライベートアクセスブロック→ポータルUIを使いたいので今は非現実的 

    パブリックアクセスは有効でもEntra ID の条件付きアクセスで防御するのがはじめに検討するべきステップ  M365 は広く使われているが、 パブリックアクセスブロックではなく、条件付きアクセスを基本に、Azure Peering Service(Microsoft Peering) で通信経路をプライベート化するのが定石 → プライベート接続が必要なシーンでのみプライベートリンクを経由する構成 →セキュリティ対策としてではなく、可用性を向上させるための施策としてプライ ベートリンクを使用する
  14. プライベート接続が必要なシーンの具体例  Fabric SQL Endpoint は インターネットへの 1433 接続が必要だが外部への データベース通信が許可されない環境が多々ある

     セキュリティが厳しい組織では SQL Server ポートで知られる1433 はパブリック IP 宛には許可されていないこと が多い  この対策として Azure SQL でプライベートリンクを導入したり、 プライベートリンクの運用が難しい場合には Azure の SQL ゲートウェイの IP に対して通信許可を開けていたりとむずがゆい構成をとる場合もあった  ただし、 Fabric は Azure のように SQL ゲートウェイの 固定IP が公開されていない&プライベートリンクは影響 が大きすぎるという課題があった
  15. 補足)Private DNSゾーンに登録されるレコードについて  プライベートリンクを作成する際、 DNS 統合を選択しているとAレコードが追加 される。  SQL エンドポイントの場合、SQLエンドポイント接続文字列に.z{xy}を追加した値がエイリアスになる

    *xy=ワークスペースIDの先頭2文字 # エンドポイント用途 FQDN 1 ワークスペースAPI https://{workspaceid}.z{xy}.w.api.fabric.microsoft.com 2 OneLake API https://{workspaceid}.z{xy}.onelake.fabric.microsoft.com 3 ADLS互換API https://{workspaceid}.z{xy}.dfs.fabric.microsoft.com 4 blob API https://{workspaceid}.z{xy}.blob.fabric.microsoft.com 5 SQL Endpoint接続 https://{workspaceid}.z{xy}.c.fabric.microsoft.com エイリアス: https://{SQLエンドポイント接続文字列}.z{xy}.datawarehouse.fabric.microsoft.com)