Azure Machine Learning でのネットワークの分離の計画
この記事では、Azure Machine Learning のネットワークの分離を計画する方法と推奨事項について説明します。 これは、ネットワーク アーキテクチャを設計する IT 管理者向けの記事です。
ネットワークの分離とは
ネットワークの分離とは、ネットワークを個別のセグメントまたはサブネットに分割し、それぞれを独自の小さなネットワークとして機能させるセキュリティ戦略です。 このアプローチは、大規模なネットワーク構造内のセキュリティとパフォーマンスを向上させるために役立ちます。 大企業では、自社のリソースを不正アクセス、改ざん、データやモデルの漏洩から保護するために、ネットワークの分離が必要です。 また、業界やドメインに適用される規制や標準に準拠する必要もあります。
受信アクセスと送信アクセス
ネットワークの分離は、Azure Machine Learning 内の 3 つの領域で考慮する必要があります。
- Azure Machine Learning ワークスペースへの受信アクセス。 たとえば、データ サイエンティストがワークスペースに安全にアクセスする場合などです。
- Azure Machine Learning ワークスペースからの送信アクセス。 たとえば、他の Azure サービスにアクセスする場合などです。
- Azure Machine Learning コンピューティング リソースからの送信アクセス。 たとえば、データ ソース、Python パッケージ リポジトリ、またはその他のリソースにアクセスする場合などです。
次の図は、受信と送信を分類したものです。
Azure Machine Learning への受信アクセス
セキュリティで保護された Azure Machine Learning ワークスペースへの受信アクセスは、公衆ネットワーク アクセス (PNA) フラグを使用して設定されます。 PNA フラグ設定は、ワークスペースにアクセスするためにそのワークスペースにプライベート エンドポイントが必要かどうかを決定します。 パブリックとプライベートの間には、[選択した IP アドレスから有効] という追加の設定があります。 この設定により、指定した IP アドレスからワークスペースにアクセスできます。 この機能の詳細については、「インターネット IP 範囲からのパブリック アクセスのみを有効にする」を参照してください。
送信アクセス
Azure Machine Learning のネットワークの分離には、サービスとしてのプラットフォーム (PaaS) とサービスとしてのインフラストラクチャ (IaaS) の両方のコンポーネントが関与します。 Azure Machine Learning ワークスペース、ストレージ、キー コンテナー、コンテナー レジストリ、モニターなどの PaaS サービスは、Private Link を使用して分離できます。 AI モデル トレーニング用のコンピューティング インスタンスまたはクラスター、AI モデル スコアリング用の Azure Kubernetes Service (AKS) またはマネージド オンライン エンドポイントなどの IaaS コンピューティング サービスを仮想ネットワークに取り込み、Private Link を使用して PaaS サービスと通信できます。 次の図は、IaaS および PaaS のコンポーネントの例です。
サービスから他の Azure PaaS リソースへの送信
Azure Machine Learning service から他の PaaS サービスへの送信アクセスのセキュリティ保護は、信頼されたサービスを通じて行われます。 他のアプリのネットワーク規則を維持しながら、信頼された Azure サービスのサブセットに Azure Machine Learning へのアクセス権を付与することができます。 これらの信頼されたサービスは、マネージド ID を使用して Azure Machine Learning service を認証します。
コンピューティングからインターネットおよびその他の Azure PaaS リソースへの送信
IaaS コンポーネントは、コンピューティング インスタンス/クラスター、Azure Kubernetes Service (AKS) やマネージド オンライン エンドポイントなどのコンピューティング リソースです。 これらの IaaS リソースの場合、インターネットへの送信アクセスはファイアウォールによって保護され、その他の PaaS リソースへの送信アクセスは Private Link とプライベート エンドポイントによって保護されます。 マネージド仮想ネットワークを使用すると、コンピューティングからの送信の制御をより簡単に設定できます。
マネージド仮想ネットワークを使用していない場合は、独自の仮想ネットワークとサブネット セットを使用して送信制御をセキュリティで保護できます。 スタンドアロン仮想ネットワークがある場合は、ネットワーク セキュリティ グループを使用して簡単に構成できます。 ただし、ハブスポークまたはメッシュ ネットワーク アーキテクチャ、ファイアウォール、ネットワーク仮想アプライアンス、プロキシ、ユーザー定義ルーティングがある場合があります。 どちらの場合も、ネットワーク セキュリティ コンポーネントで受信と送信を許可してください。
この図では、ハブとスポークのネットワーク アーキテクチャがあります。 スポーク仮想ネットワークには、Azure Machine Learning 用のリソースがあります。 ハブ仮想ネットワークには、仮想ネットワークからのインターネット送信を制御するファイアウォールがあります。 この場合、ファイアウォールで必要なリソースへの送信を許可する必要があり、スポーク仮想ネットワーク内のコンピューティング リソースがファイアウォールに到達できる必要があります。
ヒント
この図では、コンピューティング インスタンスとコンピューティング クラスターがパブリック IP なしで構成されています。 代わりに、パブリック IP を持つコンピューティング インスタンスまたはクラスターを使用する場合は、ネットワーク セキュリティ グループ (NSG) とユーザー定義ルーティングを使用して、Azure Machine Learning service タグからの受信を許可し、ファイアウォールをスキップする必要があります。 この受信トラフィックは、Microsoft サービス (Azure Machine Learning) からのものになります。 ただし、パブリック IP なしオプションを使用して、この受信要件を削除することをお勧めします。
コンピューティングからの送信アクセスのためのネットワークの分離オファリング
セキュリティで保護する必要があるアクセスについて理解したので、ネットワークの分離を使用して機械学習ワークスペースをセキュリティで保護する方法を見てみましょう。 Azure Machine Learning には、コンピューティング リソースからの送信アクセスのためのネットワークの分離オプションが用意されています。
マネージド ネットワーク分離 (推奨)
マネージド仮想ネットワークを使うと、ネットワーク分離の構成が簡単になります。 マネージド仮想ネットワーク内のワークスペースとマネージド コンピューティング リソースが、自動的にセキュリティ保護されます。 ワークスペースが依存する他の Azure サービス (Azure ストレージ アカウントなど) に対するプライベート エンドポイント接続を追加できます。 ニーズに応じて、パブリック ネットワークへのすべてのアウトバウンド トラフィックを許可することも、ユーザーが承認したアウトバウンド トラフィックのみを許可することもできます。 マネージド仮想ネットワークでは、Azure Machine Learning service に必要なアウトバウンド トラフィックが自動的に有効になります。 摩擦のない組み込みのネットワーク分離方法として、ワークスペースのマネージド ネットワーク分離の使用をお勧めします。 インターネット送信を許可するモードか、承認された送信のみを許可するモードの 2 つのパターンがあります。
Note
マネージド仮想ネットワークを使用してワークスペースをセキュリティで保護すると、ワークスペースとマネージド コンピューティングからの送信アクセスのネットワークの分離が実現します。 "作成して管理する Azure Virtual Network" は、ワークスペースに対する受信アクセスのためのネットワーク分離を提供するために使用されます。 たとえば、ワークスペースのプライベート エンドポイントが Azure Virtual Network に作成されます。 仮想ネットワークに接続するすべてのクライアントは、プライベート エンドポイントを介してワークスペースにアクセスできます。 マネージド コンピューティングでジョブを実行する場合、マネージド ネットワークはどのコンピューティングがアクセスできるかを制限します。 この構成は、仮想ネットワークを設定し、すべてのコンピューティングをその仮想ネットワークに設定する必要があるカスタム仮想ネットワーク オファリングとは異なります。
インターネット送信を許可するモード: 機械学習エンジニアがインターネットに自由にアクセスできるようにする場合は、このオプションを使用します。 他のプライベート エンドポイント アウトバウンド規則を作成して、Azure 上のプライベート リソースにアクセスできるようにします。
承認された送信のみを許可するモード: データ流出リスクを最小限に抑え、機械学習エンジニアがアクセスできる内容を制御する場合は、このオプションを使用します。 プライベート エンドポイント、サービス タグ、FQDN を使用して送信規則を制御できます。
カスタム ネットワーク分離
マネージド仮想ネットワークを使用できない特定の要件や会社のポリシーがある場合は、Azure 仮想ネットワークを使用してネットワークを分離できます。
次の図は、すべてのリソースをプライベートにしながら、仮想ネットワークからの送信インターネット アクセスを許可するための推奨アーキテクチャです。 この図は、次のアーキテクチャを説明しています。
- すべてのリソースを同じリージョンに配置します。
- ファイアウォールとカスタム DNS の設定を含むハブ仮想ネットワーク。
- 次のリソースを含むスポーク仮想ネットワーク:
- トレーニング サブネットには、ML モデルのトレーニングに使用されるコンピューティング インスタンスとクラスターが含まれています。 これらのリソースは、パブリック IP なしで構成されています。
- スコアリング サブネットには、AKS クラスターが含まれています。
- "pe" サブネットには、ワークスペースで使用される、ワークスペースおよびプライベート リソース (ストレージ、キー コンテナー、コンテナー レジストリなど) に接続するプライベート エンドポイントが含まれています。
- カスタム仮想ネットワークを使用してマネージド オンライン エンドポイントをセキュリティで保護するには、レガシ マネージド オンライン エンドポイント マネージド仮想ネットワークを有効にします。 この方法はお勧めしません。
このアーキテクチャによって、ネットワーク セキュリティと ML エンジニアの生産性のバランスが取れます。
Note
ファイアウォール要件を削除する場合は、ネットワーク セキュリティ グループと Azure Virtual Network NAT を使用して、プライベート コンピューティング リソースからのインターネット送信を許可できます。
データ流出防止
この図は、すべてのリソースをプライベートにし、送信先を制御してデータ流出を防ぐために推奨されるアーキテクチャを示しています。 運用環境で機密データに Azure Machine Learning を使用する場合は、このアーキテクチャをお勧めします。 この図は、次のアーキテクチャを説明しています。
- すべてのリソースを同じリージョンに配置します。
- お使いのファイアウォールを含むハブ仮想ネットワーク。
- サービス タグに加えて、ファイアウォールで FQDN を使用してデータ流出を防ぎます。
- 次のリソースを含むスポーク仮想ネットワーク:
- トレーニング サブネットには、ML モデルのトレーニングに使用されるコンピューティング インスタンスとクラスターが含まれています。 これらのリソースは、パブリック IP なしで構成されています。 さらに、データ流出を防ぐために、サービス エンドポイントとサービス エンドポイント ポリシーが設定されています。
- スコアリング サブネットには、AKS クラスターが含まれています。
- "pe" サブネットには、ワークスペースで使用される、ワークスペースおよびプライベート リソース (ストレージ、キー コンテナー、コンテナー レジストリなど) に接続するプライベート エンドポイントが含まれています。
- マネージド オンライン エンドポイントで、ワークスペースのプライベート エンドポイントを使用して受信要求を処理します。 また、プライベート エンドポイントも、マネージド オンライン エンドポイントのデプロイからプライベート ストレージにアクセスできるようにするために使用されます。
ネットワークの分離オプションの比較
マネージド ネットワーク分離とカスタム ネットワーク分離はどちらも同様のオファリングです。 次の表では、設定の観点から見た 2 つのオファリングのすべての類似点と相違点について説明しています。 設定における重要な相違点の 1 つは、コンピューティング用の仮想ネットワーク自体がホストされる場所です。 カスタム ネットワーク分離の場合、コンピューティング用の仮想ネットワークはテナント内にあり、マネージド ネットワーク分離では、コンピューティング用の仮想ネットワークは Microsoft テナントにあります。
類似点 | 相違点 |
---|---|
- ネットワークはお客様専用で、他のお客様と共有されない。
- データは仮想ネットワーク内で保護される。 - 送信規則を使用したエグレスでのフル コントロール。 - 必須の ServiceTag。 |
- 仮想ネットワークがホストされている場所。カスタム ネットワーク分離用のテナント内、またはマネージド ネットワーク分離用の Microsoft テナント内。 |
ご自分のシナリオに最適なネットワーク設定を適切に決定するには、Azure Machine Learning 内のどの機能を使用するかを検討してください。 ネットワーク分離オファリングの違いの詳細については、ネットワーク分離構成の比較に関するページを参照してください。
構成の比較
マネージド ネットワーク (推奨) | カスタム ネットワーク | |
---|---|---|
メリット | - 設定とメンテナンスのオーバーヘッドを最小限に抑える。
- マネージド オンライン エンドポイントのサポート。 - サーバーレス Spark のサポート。 - オンプレミスまたはカスタム仮想ネットワーク内にある HTTP エンドポイント リソースへのアクセス。 - 新機能開発に重点を置いている。 |
- 要件に合わせてネットワークをカスタマイズする。
- 独自の Azure 以外のリソースを持ち込む。 - オンプレミスのリソースに接続する。 |
限界事項 | - Azure Firewall と FQDN の規則の追加コスト。
- 仮想ネットワーク ファイアウォールと NSG 規則のログ記録はサポートされていない。 - HTTP 以外のエンドポイント リソースへのアクセスはサポートされていない。 |
- 新機能のサポートが遅れる可能性がある。
- マネージド オンライン エンドポイントはサポートされていない。 - サーバーレス Spark はサポートされていない。 - 基本モデルはサポートされていない。 - ノー コード MLFlow はサポートされていない。 - 実装が複雑。 - メンテナンスのオーバーヘッド。 |
パブリック ワークスペースを使用する
Microsoft Entra ID 認証と条件付きアクセスによる承認に問題がない場合は、パブリック ワークスペースを使用できます。 パブリック ワークスペースには、プライベート ストレージ アカウントのデータを使用できる機能がいくつかあります。 可能であれば、プライベート ワークスペースを使用することをお勧めします。
重要な考慮事項
コンピューティング インスタンスでのプライベート リンク リソースとアプリケーションの 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 Machine Learning では、プライベート エンドポイントを使用して、マネージド オンライン エンドポイントへの受信通信をセキュリティで保護します。 エンドポイントへのパブリック アクセスを防止するには、エンドポイントの public_network_access フラグを無効に設定します。 このフラグを無効にすると、エンドポイントには Azure Machine Learning ワークスペースのプライベート エンドポイントを介してのみアクセスでき、パブリック ネットワークからはアクセスできません。
- 送信通信: デプロイからリソースへの送信通信を保護するために、Azure Machine Learning はワークスペース マネージド仮想ネットワークを使用します。 ワークスペース マネージド仮想ネットワークにデプロイを作成し、送信通信にワークスペース マネージド仮想ネットワークのプライベート エンドポイントを使用できるようにする必要があります。
次のアーキテクチャ図は、マネージド オンライン エンドポイントへの通信がプライベート エンドポイントを経由してどのように流れるかを示したものです。 受信スコアリング要求は、クライアントの仮想ネットワークからワークスペースのプライベート エンドポイントを経由してマネージド オンライン エンドポイントに流れます。 デプロイからサービスへの送信方向の通信は、ワークスペース マネージド仮想ネットワークからそれらのサービス インスタンスへ、プライベート エンドポイントを通じて処理されます。
詳細については、マネージド オンライン エンドポイントによるネットワーク分離に関するページを参照してください。
メイン ネットワークでのプライベート IP アドレス不足
Azure Machine Learning にはプライベート IP が必要です (コンピューティング インスタンス、コンピューティング クラスター ノード、プライベート エンドポイントごとに 1 つの IP)。 また、AKS を使用する場合は、多くの IP が必要です。 オンプレミス ネットワークに接続されているハブスポーク ネットワークに、十分な大きさのプライベート IP アドレス空間がない場合があります。 このシナリオでは、Azure Machine Learning リソース用に、分離されたピアリングされていない VNet を使用できます。
この図では、メイン仮想ネットワークにはプライベート エンドポイントの IP が必要です。 大きなアドレス空間を持つ複数の Azure Machine Learning ワークスペース用にハブスポーク VNet を使用できます。 このアーキテクチャの欠点は、プライベート エンドポイントの数が 2 倍になることです。
ネットワーク ポリシーの適用
セルフサービス ワークスペースとコンピューティング リソースの作成でネットワーク分離パラメーターを制御する場合や、よりきめ細かい制御を行うためにカスタム ポリシーを作成する場合は、組み込みのポリシーを使用できます。 ポリシーの詳細については、「Azure Policy 規制コンプライアンス コントロール」を参照してください。
関連するコンテンツ
マネージド仮想ネットワークを使用する方法の詳細については、次の記事をご覧ください。
カスタム仮想ネットワークを使用する方法の詳細については、次の記事をご覧ください。