次の方法で共有


Azure Synapse と Azure Machine Learning を安全に統合する方法

この記事では、Azure Synapse から Azure Machine Learning と安全に統合する方法について説明します。 この統合により、Azure Synapse ワークスペース内のノートブックから Azure Machine Learning を使用できるようになります。 2 つのワークスペース間の通信は、Azure Virtual Network を使用して保護されます。

前提条件

  • Azure サブスクリプション。

  • 仮想ネットワークへのプライベート エンドポイント接続を備えた Azure Machine Learning ワークスペース。 次のワークスペース依存サービスにも、仮想ネットワークへのプライベート エンドポイント接続が必要です。

    • Azure Storage アカウント

      ヒント

      ストレージ アカウントには、3 つの個別のプライベート エンドポイントがあります (BLOB、ファイル、dfs 用に 1 つずつ)。

    • Azure Key Vault

    • Azure Container Registry

    この構成をすばやく簡単に構築するには、Bicep テンプレートまたは Terraform テンプレートを使用します。

  • マネージド プライベート エンドポイントを使用した、マネージド仮想ネットワーク内の Azure Synapse ワークスペース。 詳細については、「Azure Synapse Analytics のマネージ仮想ネットワーク」をご覧ください。

    警告

    Azure Machine Learning 統合は、現在、データ流出防止を使用した Synapse ワークスペースではサポートされていません。 Azure Synapse ワークスペースを構成するときは、データ流出防止を有効にしないでください。 詳細については、「Azure Synapse Analytics のマネージ仮想ネットワーク」をご覧ください。

    注意

    この記事の手順では、次のことが前提条件となっています。

    • Azure Synapse ワークスペースは、Azure Machine Learning ワークスペースとは異なるリソース グループに含まれています。
    • Azure Synapse ワークスペースでは、マネージド仮想ネットワークを使用します。 マネージド仮想ネットワークにより、Azure Synapse と Azure Machine Learning 間の接続が保護されます。 Azure Synapse ワークスペースへのアクセスは制限されません。 ワークスペースにはパブリック インターネット経由でアクセスします。

ネットワーク通信について

この構成では、Azure Synapse は、マネージドプライベート エンドポイントおよび仮想ネットワークを使用します。 マネージド仮想ネットワークおよびプライベート エンドポイントにより、仮想ネットワークへのネットワークトラフィックが制限され、Azure Synapse から Azure Machine Learning への内部通信が保護されます。 クライアントと Azure Synapse ワークスペース間の通信は制限されません

Azure Machine Learning では、マネージド プライベート エンドポイントまたは仮想ネットワークを提供しません。代わりに、ユーザーが管理するプライベート エンドポイントと仮想ネットワークを使用します。 この構成では、内部およびクライアント/サービス通信の両方が仮想ネットワークに制限されます。 たとえば、仮想ネットワークの外部から Azure Machine Learning スタジオに直接アクセスする場合は、次のいずれかのオプションを使用します。

  • 仮想ネットワーク内に Azure 仮想マシンを作成し、Azure Bastion を使用して接続します。 次に、VM から Azure Machine Learning に接続します。
  • VPN ゲートウェイを作成するか、ExpressRoute を使用して、クライアントを仮想ネットワークに接続します。

Azure Synapse ワークスペースにはパブリックにアクセスできるため、VPN ゲートウェイのようなものを作成しなくても接続できます。 Synapse ワークスペースは、仮想ネットワーク経由で Azure Machine Learning に安全に接続します。 Azure Machine Learning とそのリソースは、仮想ネットワーク内で保護されます。

データ ソースを追加するときに、仮想ネットワークの背後にあるものを保護することもできます。 仮想ネットワークを介した、Azure Storage アカウントまたは Data Lake Store Gen 2 への安全な接続など。

詳細については、次の記事を参照してください。

Azure Synapse を構成する

重要

