次の方法で共有


信頼されたワークスペース アクセス

Fabric では、ファイアウォールが有効な Azure Data Lake Storage (ADLS) Gen 2 アカウントに安全な方法でアクセスできます。 ワークスペース ID を持つ Fabric ワークスペースは、選択した仮想ネットワークと IP アドレスから、パブリック ネットワーク アクセスが有効になっている ADLS Gen2 アカウントに安全にアクセスできます。 ADLS Gen2 のアクセスを特定の Fabric ワークスペースに制限できます。

信頼されたワークスペース アクセスを持つストレージ アカウントにアクセスする Fabric ワークスペースには、要求に対する適切な承認が必要です。 承認は、組織アカウントまたはサービス プリンシパルの Microsoft Entra 資格情報でサポートされています。 リソース インスタンス ルールの詳細については、「Azure リソース インスタンスからのアクセスを許可する」を参照してください。

特定の Fabric ワークスペースからファイアウォールが有効なストレージ アカウントへのアクセスを制限および保護するには、特定の Fabric ワークスペースからのアクセスを許可するようにリソース インスタンス ルールを設定します。

Note

信頼されたワークスペース アクセスは一般提供されていますが、F SKU 容量でのみ使用できます。 Fabric サブスクリプションの購入の詳細については、「Microsoft Fabric サブスクリプションの購入」を参照してください。 評価版容量では、信頼されたワークスペース アクセスはサポートされていません。

この記事では、次の方法について説明します:

  • ADLS Gen2 ストレージ アカウントで 信頼されたワークスペース アクセスを構成します。

  • Fabric レイクハウスに、信頼されたワークスペース アクセスが有効な ADLS Gen2 ストレージ アカウントに接続する OneLake ショートカットを作成します。

  • 信頼されたワークスペース アクセスが有効になっている、ファイアウォールが有効な ADLS Gen2 アカウントに直接接続するための データ パイプラインを作成します。

  • T-SQL COPY ステートメントを使用して、信頼されたワークスペース アクセスが有効になっているファイアウォールが有効な ADLS Gen2 アカウントから倉庫にデータを取り込みます。

ADLS Gen2 で信頼されたワークスペース アクセスを構成する

ARM テンプレートを使用したリソース インスタンス ルール

ワークスペース ID に基づいてストレージ アカウントにアクセスするように、特定の Fabric ワークスペースを構成できます。 リソース インスタンス ルールを作成するには、リソース インスタンス ルールを使用して ARM テンプレートをデプロイします。 リソース インスタンス ルールを作成するには:

  1. Azure portal にサインインし、[カスタム デプロイ] に移動します。

  2. [Build your own template in the editor](エディターで独自のテンプレートを作成する) を選択します。 リソース インスタンス ルールを作成するサンプル ARM テンプレートについては、「ARM テンプレートのサンプル」を参照してください。

  3. エディターでリソース インスタンス ルールを作成します。 完了したら、[確認と作成] を選択します。

  4. 表示される [基本] タブで、必要なプロジェクトとインスタンスの詳細を指定します。 完了したら、[確認と作成] を選択します。

  5. 表示された [確認と作成] タブで、概要を確認し、[作成] を選びます。 ルールはデプロイ用に送信されます。

  6. デプロイが完了したら、リソースに移動できます。

Note

  • Fabric ワークスペースのリソース インスタンス ルールは、ARM テンプレートまたは PowerShell を使用してのみ作成できます。 Azure portal を使用した作成はサポートされていません。
  • Fabric ワークスペース resourceId には、subscriptionId "00000000-0000-0000-0000-000000000000" を使用する必要があります。
  • Fabric ワークスペースのワークスペース ID は、アドレス バーの URL を使用して取得できます。

構成されたリソース インスタンス ルールを示すスクリーンショット。

ARM テンプレートを使用して作成できるリソース インスタンス ルールの例を次に示します。 完全実例については、「ARM テンプレートのサンプル」を参照してください。

"resourceAccessRules": [

       { "tenantId": " aaaabbbb-0000-cccc-1111-dddd2222eeee",

          "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/Fabric/providers/Microsoft.Fabric/workspaces/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"
       }
]

PowerShell スクリプトを使用したリソース インスタンス ルール

次のスクリプトを使用して、PowerShell を使用してリソース インスタンス ルールを作成できます。

$resourceId = "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/Fabric/providers/Microsoft.Fabric/workspaces/<YOUR_WORKSPACE_GUID>"
$tenantId = "<YOUR_TENANT_ID>"
$resourceGroupName = "<RESOURCE_GROUP_OF_STORAGE_ACCOUNT>"
$accountName = "<STORAGE_ACCOUNT_NAME>"
Add-AzStorageAccountNetworkRule -ResourceGroupName $resourceGroupName -Name $accountName -TenantId $tenantId -ResourceId $resourceId

