セキュリティで保護されたワークスペースを使用する場合のネットワーク トラフィック フロー

Azure Machine Learning ワークスペースと関連付けられているリソースを Azure 仮想ネットワークに配置すると、リソース間のネットワーク トラフィックが変わります。 仮想ネットワークを使用しない場合、ネットワーク トラフィックはパブリック インターネット経由で、あるいは Azure データセンター内で流れます。 仮想ネットワークを導入したら、ネットワーク セキュリティを強化することもできます。 たとえば、仮想ネットワークとパブリック インターネットの間の受信と送信の通信をブロックできます。 しかし、Azure Machine Learning では、パブリック インターネット上の一部のリソースへのアクセスが必要となります。 たとえば、デプロイと管理の操作には Azure Resource Manager が使用されます。

この記事では、パブリック インターネットとの間の必要なトラフィックをリストします。 また、次のシナリオにおいて、クライアントの開発環境とセキュリティで保護された Azure Machine Learning ワークスペースの間のネットワーク トラフィックがどのように流れるかについて説明します。

  • Azure Machine Learning スタジオを使用して、以下を操作する:

    • ワークスペース
    • AutoML
    • Designer
    • データセットとデータストア

    Azure Machine Learning スタジオは、Web ブラウザーで部分的に実行される Web ベースの UI です。 これは Azure サービスを呼び出して、モデルのトレーニング、デザイナーの使用、データセットの表示などのタスクを実行します。 これらの呼び出しの中には、Azure Machine Learning SDK、Azure CLI、REST API、Visual Studio Code を使用している場合とは異なる通信フローが使用されるものもあります。

  • Azure Machine Learning スタジオ、Azure Machine Learning SDK、Azure CLI、または REST API を使用して、以下を操作する:

    • コンピューティング インスタンスとクラスター
    • Azure Kubernetes Service (AKS)
    • Azure Machine Learning によって管理される Docker イメージ

シナリオまたはタスクがここにリストされていない場合は、セキュリティで保護されたワークスペースの有無にかかわらず、同じように動作するはずです。

前提条件

この記事では、以下の構成を前提としています。

  • Azure Machine Learning ワークスペースで、仮想ネットワークとの通信にプライベート エンドポイントが使用されている。
  • ワークスペースで使用される Azure ストレージ アカウント、キー コンテナー、およびコンテナー レジストリでも、仮想ネットワークとの通信にプライベート エンドポイントが使用されている。
  • クライアント ワークステーションで、仮想ネットワークへのアクセスに VPN ゲートウェイまたは Azure ExpressRoute が使用されている。

受信と送信の要件

シナリオ 必要な受信 必要な送信 追加構成
スタジオからワークスペースにアクセスする 適用なし
  • Microsoft Entra ID
  • Azure Front Door
  • Azure Machine Learning
場合によっては、カスタム DNS サーバーを使用する必要があります。 詳細については、カスタム DNS でのワークスペースの使用に関するページを参照してください。
スタジオから AutoML、デザイナー、データセット、およびデータストアを使用する 適用なし 適用なし
  • ワークスペース サービス プリンシパルを構成する
  • 信頼された Azure サービスからのアクセスを許可する
詳細については、「仮想ネットワークを使用して Azure Machine Learning ワークスペースをセキュリティで保護する」を参照してください。
コンピューティング インスタンスとコンピューティング クラスターを使用する
  • Azure Machine Learning (ポート 44224)
  • Azure Batch (ポート 29876 ~ 29877)
  • Microsoft Entra ID
  • Azure Resource Manager
  • Azure Machine Learning
  • Azure Storage
  • Azure Key Vault
ファイアウォールを使用する場合は、ユーザー定義のルートを作成します。 詳細については、ネットワークの着信トラフィックおよび送信トラフィックの構成に関する記事を参照してください。
Azure Kubernetes Service を使用する 適用なし AKS の送信構成については、「Azure Kubernetes Service 推論環境をセキュリティで保護する」を参照してください。
Azure Machine Learning によって管理される Docker イメージを使用する 適用なし Microsoft アーティファクト レジストリ ワークスペースのコンテナー レジストリが仮想ネットワークの背後にある場合は、コンピューティング クラスターを使用してイメージを作成するようにワークスペースを構成します。 詳細については、「仮想ネットワークを使用して Azure Machine Learning ワークスペースをセキュリティで保護する」を参照してください。

