ネットワークの分離を計画する
この記事では、Azure Machine Learning のネットワークの分離を計画する方法と推奨事項について説明します。 これは、ネットワーク アーキテクチャを設計する IT 管理者向けの記事です。
推奨されるアーキテクチャ (マネージド ネットワーク分離パターン)
マネージド仮想ネットワークを使うと、ネットワーク分離の構成が簡単になります。 マネージド仮想ネットワーク内のワークスペースとマネージド コンピューティング リソースが、自動的にセキュリティ保護されます。 ワークスペースが依存する他の Azure サービス (Azure ストレージ アカウントなど) に対するプライベート エンドポイント接続を追加できます。 ニーズに応じて、パブリック ネットワークへのすべてのアウトバウンド トラフィックを許可することも、ユーザーが承認したアウトバウンド トラフィックのみを許可することもできます。 マネージド仮想ネットワークでは、Azure Machine Learning service に必要なアウトバウンド トラフィックが自動的に有効になります。 摩擦のない組み込みのネットワーク分離方法として、ワークスペースのマネージド ネットワーク分離の使用をお勧めします。 インターネット送信を許可するモードか、承認された送信のみを許可するモードの 2 つのパターンがあります。
インターネット送信を許可するモード
機械学習エンジニアがインターネットに自由にアクセスできるようにする場合は、このオプションを使用します。 他のプライベート エンドポイント アウトバウンド規則を作成して、Azure 上のプライベート リソースにアクセスできるようにします。
承認された送信のみを許可するモード
データ流出リスクを最小限に抑え、機械学習エンジニアがアクセスできる内容を制御する場合は、このオプションを使用します。 プライベート エンドポイント、サービス タグ、FQDN を使用してアウトバウンド規則を制御できます。
推奨されるアーキテクチャ (Azure VNet を使用)
マネージド仮想ネットワークを使用できない特定の要件や会社のポリシーがある場合は、Azure 仮想ネットワークを使用してネットワークを分離できます。
次の図は、すべてのリソースをプライベートにしながら、VNet からの送信インターネット アクセスを許可するために推奨されるアーキテクチャです。 この図は、次のアーキテクチャを説明しています。
- すべてのリソースを同じリージョンに配置します。
- ファイアウォールを含むハブ VNet。
- 次のリソースを含むスポーク VNet。
- トレーニング サブネットには、ML モデルのトレーニングに使用されるコンピューティング インスタンスとクラスターが含まれています。 これらのリソースは、パブリック IP なしで構成されています。
- スコアリング サブネットには、AKS クラスターが含まれています。
- "pe" サブネットには、ワークスペースで使用される、ワークスペースおよびプライベート リソース (ストレージ、キー コンテナー、コンテナー レジストリなど) に接続するプライベート エンドポイントが含まれています。
- マネージド オンライン エンドポイントで、ワークスペースのプライベート エンドポイントを使用して受信要求を処理します。 また、プライベート エンドポイントも、マネージド オンライン エンドポイントのデプロイからプライベート ストレージにアクセスできるようにするために使用されます。
このアーキテクチャによって、ネットワーク セキュリティと ML エンジニアの生産性のバランスが取れます。
Bicep テンプレートまたは Terraform テンプレートを使って、この環境の作成を自動化できます。 マネージド オンライン エンドポイントまたは AKS はありません。 マネージド オンライン エンドポイントは、AI モデル スコアリング用の既存の AKS クラスターがない場合のソリューションです。 詳細については、オンライン エンドポイントをセキュリティで保護する方法に関するドキュメントを参照してください。 Azure Machine Learning 拡張機能を使用した AKS は、AI モデル スコアリング用の既存の AKS クラスターがある場合のソリューションです。 詳細については、kubernetes をアタッチする方法に関するドキュメントを参照してください。
ファイアウォール要件の削除
ファイアウォール要件を削除する場合は、ネットワーク セキュリティ グループと Azure 仮想ネットワーク NAT を使用して、プライベート コンピューティング リソースからのインターネット送信を許可できます。
パブリック ワークスペースの使用
Microsoft Entra 認証と条件付きアクセスによる承認について問題がない場合は、パブリック ワークスペースを使用できます。 パブリック ワークスペースには、プライベート ストレージ アカウントにデータを表示するための機能がいくつかあり、プライベート ワークスペースを使用することをお勧めします。
データ流出防止を使用した推奨アーキテクチャ
この図は、すべてのリソースをプライベートにし、送信先を制御してデータ流出を防ぐために推奨されるアーキテクチャを示しています。 運用環境で機密データに Azure Machine Learning を使用する場合は、このアーキテクチャをお勧めします。 この図は、次のアーキテクチャを説明しています。
- すべてのリソースを同じリージョンに配置します。
- ファイアウォールを含むハブ VNet。
- サービス タグに加えて、ファイアウォールで FQDN を使用してデータ流出を防ぎます。
- 次のリソースを含むスポーク VNet。
- トレーニング サブネットには、ML モデルのトレーニングに使用されるコンピューティング インスタンスとクラスターが含まれています。 これらのリソースは、パブリック IP なしで構成されています。 さらに、データ流出を防ぐために、サービス エンドポイントとサービス エンドポイント ポリシーが設定されています。
- スコアリング サブネットには、AKS クラスターが含まれています。
- "pe" サブネットには、ワークスペースで使用される、ワークスペースおよびプライベート リソース (ストレージ、キー コンテナー、コンテナー レジストリなど) に接続するプライベート エンドポイントが含まれています。
- マネージド オンライン エンドポイントで、ワークスペースのプライベート エンドポイントを使用して受信要求を処理します。 また、プライベート エンドポイントも、マネージド オンライン エンドポイントのデプロイからプライベート ストレージにアクセスできるようにするために使用されます。
次の表に、データ流出保護設定で必要な送信 Azure サービス タグと完全修飾ドメイン名 (FQDN) の一覧を示します。
送信サービス タグ | Protocol | Port |
---|---|---|
AzureActiveDirectory |
TCP | 80、443 |
AzureResourceManager |
TCP | 443 |
AzureMachineLearning |
UDP | 5831 |
BatchNodeManagement |
TCP | 443 |
送信 FQDN | Protocol | Port |
---|---|---|
mcr.microsoft.com |
TCP | 443 |
*.data.mcr.microsoft.com |
TCP | 443 |
ml.azure.com |
TCP | 443 |
automlresources-prod.azureedge.net |
TCP | 443 |
パブリック ワークスペースの使用
Microsoft Entra 認証と条件付きアクセスによる承認について問題がない場合は、パブリック ワークスペースを使用できます。 パブリック ワークスペースには、プライベート ストレージ アカウントにデータを表示するための機能がいくつかあり、プライベート ワークスペースを使用することをお勧めします。
詳細を理解するための主な考慮事項
Azure Machine Learning には、IaaS と PaaS の両方のリソースがあります
Azure Machine Learning のネットワークの分離には、サービスとしてのプラットフォーム (PaaS) とサービスとしてのインフラストラクチャ (IaaS) の両方のコンポーネントが関与します。 Azure Machine Learning ワークスペース、ストレージ、キー コンテナー、コンテナー レジストリ、モニターなどの PaaS サービスは、Private Link を使用して分離できます。 AI モデル トレーニング用のコンピューティング インスタンスまたはクラスター、AI モデル スコアリング用の Azure Kubernetes Service (AKS) またはマネージド オンライン エンドポイントなどの IaaS コンピューティング サービスを仮想ネットワークに取り込み、Private Link を使用して PaaS サービスと通信できます。 このアーキテクチャの例を次の図に示します。
この図では、仮想ネットワーク内に、コンピューティング インスタンス、コンピューティング クラスター、AKS クラスターがあります。 それらからプライベート エンドポイントを使用して Azure Machine Learning ワークスペースまたはストレージにアクセスできます。 プライベート エンドポイントの代わりに、Azure Storage と Azure Key Vault のサービス エンドポイントを使用できます。 他のサービスでは、サービス エンドポイントはサポートされていません。
必要な受信と送信の構成
Azure Machine Learning には、仮想ネットワークに必要な受信と送信の構成がいくつか用意されています。 スタンドアロン仮想ネットワークがある場合は、ネットワーク セキュリティ グループを使用して簡単に構成できます。 ただし、ハブスポークまたはメッシュ ネットワーク アーキテクチャ、ファイアウォール、ネットワーク仮想アプライアンス、プロキシ、ユーザー定義ルーティングがある場合があります。 どちらの場合も、ネットワーク セキュリティ コンポーネントで受信と送信を許可してください。
この図では、ハブとスポークのネットワーク アーキテクチャがあります。 スポーク VNet には、Azure Machine Learning 用のリソースがあります。 ハブ VNet には、仮想ネットワークからのインターネット送信を制御するファイアウォールがあります。 この場合、ファイアウォールで必要なリソースへの送信を許可する必要があり、スポーク VNet 内のコンピューティング リソースがファイアウォールに到達できる必要があります。
ヒント
この図では、コンピューティング インスタンスとコンピューティング クラスターがパブリック IP なしで構成されています。 代わりに、パブリック IP を持つコンピューティング インスタンスまたはクラスターを使用する場合は、ネットワーク セキュリティ グループ (NSG) とユーザー定義ルーティングを使用して、Azure Machine Learning service タグからの受信を許可し、ファイアウォールをスキップする必要があります。 この受信トラフィックは、Microsoft サービス (Azure Machine Learning) からのものになります。 ただし、パブリック IP なしオプションを使用して、この受信要件を削除することをお勧めします。
コンピューティング インスタンスでのプライベート リンク リソースとアプリケーションの DNS 解決
Azure またはオンプレミスでホストされている独自の DNS サーバーがある場合は、DNS サーバーに条件付きフォワーダーを作成する必要があります。 条件付きフォワーダーによって、プライベート リンクが有効なすべての PaaS サービスの DNS 要求が Azure DNS に送信されます。 詳細については、「DNS の構成シナリオ」と Azure Machine Learning 固有の DNS 構成に関する記事を参照してください。
データ流出防止
送信には、読み取り専用と読み取り/書き込みの 2 種類があります。 読み取り専用の送信は悪意のあるアクターによる悪用はできませんが、読み取り/書き込みの送信ではそれが行われる可能性があります。 この例では、Azure Storage と Azure Frontdoor (frontdoor.frontend
サービス タグ) は読み取り/書き込み送信です。
データ流出防止ソリューションを使用して、このデータ流出リスクを軽減できます。 Azure Machine Learning エイリアスでサービス エンドポイント ポリシーを使用して、Azure Machine Learning マネージド ストレージ アカウントへの送信のみを許可します。 ファイアウォールでストレージへの送信を開く必要はありません。
この図では、コンピューティング インスタンスとクラスターから Azure Machine Learning マネージド ストレージ アカウントにアクセスして、セットアップ スクリプトを取得する必要があります。 ストレージへの送信を開く代わりに、Azure Machine Learning エイリアスでサービス エンドポイント ポリシーを使用して、Azure Machine Learning ストレージ アカウントへのストレージ アクセスのみを許可できます。
次の表に、データ流出保護設定で必要な送信 Azure サービス タグと完全修飾ドメイン名 (FQDN) の一覧を示します。
送信サービス タグ | Protocol | Port |
---|---|---|
AzureActiveDirectory |
TCP | 80、443 |
AzureResourceManager |
TCP | 443 |
AzureMachineLearning |
UDP | 5831 |
BatchNodeManagement |
TCP | 443 |
送信 FQDN | Protocol | Port |
---|---|---|
mcr.microsoft.com |
TCP | 443 |
*.data.mcr.microsoft.com |
TCP | 443 |
ml.azure.com |
TCP | 443 |
automlresources-prod.azureedge.net |
TCP | 443 |
マネージド オンライン エンドポイント
受信と送信の通信のセキュリティは、マネージド オンライン エンドポイント用に個別に構成されます。
受信方向の通信
Azure Machine Learning では、プライベート エンドポイントを使用して、マネージド オンライン エンドポイントへの受信方向の通信を保護します。 エンドポイントへのパブリック アクセスを防ぐために、エンドポイントの public_network_access
フラグを disabled
に設定します。 このフラグを無効にすると、エンドポイントには Azure Machine Learning ワークスペースのプライベート エンドポイントを介してのみアクセスでき、パブリック ネットワークからはアクセスできません。
送信方向の通信
デプロイからリソースへの送信方向の通信を保護するために、Azure Machine Learning はワークスペース マネージド仮想ネットワークを使用します。 ワークスペース マネージド VNet にデプロイを作成し、送信方向の通信にワークスペース マネージド仮想ネットワークのプライベート エンドポイントを使用できるようにする必要があります。
次のアーキテクチャ図は、マネージド オンライン エンドポイントへの通信がプライベート エンドポイントを経由してどのように流れるかを示したものです。 受信スコアリング要求は、クライアントの仮想ネットワークからワークスペースのプライベート エンドポイントを経由してマネージド オンライン エンドポイントに流れます。 デプロイからサービスへの送信方向の通信は、ワークスペース マネージド仮想ネットワークからそれらのサービス インスタンスへ、プライベート エンドポイントを通じて処理されます。
詳細については、マネージド オンライン エンドポイントによるネットワーク分離に関するページを参照してください。
メイン ネットワークでのプライベート IP アドレス不足
Azure Machine Learning にはプライベート IP が必要です (コンピューティング インスタンス、コンピューティング クラスター ノード、プライベート エンドポイントごとに 1 つの IP)。 また、AKS を使用する場合は、多くの IP が必要です。 オンプレミス ネットワークに接続されているハブスポーク ネットワークに、十分な大きさのプライベート IP アドレス空間がない場合があります。 このシナリオでは、Azure Machine Learning リソース用に、分離されたピアリングされていない VNet を使用できます。
この図では、メイン VNet にプライベート エンドポイントの IP が必要です。 大きなアドレス空間を持つ複数の Azure Machine Learning ワークスペース用にハブスポーク VNet を使用できます。 このアーキテクチャの欠点は、プライベート エンドポイントの数が 2 倍になることです。
ネットワーク ポリシーの適用
セルフサービス ワークスペースおよびコンピューティング リソースの作成でネットワークの分離パラメーターを制御する場合は、組み込みのポリシーを使用できます。
その他の細かな考慮事項
VNet の背後にある ACR のイメージ ビルド コンピューティング設定
Azure コンテナー レジストリ (ACR) をプライベート エンドポイントの背後に配置した場合、ACR で Docker イメージをビルドできません。 イメージをビルドするには、コンピューティング インスタンスまたはコンピューティング クラスターを使用する必要があります。 詳細については、イメージ ビルド コンピューティングの設定方法に関する記事を参照してください。
プライベート リンクが有効なワークスペースを使用したスタジオ UI の有効化
Azure Machine Learning スタジオを使用する予定の場合は、追加の構成手順が必要です。 これらの手順は、データ流出シナリオを防ぐためのものです。 詳細については、Azure 仮想ネットワークで Azure Machine Learning スタジオを使用する方法に関する記事を参照してください。
次のステップ
マネージド仮想ネットワークを使用する方法の詳細については、次の記事をご覧ください。
Azure Virtual Network の使用方法の詳細については、次の記事をご覧ください。