信頼されたサービスの例外

選択した仮想ネットワークと IP アドレスからパブリック ネットワーク アクセスが有効になっている ADLS Gen2 アカウントに対して信頼されたサービス例外を選択した場合、ワークスペース ID を持つ Fabric ワークスペースはストレージ アカウントにアクセスできます。 信頼されたサービス例外チェックボックスがオンの場合、ワークスペース ID を持つテナントの Fabric 容量内のすべてのワークスペースは、ストレージ アカウントに格納されているデータにアクセスできます。

この構成は推奨されるものではなく、サポートは今後廃止される可能性があります。 特定のリソースにアクセスを許可するには、リソース インスタンス ルールを使用することをお勧めします。

ストレージ アカウントを信頼されたサービス アクセス用に構成できるのは誰ですか?

ストレージ アカウント (Azure RBAC ロール) の共同作成者は、リソース インスタンス ルールまたは信頼されたサービス例外を構成できます。

Fabric で信頼されたワークスペース アクセスを使用する方法

現在、信頼されたワークスペース アクセスを使用して、セキュリティで保護された方法で Fabric からデータにアクセスするには、次の 3 通りの方法があります:

  • Fabric レイクハウスに新しい ADLS ショートカットを作成すると、Spark、SQL、および Power BI でデータの分析を開始できます。

  • ファイアウォールが有効な ADLS Gen2 アカウントに直接アクセスするための、信頼されたワークスペース アクセスを活用する データ パイプラインを作成 できます。

  • T-SQL Copy ステートメントを使用して、信頼されたワークスペース アクセスを利用して、Fabric ウェアハウスにデータを取り込むことができます。

次のセクションでは、これらの方法を使用する方法について説明します。

信頼されたワークスペース アクセスを持つストレージ アカウントへの OneLake ショートカットを作成する

Fabric でワークスペース ID を構成し、ADLS Gen2 ストレージ アカウントで信頼されたアクセスを有効にすると、Fabric からデータにアクセスするための OneLake ショートカットを作成できます。 Fabric レイクハウスに新しい ADLS ショートカットを作成するだけで、Spark、SQL、Power BI を使用してデータの分析を開始できます。

前提条件

  • Fabric 容量に関連付けられている Fabric ワークスペース。 「ワークスペース ID」を参照してください。
  • Fabric ワークスペースに関連付けられているワークスペース ID を作成します。
  • ショートカットの認証に使用されるユーザー アカウントまたはサービス プリンシパルには、ストレージ アカウントに対する Azure RBAC ロールが必要です。 プリンシパルには、ストレージ アカウント スコープのストレージ BLOB データ共同作成者、ストレージ BLOB データ所有者、またはストレージ BLOB データ閲覧者ロール、またはストレージ アカウント スコープの Storage Blob Delegator ロールと、コンテナー内のフォルダー レベルでのアクセス権が必要です。 フォルダー レベルでのアクセスは、コンテナー レベルの RBAC ロールまたは特定のフォルダー レベルのアクセスを通じて提供できます。
  • ストレージ アカウントの リソース インスタンス ルール を構成します。

Note

  • 前提条件を満たすワークスペース内の既存のショートカットは、信頼されたサービス アクセスのサポートを自動的に開始します。
  • ストレージ アカウントには DFS URL ID を使用する必要があります。 以下に例を示します: https://StorageAccountName.dfs.core.windows.net

手順

  1. まず、レイクハウスに新しいショートカットを作成します。

    [新しいショートカットの作成] メニュー項目のスクリーンショット。

    新しいショートカット ウィザードが開きます。

  2. [外部ソース] で、[Azure Data Lake Storage Gen2] を選択します。

    外部ソースとして Azure Data Lake Storage Gen2 を選択している画面を示すスクリーンショット。

  3. 信頼されたワークスペース アクセスで構成されているストレージ アカウントの URL を指定し、接続の名前を選択します。 [認証の種類] で、[組織アカウント] または [サービス プリンシパル] を選択します。

    ショートカット ウィザードの URL の仕様を示すスクリーンショット。

    終わったら、 [次へ] を選択します。

  4. ショートカット名とサブ パスを指定します。

    ショートカット ウィザードのサブ パス定義を示すスクリーンショット。

    完了したら、 [作成] を選択します。

  5. レイクハウス ショートカットが作成され、ショートカットでストレージ データをプレビューできます。

    レイクハウス ショートカットを使用してストレージ データをプレビューしている画面を示すスクリーンショット。