ストレージ アカウントの目的

Azure Machine Learning は複数のストレージ アカウントを使用します。 それぞれに異なるデータが保存され、目的も異なります。

  • ご使用のストレージ: Azure サブスクリプションのストレージ アカウントにデータと成果物 (モデル、トレーニング データ、トレーニング ログ、Python スクリプトなど) が保存されます。 たとえば、ワークスペースのデフォルトのストレージ アカウントは、サブスクリプションに含まれています。 Azure Machine Learning のコンピューティング インスタンスとコンピューティング クラスターは、ポート 445 (SMB) と 443 (HTTPS) を介して、このストレージ内のファイルと BLOB データにアクセスします。

    コンピューティング インスタンスまたはコンピューティング クラスターを使用する場合、ストレージ アカウントは、SMB プロトコルを介してファイル共有としてマウントされます。 コンピューティング インスタンスとクラスターでは、このファイル共有を使用して、データ、モデル、Jupyter ノートブック、データセットなどの項目が保存されます。 コンピューティング インスタンスとクラスターでは、ストレージ アカウントにアクセスするときにプライベート エンドポイントが使用されます。

  • Microsoft ストレージ: Azure Machine Learning コンピューティング インスタンスとコンピューティング クラスターは、Azure Batch に依存します。 これらは Microsoft サブスクリプションにあるストレージにアクセスします。 このストレージは、コンピューティング インスタンスまたはクラスターの管理にのみ使用されます。 ここにはデータが格納されていません。 コンピューティング インスタンスとコンピューティング クラスターは、ポート 443 (HTTPS) を使用して、このストレージ内の BLOB、テーブル、キューのデータにアクセスします。

Azure Machine Learning では、メタデータは Azure Cosmos DB インスタンスにも格納されます。 既定では、このインスタンスは Microsoft サブスクリプションでホストされ、Microsoft によって管理されます。 必要に応じて、Azure サブスクリプションで Azure Cosmos DB インスタンスを使用できます。 詳細については、Azure Machine Learning を使用したデータの暗号化に関するページを参照してください。

シナリオ: スタジオからワークスペースにアクセスする

Note

このセクションの情報は、Azure Machine Learning スタジオからのワークスペースの使用に固有のものです。 Azure Machine Learning SDK、REST API、Azure CLI、または Visual Studio Code を使用する場合、このセクションの情報は適用されません。

スタジオからワークスペースにアクセスする場合、ネットワーク トラフィック フローは次のようになります。

  • リソースに対して認証を行うために、構成では Microsoft Entra ID を使用します。
  • 管理およびデプロイ操作の場合、構成では Azure Resource Manager を使用します。
  • Azure Machine Learning に固有のタスクの場合、構成では Azure Machine Learning service を使用します。
  • Azure Machine Learning スタジオへのアクセスについては、構成では Azure FrontDoor を使用します。
  • ほとんどのストレージ操作では、トラフィックは、ワークスペース用の既定のストレージのプライベート エンドポイントを経由して流れます。 例外については、この記事の「スタジオから AutoML、デザイナー、データセット、およびデータストアを使用する」セクションで説明します。
  • また、仮想ネットワーク内のリソースの名前を解決できるようにする DNS ソリューションを構成する必要もあります。 詳細については、カスタム DNS でのワークスペースの使用に関するページを参照してください。

スタジオを使用する場合のクライアントとワークスペースの間のネットワーク トラフィックの図。

シナリオ: スタジオから AutoML、デザイナー、データセット、およびデータストアを使用する

Azure Machine Learning スタジオの次の機能では、''データ プロファイル'' が使用されます。

  • データセット: スタジオからデータセットを調べます。
  • デザイナー: モジュールの出力データを視覚化します。
  • AutoML: データ プレビューまたはプロファイルを表示し、ターゲット列を選択します。
  • ラベル付け: ラベルを使用して、機械学習プロジェクトのデータを準備します。

