マネージド プライベート エンドポイントを使用して、開いている ワークスペース と 、受信パブリック アクセスを制限するワークスペースとの間にクロスワークスペース通信を確立できます。 たとえば、開いているワークスペース内のノートブックから受信制限付きワークスペース内のレイクハウスにアクセスする場合は、マネージド プライベート エンドポイントを設定して、2 つのワークスペース間のセキュリティで保護された接続を確立できます。
次の図では、開いているワークスペース (ワークスペース 1) に、制限されたワークスペース (ワークスペース 2) に接続するマネージド プライベート エンドポイントがあります。 このセットアップにより、ワークスペース 1 のノートブックは、パブリック アクセスに公開することなく、Lakehouse に安全にアクセスし、ワークスペース 2 の Delta Lake テーブルを読み取ることができます。
この記事では、Microsoft Fabric ポータルまたは API のワークスペース設定を使用して、マネージド プライベート エンドポイントを作成する方法について説明します。
手順 1: ワークスペースを作成する
Fabric でワークスペースを作成します。 このセットアップには、開いているワークスペースと制限されたワークスペースの両方が含まれます。 この記事では、ワークスペースを次のように参照します。
- ソース ワークスペースは、パブリック アクセス制限のない開いているワークスペースです。
- ターゲット ワークスペースは、受信パブリック アクセスを制限するワークスペースです。
この記事では、ワークスペースの完全修飾ドメイン名 (FQDN) についても説明します。 形式は次のとおりです。
https://{workspaceID}.z{xy}.w.api.fabric.microsoft.com
FQDN 形式では、 {workspaceID} はダッシュのないワークスペース ID で、 {xy} はワークスペース オブジェクト ID の最初の 2 文字です。 詳細については、「 ワークスペースへの接続」を参照してください。
ワークスペース ID を見つけるには、Fabric ポータルでワークスペース ページを開き、URL に groups/ した後に ID を確認します。 ワークスペースの FQDN は、ワークスペースの一覧表示またはワークスペースの取得 API を使用して見つけることもできます。
手順 2: マネージド プライベート エンドポイントを作成する
ソース (オープン) ワークスペースにマネージド プライベート エンドポイントを作成します。 ポータルまたは次の API で ワークスペース 設定を使用します。
POST https://{workspaceFQDN}/v1/workspaces/{workspaceID}/managedPrivateEndpoints
そのコードでは、 {workspaceFQDN} は {workspaceID}.z{xy}.w.api.fabric.microsoft.com。
たとえば、 POST https://aaaaaaaa000011112222bbbbbbbbbbbb.zaa.w.api.fabric.microsoft.com/v1/workspaces/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb/managedPrivateEndpointsと指定します。
targetPrivateLinkResourceId パラメーターは、制限付きワークスペース内の Azure Private Link サービスのリソース ID です。 ターゲット ワークスペースへのマネージド プライベート エンドポイントを作成するには、このリソース ID が必要です。
このリソース ID は、ワークスペースのリソース JSON を表示することで Azure で確認できます。 JSON 内のワークスペース ID が目的のターゲット ワークスペースと一致していることを確認します。
ワークスペース 2 の Private Link サービス所有者は、Azure プライベート リンク センターのマネージド プライベート エンドポイントの要求を承認する必要があります>接続待ち。
手順 3: 制限されたワークスペースにレイクハウスを作成する
次の Create Lakehouse API を使用して、ターゲット (制限付き) ワークスペースに Lakehouse を作成します。
POST https://{workspaceFQDN}/v1/workspaces/{workspaceID}/lakehouses
そのコードでは、 {workspaceFQDN} は {workspaceID}.z{xy}.w.api.fabric.microsoft.com。
たとえば、 POST https://aaaaaaaa000011112222bbbbbbbbbbbb.zaa.w.api.fabric.microsoft.com/v1/workspaces/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb/lakehousesと指定します。
手順 4: Delta Lake テーブルをレイクハウスにアップロードする
Azure Storage Explorer を使用して、Delta Lake テーブルのフォルダーを制限付き Lakehouse のマネージド ストレージにアップロードします。
Storage Explorer に移動し、左側のメニューで接続アイコンを選択し、 ADLS Gen2 コンテナーまたはディレクトリを選択します。
OAuth を使用してサインインします。
ストレージの表示名を入力し、BLOB コンテナーの URL を次の形式で入力します。
https://{workspaceFQDN}/{workspaceID}/{lakehouseID}そのコードでは、
{workspaceFQDN}は{workspaceID}.z{xy}.onelake.fabric.microsoft.com。たとえば、
POST https://aaaaaaaa000011112222bbbbbbbbbbbb.zaa.w.api.fabric.microsoft.com/v1/workspaces/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb/bbbbbbbb-1111-2222-3333-ccccccccccccと指定します。[接続] を選択します。 これで、ストレージがエクスプローラー ビューに表示されます。
[ テーブル ] フォルダーで、使用する Delta Lake テーブルをアップロードします。 この例では、 customers テーブルを使用します。
手順 5: ソース ワークスペースにノートブックを作成する
ノートブックを作成し、次のように制限付きレイクハウスに接続します。
ソース ワークスペースで、[ ノートブック] に移動します。
[ + 新しいノートブック] を選択します。
Spark ランタイムを選択します。
[エクスプローラー] ウィンドウでターゲット ワークスペースに接続します。
次のコードを貼り付けます。
from pyspark.sql import SparkSession # Read Delta Lake table from the restricted lakehouse by using the workspace DNS-based ABFSS URI df = spark.read.format("delta").load( "abfss://{WorkspaceID}@{WorkspaceFQDN}/{LakehouseID}/Tables/customers" )次の点を確認します。
- Azure Blob File System (ABFSS) ドライバーのパスは、Lakehouse の DNS とテーブルの場所と一致します。
- 開いているワークスペースと制限されたワークスペースの間のネットワーク アクセスは、プライベート エンドポイントを介して正しく確立されます。
ノートブックを実行します。 プライベート エンドポイントとアクセス許可を正しく設定すると、ノートブックが接続され、制限付き Lakehouse の Delta Lake テーブルの内容が表示されます。