Fabric アイテムで信頼されたワークスペース アクセスを持つストレージ アカウントへの OneLake ショートカットを使用する

Fabric の OneCopy を使用すると、すべての Fabric ワークロードからの信頼されたアクセス権を持つ OneLake ショートカットにアクセスできます。

  • Spark: Spark を使用すると、OneLake ショートカットからデータにアクセスできます。 Spark でショートカットを使用すると、OneLake でフォルダーとして表示されます。 フォルダー名を参照するだけでデータにアクセスできます。 Spark ノートブックで信頼されたワークスペース アクセスを持つストレージ アカウントへの OneLake ショートカットを使用できます。

  • SQL 分析エンドポイント: レイクハウスの [テーブル] セクションで作成されたショートカットは、SQL 分析エンドポイントでも使用できます。 SQL 分析エンドポイントを開き、他のテーブルと同様にデータのクエリを実行できます。

  • パイプライン: データ パイプラインでは、信頼されたワークスペース アクセスを持つストレージ アウントへのマネージド ショートカットにアクセスできます。 データ パイプラインを使用して、OneLake ショートカット経由でストレージ アカウントの読み取りまたは書き込みを行えます。

  • Dataflows v2: Dataflows Gen2 を使用して、信頼されたワークスペース アクセスを持つストレージ アカウントへのマネージド ショートカットにアクセスできます。 Dataflows Gen2 では、OneLake ショートカット経由でストレージ アカウントの読み取りまたは書き込みを行えます。

  • セマンティック モデルとレポート: レイクハウスの SQL 分析エンドポイントに関連付けられている既定のセマンティック モデルでは、信頼されたワークスペース アクセスを持つストレージ アカウントへのマネージド ショートカットを読み取ることができます。 既定のセマンティック モデルのマネージド テーブルを表示するには、SQL 分析エンドポイント項目に移動し、[レポート] を選択して、[セマンティック モデルの自動更新] を選択します。

    信頼されたワークスペース アクセスを持つストレージ アカウントへのテーブル ショートカットを参照する新しいセマンティック モデルを作成することもできます。 SQL 分析エンドポイントに移動し、[レポート] を選択し、[新しいセマンティック モデル] を選択します。

    既定のセマンティック モデルとカスタム セマンティック モデルの上にレポートを作成できます。

  • KQL データベース: KQL データベースで ADLS Gen2 への OneLake ショートカットを作成することもできます。 信頼されたワークスペース アクセスを使用してマネージド ショートカットを作成する手順も同じです。

信頼されたワークスペース アクセスを持つストレージ アカウントへのデータ パイプラインを作成する

Fabric でワークスペース ID を構成し、ADLS Gen2 ストレージ アカウントで信頼されたアクセスを有効にすると、Fabric からデータにアクセスするためのデータ パイプラインを作成できます。 新しいデータ パイプラインを作成してデータを Fabric レイクハウスにコピーすると、Spark、SQL、および Power BI でデータの分析を開始できます。

前提条件

  • Fabric 容量に関連付けられている Fabric ワークスペース。 「ワークスペース ID」を参照してください。
  • Fabric ワークスペースに関連付けられているワークスペース ID を作成します。
  • 接続の作成に使用するユーザー アカウントまたはサービス プリンシパルには、ストレージ アカウントに対する Azure RBAC の役割が必要です。 プリンシパルには、ストレージ アカウント スコープでのストレージ BLOB データ共同作成者、ストレージ BLOB データ所有者、またはストレージ BLOB データ閲覧者の役割が必要です。
  • ストレージ アカウントの リソース インスタンス ルール を構成します。

手順

  1. まず、レイクハウスで [データの取得] を選択します。

  2. [新しいデータ パイプライン] を選択します。 パイプラインの名前を入力して、[作成] を選択します。

    新しいパイプライン ダイアログを示すスクリーンショット。

  3. データ ソースとして [Azure Data Lake Gen 2] を選びます。

    ADLS Gen2 の選択を示すスクリーンショット。

  4. 信頼されたワークスペース アクセスで構成されているストレージ アカウントの URL を指定し、接続の名前を選択します。 [認証の種類] で、[組織アカウント] または [サービス プリンシパル] を選択します。

    データソースの接続設定を示すスクリーンショット。

    終わったら、 [次へ] を選択します。

  5. レイクハウスにコピーする必要があるファイルを選択します。

    ファイルの選択を示すスクリーンショット。

    終わったら、 [次へ] を選択します。

  6. [レビューと保存] 画面で、[データ転送をすぐに開始する] を選択します。 操作が完了したら、[保存と実行] を選択します。

    [確認と保存] スクリーンを示すスクリーンショット。

  7. パイプラインの状態が [キューに登録済み] から [成功] に変わったら、レイクハウスに移動し、データ テーブルが作成されたことを確認します。