データ プロファイルは、ワークスペース用の既定の Azure ストレージ アカウントにアクセスする Azure Machine Learning マネージド サービスの機能に依存します。 マネージド サービスは ''仮想ネットワークに存在しない'' ため、仮想ネットワーク内のストレージ アカウントに直接アクセスすることはできません。 代わりに、ワークスペースではサービス プリンシパルを使用してストレージにアクセスします。

ヒント

サービス プリンシパルは、ワークスペースを作成するときに指定できます。 そうしないと、自動的に作成され、ワークスペースと同じ名前になります。

ストレージ アカウントへのアクセスを許可するには、ワークスペースにリソース インスタンスを許可するようにストレージ アカウントを構成するか、[信頼されたサービスの一覧にある Azure サービスがこのストレージ アカウントにアクセスすることを許可します] を選択します。 この設定により、マネージド サービスは Azure データセンター ネットワークを介してストレージにアクセスできるようになります。

次に、ワークスペースのサービス プリンシパルを、ストレージ アカウントのプライベート エンドポイントに対する閲覧者ロールに追加します。 Azure では、このロールは、ワークスペースとストレージ サブネットの情報を確認するために使用されます。 それらが同じである場合は、Azure によってアクセスが許可されます。 最後に、サービス プリンシパルには、ストレージ アカウントへの Blob データ共同作成者のアクセスも必要です。

詳細については、「仮想ネットワークを使用して Azure Machine Learning ワークスペースをセキュリティで保護する」の「Azure Storage アカウントをセキュリティで保護する」を参照してください。

クライアント、データ プロファイル、およびストレージ間のトラフィックの図。

シナリオ: コンピューティング インスタンスとコンピューティング クラスターを使用する

Azure Machine Learning コンピューティング インスタンスとコンピューティング クラスターは、Microsoft によってホストされるマネージド サービスです。 それらは Azure Batch サービス上に構築されます。 これらは Microsoft マネージド環境に存在しますが、仮想ネットワークにも挿入されます。

コンピューティング インスタンスまたはコンピューティング クラスターを作成すると、次のリソースも仮想ネットワークに作成されます。

  • 必要なアウトバウンド規則を使用するネットワーク セキュリティ グループ。 これらの規則では、Azure Machine Learning (ポート 44224 の TCP) および Azure Batch (ポート 29876 から 29877 の TCP) からの "受信" アクセスが許可されます。

    重要

    ファイアウォールを使用して仮想ネットワークへのインターネット アクセスをブロックする場合は、このトラフィックを許可するようにファイアウォールを構成する必要があります。 たとえば、Azure Firewall を使用して、ユーザー定義のルートを作成できます。 詳細については、ネットワークの着信トラフィックおよび送信トラフィックの構成に関する記事を参照してください。

  • パブリック IP アドレスを使用するロード バランサー。

また、次のサービス タグへの送信アクセスを許可します。 各タグについて、region をコンピューティング インスタンスまたはクラスターの Azure リージョンに置き換えます。

  • Storage.region: この送信アクセスは、Azure Batch マネージド仮想ネットワーク内の Azure ストレージ アカウントに接続するために使用されます。
  • Keyvault.region: この送信アクセスは、Azure Batch マネージド仮想ネットワーク内の Azure Key Vault アカウントに接続するために使用されます。

コンピューティング インスタンスまたはクラスターからのデータ アクセスは、仮想ネットワーク用のストレージ アカウントのプライベート エンドポイントを経由します。

コンピューティング インスタンスで Visual Studio Code を使用する場合は、他の送信トラフィックを許可する必要があります。 詳細については、ネットワークの着信トラフィックおよび送信トラフィックの構成に関する記事を参照してください。

コンピューティング インスタンスまたはクラスターを使用する場合のトラフィック フローの図。

シナリオ: オンライン エンドポイントを使用する

