NEWSニュース&ブログ

【Microsoft Fabric】Azure Private Linkによるプライベート環境実装手順

この記事は最終更新から1年以上経過しています。内容が古くなっている可能性があります。

投稿日:2024/03/06

背景

Microsoft Fabric(以下、Fabric)が一般提供(GA)される前から、情報収集や技術検証を行ってきました。
【Microsoft Fabric】Lakehouseへデータを取り込んでみた
【Microsoft Fabric】ショートカット機能を使ってみた
【Microsoft Fabric】データを加工して可視化してみた
【Microsoft Fabric】データパイプラインを使ってみた
しかし、SaaSであるが故にパブリックな環境に存在してしまう点が懸念材料でした。
これまでも数多くのお客様にデータ分析基盤の環境を提供してきましたが、外部からのアクセス制限は避けて通れません。
そこで、2024/2/28にアップロードされた「Announcing Azure Private Link Support for Microsoft Fabric in Public Preview」の情報を得て、技術検証を進めることにしました。

Azure Private Linkとは

公式Doc(Azure Private Link とは)から一部引用です。
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
Azure Private Link を使用すると、お使いの仮想ネットワーク内のプライベート エンドポイント経由で Azure PaaS サービス (Azure Storage、SQL Database など) と Azure でホストされている顧客所有の、またはパートナー サービスにアクセスできます。
仮想ネットワークとサービスの間のトラフィックは、Microsoft のバックボーン ネットワークを通ります。
パブリック インターネットにサービスを公開する必要はありません。
お使いの仮想ネットワークに独自のプライベート リンク サービスを作成して顧客に提供することができます。

┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
つまりは、インターネットを経由せず、自身で作成した仮想ネットワークからAzureのPaaSサービスに直接アクセスすることができる機能です。
この機能を使うことで、トラフィックがAzure内のネットワークで行われるため、プライベートな環境を構築することができます。

実装手順

以下、実装するリソースの全体像となります。

Fabricへの接続は、Vnet内に作成したAzure VMからのみとし、他のトラフィックは許可しない状態とします。
また、検証時の前提条件も記載します。
前提:
 ・Fabricの試用版を登録していること
 ・実装するアカウントが Fabric管理者であること

実装手順は以下の通りです。

 ①Fabricのプライベート エンドポイントの設定

 ②Fabricに対してのAzure Private Linkサービスの作成

 ③Vnetの作成

 ④VMの作成

 ⑤プライベート エンドポイントの作成

 ⑥Bastionの作成と接続

 ⑦VMからFabricへアクセス

 ⑧Fabricのパブリック アクセスを無効化

①Fabricのプライベート エンドポイントの設定

まずはFabricの管理者としてFabricにサインインします。

右上の歯車マークから、[管理ポータル]をクリックします


Fabricの管理者であれば、テナント設定を確認することができるはずです。
色々な設定項目がありますが、今回は[高度なネットワーク] > [Azure Private Link]を有効化します。

②Fabricに対してのAzure Private Linkサービスの作成

次にAzure Private Linkサービスを作成します。
Azure Private Linkサービスとは、Azure Private Linkを使ってAzure内に作成したサービスにプライベートなアクセスを提供する仕組みになります。
Azureポータルに移動して、リソースグループからテンプレートのデプロイを行います。

[エディターで独自のテンプレートを作成する]をクリックします。

エディターが表示されますので、以下のARMテンプレートの情報を貼り付けましょう。

{
 "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
 "contentVersion": "1.0.0.0",
 "parameters": {},
 "resources": [
               {
                 "type":"Microsoft.PowerBI/privateLinkServicesForPowerBI",
                 "apiVersion": "2020-06-01",
                 "name" : "<任意のリソース名>",
                 "location": "global",
                 "properties" : 
                                 {
                                   "tenantId": "<テナントのオブジェクトID>"
                                 }
                }
               ]
}


なお、テナントのオブジェクトIDはAzureポータルの[Microsoft Entra ID] > [プロパティ]から確認することができます。
詳細手順はこちらをご参照ください。

③Vnetの作成

基本はデフォルト設定で作成します。
Vnet名はVnet01、アドレス空間が10.0.0.0/16、サブネットはdefaultのみで10.0.0.0/24です。

④VMの作成

検証用なのでイメージやサイズの価格が安価なものに設定し、他は既定値で作成します。

⑤プライベート エンドポイントの作成

Fabricに接続するためのプライベート エンドポイントを作成します。
Azureポータルからプライベート エンドポイントの画面に遷移し、任意の名前を入力します。

リソースの設定では、[マイディレクトリ内のAzureリソースに接続します。]を選択します。
リソースの種類で[Microsoft.PowerBI/privateLinkServicesForPowerBI]を選択し、
リソースでは ② で作成したAzure Private Linkサービスが表示されるはずです。
対象サブリソースは[tenant]を選択しましょう。

仮想ネットワークでは、③で作成したVnetとサブネットを選択し、他は既定値です。
プライベートDNS統合も既定値で、プライベート エンドポイントを作成します。

⑥Bastionの作成と接続

Azure Bastionを使用することで、プライベートIPアドレスを介してVMに安全に接続することができます。
③で作成したVnet内にBastion用のサブネットを作成します。

次に④で作成したVMの[接続] > [Bastionを介した接続] > [Bastion のデプロイ]でBastionを作成します。

⑦VMからFabricへアクセス

まずは、Bastion経由でVMに接続し、コマンドラインからnslookupを実行してプライベートIPアドレスが返されることを確認します。

次にブラウザーを開き、Fabricに接続できることを確認します。

⑧Fabricのパブリック アクセスを無効化

パブリックインターネットからこの設定は行えません。
以下、パブリックネットワークでの画面で設定を加えた時の出力です。

VMのFabric画面から、右上の歯車マークから、[管理ポータル]をクリックします。
高度なネットワークの[パブリック インターネット のアクセスのブロック]を有効化します。

有効化前の注意表示にもある通り、試用版容を含む一部のFabric アイテムはサポートされていないようです。

有効化には20分程の時間を要するので、しばらく待機します。
設定が完了したら、ローカルPC(パブリック)からのアクセスはできなくなっており、VMからのアクセスのみが可能となっていることが確認できます。

■パブリックネットワークからのアクセス時



■Bastionからのアクセス時


まとめ

実装手順自体は難しくありませんが、テナント全体の設定になるため、影響範囲が広い点に注意が必要です。
また、リリースされたばかりで制約も多いため、情報のキャッチアップと検証は引き続き行っていきたいと思います。

中川 智文(2022年入社)
株式会社システムサポート フューチャーイノベーション事業本部 ソリューションサービス事業部所属
Oracle Database, SQL Serverを中心とした案件に従事