T-SQL COPY ステートメントを使用して、データを倉庫にインジェストします

Fabric でワークスペース ID を構成し、ADLS Gen2 ストレージ アカウントで信頼されたアクセスを有効にすると、COPY T-SQL ステートメント を使用して、Fabric ウェアハウスにデータをインジェストできます。 データが倉庫に取り込まれたら、SQL と Power BI を使用してデータの分析を開始できます。

制限事項と考慮事項

  • 信頼されたワークスペース アクセスは、あらゆる Fabric F SKU 容量のワークスペースでサポートされています。
  • 信頼されたワークスペース アクセスは、OneLake ショートカット、データ パイプライン、および T-SQL COPY ステートメントでのみ使用できます。 Fabric Spark からストレージ アカウントに安全にアクセスするには、「Fabric のマネージド プライベート エンドポイント」を参照してください。
  • ワークスペース ID を持つワークスペースが非 Fabric 容量または非 F SKU Fabric 容量に移行された場合、信頼されたワークスペース アクセスは 1 時間後に機能しなくなります。
  • 2023 年 10 月 10 日より前に作成された既存のショートカットは、信頼されたワークスペース アクセスをサポートしていません。
  • 信頼されたワークスペース アクセスの接続は、[接続とゲートウェイの管理] では作成または変更することができません。
  • ファイアウォールが有効なストレージ アカウントへの接続は、 [接続とゲートウェイの管理] で [オフライン] の状態になります。
  • ショートカットやパイプライン以外の Fabric 項目または他のワークスペースで、信頼されたワークスペース アクセスをサポートする接続を再利用すると、それらの接続が機能しない可能性があります。
  • 信頼されたワークスペース アクセスのストレージ アカウントに対する認証には、組織アカウントまたはサービス プリンシパルのみを使用する必要があります。
  • パイプラインは、信頼されたワークスペース アクセスを持つストレージ アカウントの OneLake テーブル ショートカットに書き込むことはありません。 これは一時的な制限です。
  • 最大 200 個のリソース インスタンス ルールを構成できます。 詳細については、「Azure サブスクリプションの制限とクォータ - Azure Resource Manager」を参照してください。
  • 信頼されたワークスペース アクセスは、選択した仮想ネットワークと IP アドレスからのパブリック アクセスが有効になっている場合にのみ機能します。
  • Fabric ワークスペースのリソース インスタンス ルールは、ARM テンプレートを使用して作成する必要があります。 Azure portal UI を使用して作成されたリソース インスタンス ルールはサポートされていません。
  • 前提条件を満たすワークスペース内の既存のショートカットは、信頼されたサービス アクセスのサポートを自動的に開始します。
  • 組織に、すべてのサービス プリンシパルを含むワークロード ID での Entra 条件付きアクセス ポリシーがある場合、信頼されたワークスペース アクセスは機能しません。 このようなインスタンスでは、ワークロード ID の条件付きアクセス ポリシーから特定のファブリック ワークスペース ID を除外する必要があります。
  • サービス プリンシパルを使用してショートカットを作成する場合、信頼されたワークスペース アクセスはサポートされません。
  • 信頼されたワークスペース アクセスはテナント間要求と互換性がありません。

信頼されたワークスペース アクセスに関する問題のトラブルシューティング

ファイアウォールで保護された ADLS Gen2 ストレージ アカウントを対象とするレイクハウス内のショートカットにアクセスできなくなった場合は、レイクハウスが存在するワークスペースで管理者、メンバー、または共同作成者のロールを持たないユーザーとレイクハウスが共有されていることが原因である可能性があります。 これは既知の問題です。 この解決策は、ワークスペースで管理者、メンバー、または共同作成者のロールを持たないユーザーとレイクハウスを共有してはいけません。

ARM テンプレートのサンプル

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
        {
            "type": "Microsoft.Storage/storageAccounts",
            "apiVersion": "2023-01-01",
            "name": "<storage account name>",
            "id": "/subscriptions/<subscription id of storage account>/resourceGroups/<resource group name>/providers/Microsoft.Storage/storageAccounts/<storage account name>",
            "location": "<region>",
            "kind": "StorageV2",
            "properties": {
                "networkAcls": {
                    "resourceAccessRules": [
                        {
                            "tenantId": "<tenantid>",
                            "resourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/Fabric/providers/Microsoft.Fabric/workspaces/<workspace-id>"
                        }]
                }
            }
        }
    ]
}