受信と送信の通信のセキュリティは、マネージド オンライン エンドポイント用に個別に構成します。

受信方向の通信

オンライン エンドポイントのスコアリング URL との受信通信は、エンドポイントの public_network_access フラグを使用してセキュリティで保護できます。 フラグを に disabled 設定すると、オンライン エンドポイントは、Azure Machine Learning ワークスペースのプライベート エンドポイントを介してクライアントの仮想ネットワークからのみトラフィックを受け取ります。

エンドポイントの可視性は、Azure Machine Learning ワークスペースの public_network_access フラグによっても制御されます。 このフラグが disabled の場合、スコアリング エンドポイントには、ワークスペースのプライベート エンドポイントを含む仮想ネットワークからのみアクセスできます。 このフラグが enabled の場合、仮想ネットワークとパブリック ネットワークからスコアリング エンドポイントにアクセスできます。

送信方向の通信

Azure Machine Learning ワークスペースのマネージド仮想ネットワーク分離を有効にすることで、デプロイからの送信通信を、ワークスペース レベルのセキュリティで保護できます。 この設定を使用すると、Azure Machine Learning によってワークスペースのマネージド仮想ネットワークが作成されます。 ワークスペースのマネージド仮想ネットワーク内のすべてのデプロイでは、送信通信に仮想ネットワークのプライベート エンドポイントを使用できます。

送信通信をセキュリティで保護するための従来のネットワーク分離方法 は、デプロイの egress_public_network_access フラグを無効にすることで機能しました。 代わりにワークスペース マネージド仮想ネットワークを使用して、デプロイ用の送信通信をセキュリティで保護できるようにすることを強くお勧めします。 従来のアプローチとは異なり、デプロイでワークスペースマネージド仮想ネットワークを使用する場合、デプロイの egress_public_network_access フラグは適用されなくなりました。 代わりに、ワークスペースのマネージド仮想ネットワークに設定した規則によって送信通信が制御されます。

シナリオ: Azure Kubernetes Service を使用する

Azure Kubernetes Service に必要な送信構成については、「仮想ネットワークを使用して Azure Machine Learning 推論環境をセキュリティで保護する」を参照してください。

Note

Azure Kubernetes Service のロード バランサーは、Azure Machine Learning によって作成されるロード バランサーと同じではありません。 仮想ネットワークでのみ使用できるセキュリティで保護されたアプリケーションとしてモデルをホストするには、Azure Machine Learning によって作成される内部ロード バランサーを使用します。 パブリック アクセスを許可する場合は、Azure Machine Learning によって作成されるパブリック ロード バランサーを使用します。

モデルで外部データ ソースなどへの追加の受信または送信接続が必要な場合は、ネットワーク セキュリティ グループまたはファイアウォールを使用してトラフィックを許可します。

シナリオ: Azure Machine Learning によって管理される Docker イメージを使用する

Azure Machine Learning では、モデルのトレーニングや推論の実行に使用できる Docker イメージが提供されます。 これらのイメージは、Microsoft アーティファクト レジストリでホストされます。

自分で指定したコンテナー レジストリなどの独自の Docker イメージを指定する場合は、アーティファクト レジストリとの送信通信は必要ありません。

ヒント

コンテナー レジストリが仮想ネットワークでセキュリティ保護されている場合、Azure Machine Learning では、Docker イメージをビルドするためにそれを使用することはできません。 代わりに、イメージをビルドするために Azure Machine Learning コンピューティング クラスターを指定する必要があります。 詳細については、「仮想ネットワークを使用して Azure Machine Learning ワークスペースをセキュリティで保護する」を参照してください。

提供された Docker イメージを使用する場合のトラフィック フローの図。

次のステップ

セキュリティで保護された構成でのネットワーク トラフィックの流れについては学習しました。次は、仮想ネットワークの分離とプライバシーの概要の記事を読んで、仮想ネットワークでの Azure Machine Learning のセキュリティ保護について詳しく学習します。

ベスト プラクティスについては、「Azure Machine Learning のエンタープライズ セキュリティに関するベスト プラクティス」の記事を参照してください。