これらの手順を実行する前に、マネージド仮想ネットワークを使用するように構成された Azure Synapse ワークスペースが必要です。 詳細については、「Azure Synapse Analytics のマネージ仮想ネットワーク」をご覧ください。

  1. Azure Synapse Studio から、新しい Azure Machine Learning のリンクされたサービスを作成します

  2. リンクされたサービスを作成して公開した後、Azure Synapse Studio で [管理][マネージド プライベート エンドポイント][+ 新規] の順に選択します。

    [マネージド プライベート エンドポイント] ダイアログのスクリーンショット。

  3. [新しいマネージド プライベート エンドポイント] ページで、[Azure Machine Learning] を検索し、タイルを選択します。

    Azure Machine Learning の選択のスクリーンショット。

  4. Azure Machine Learning ワークスペースの選択を求めるメッセージが表示されたら、Azure サブスクリプションと、以前にリンクされたサービスとして追加した Azure Machine Learning ワークスペースを使用します。 [作成] を選択して、エンドポイントを作成します。

    [新しいプライベート エンドポイント] ダイアログのスクリーンショット。

  5. エンドポイントは、作成されるまで [プロビジョニング] として表示されます。 作成されると、[承認] 列に [保留中] の状態が表示されます。 エンドポイントは「Azure Machine Learning を構成する」セクションで承認します。

    注意

    次のスクリーンショットでは、この Synapse ワークスペースに関連付けられている Azure Data Lake Storage Gen 2 に対して、マネージド プライベート エンドポイントが作成されています。 Azure Data Lake Storage Gen 2 を作成し、プライベート エンドポイントを有効にする方法については、リンクされたサービスのマネージド VNet でのプロビジョニングと保護に関するページをご覧ください。

    [マネージド プライベート エンドポイント] リストのスクリーンショット。

Spark プールを作成する

Azure Synapse と Azure Machine Learning の統合が機能していることを確認するには、Apache Spark プールを使用します。 作成の詳細については、Spark プールの作成に関するページをご覧ください。

Azure Machine Learning を構成する

  1. Azure portal で、Azure Machine Learning ワークスペースを選択し、[ネットワーク] を選択します。

  2. [プライベート エンドポイント] を選択し、前の手順で作成したエンドポイントを選択します。 状態は [保留中] になっているはずです。 [承認] を選択して、エンドポイント接続を承認します。

    プライベート エンドポイントの承認のスクリーンショット。

  3. ページの左側で、[アクセス制御 (IAM)] を選びます。 [追加] を選択し、[ロールの割り当て] を選択します。

    ロールの割り当てのスクリーンショット。

  4. [特権管理者ロール][共同作成者] を選んでから、[次へ] を選びます。

    共同作成者の選択のスクリーンショット。

  5. [ユーザー、グループ、またはサービス プリンシパル] を選択して、[+ メンバーの選択] をクリックします。 先ほど作成した ID の名前を入力して選択してから、[選択] ボタンを使用します。

    ロールの割り当てのスクリーンショット。

  6. [確認と割り当て] を選択し、情報を確認してから、[確認と割り当て] ボタンを選択します。

    ヒント

    Azure Machine Learning ワークスペースによって資格情報キャッシュが更新されるまで数分かかる場合があります。 更新されるまで、Synapse から Azure Machine Learning ワークスペースにアクセスしようとするとエラーが発生することがあります。

接続を検証する

  1. Azure Synapse Studio から、[開発][+ Notebook] の順に選択します。

    ノートブックの追加のスクリーンショット。

  2. [アタッチ先] フィールドで、Azure Synapse ワークスペース用の Apache Spark プールを選択し、最初のセルに次のコードを入力します。

    from notebookutils.mssparkutils import azureML
    
    # getWorkspace() takes the linked service name,
    # not the Azure Machine Learning workspace name.
    ws = azureML.getWorkspace("AzureMLService1")
    
    print(ws.name)
    

    重要

    このコード スニペットは、SDK v1 を使用してリンクされたワークスペースに接続し、ワークスペース情報を出力します。 出力で、表示される値は、getWorkspace() 呼び出して使用されたリンクされたサービス名ではなく、Azure Machine Learning ワークスペースの名前です。 ws オブジェクトの使用の詳細については、Workspace クラスのリファレンスを参照してください。

次の手順