Azure AI Studio ハブ用にマネージド ネットワークを構成する方法

重要

この記事で説明する機能の一部は、プレビューでのみ使用できる場合があります。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。

ネットワーク分離には 2 つの側面があります。 1 つは、Azure AI Studio ハブにアクセスするためのネットワークの分離です。 もう 1 つは、ハブとプロジェクトの両方で使用されるコンピューティング リソース (コンピューティング インスタンス、サーバーレス、マネージド オンライン エンドポイントなど) をネットワーク的に分離する方法です。このドキュメントでは、図で強調表示されている後者について説明します。 ハブの組み込みのネットワーク分離を使用して、コンピューティング リソースを保護できます。

ハブのネットワーク分離の図。

以下のネットワーク分離構成を設定する必要があります。

  • ネットワーク分離モードを選択します。 インターネット送信を許可するモードか、承認された送信のみを許可するモードの 2 つのオプションがあります。
  • 承認された送信のみを許可するモードの Visual Studio Code 統合を使用する場合は、「Visual Code Studio を使用する」セクションで説明する FQDN アウトバウンド規則を作成します。
  • 承認された送信のみを許可するモードのモデルで HuggingFace モデルを使用する場合は、「HuggingFace モデルを使用する」セクションで説明する FQDN アウトバウンド規則を作成します。
  • 承認された送信モードのみを許可するオープンソース モデルのいずれかを使用する場合は、「Azure AI によるキュレーション」セクションで説明されている FQDN アウトバウンド規則を作成します。

ネットワーク分離アーキテクチャと分離モード

マネージド仮想ネットワークの分離を有効にすると、ハブ用のマネージド仮想ネットワークが作成されます。 ハブ用に作成したマネージド コンピューティング リソースは、自動的にこのマネージド仮想ネットワークを使います。 マネージド仮想ネットワークは、Azure Storage、Azure Key Vault、Azure Container Registry など、ハブが使う Azure リソースのプライベート エンドポイントを使用できます。

マネージド仮想ネットワークからの送信トラフィックには、3 種類の構成モードがあります。

送信モード 説明 シナリオ
インターネット送信を許可する マネージド仮想ネットワークからのすべてのインターネット送信トラフィックを許可します。 Python パッケージや事前トレーニング済みモデルなど、インターネット上の機械学習リソースに無制限にアクセスする必要がある場合に推奨されます。1
承認された送信のみを許可する 送信トラフィックは、サービス タグを指定することで許可されます。 * データ流出のリスクを最小限に抑えると同時に、プライベート環境で必要な機械学習の成果物をすべて準備する必要があります。
* 承認されたサービス、サービス タグ、または FQDN の一覧への送信アクセスを構成する必要があります。
無効 受信および送信トラフィックが制限されていません。 ハブからのパブリック受信と送信が必要です。

1: "承認された送信のみを許可する" モードのアウトバウンド規則を使うと、インターネット送信を許可するのと同じ結果を得られます。 相違点は以下のとおりです。

  • Azure リソースにアクセスするには常にプライベート エンドポイントを使用します。
  • 許可する必要がある送信接続ごとに規則を追加する必要があります。
  • FQDN アウトバウンド規則を追加すると、この規則の種類で Azure Firewall が使われるため、コストが増加します。 FQDN アウトバウンド規則を使用する場合は、Azure Firewall の料金が請求に含まれます。 詳細については、価格に関するページをご覧ください。
  • "承認された送信のみを許可する" の既定の規則は、データ流出のリスクを最小限に抑えるように設計されています。 アウトバウンド規則を追加すると、リスクが増加する可能性があります。

マネージド仮想ネットワークは、必須の既定の規則を使って事前に構成されています。 また、ハブ、ハブの既定の Storage、Container Registry、Key Vault へのプライベート エンドポイント接続がプライベートとして構成されている場合、または承認された送信のみを許可するようにハブの分離モードが設定されている場合にも構成されます。 分離モードを選んだ後は、追加する必要がある場合がある他の送信要件のみ考慮する必要があります。

次の図は、インターネット送信を許可するように構成されたマネージド仮想ネットワークを示しています。

インターネット送信用に構成されたマネージド仮想ネットワーク分離の図。

次の図は、承認された送信のみを許可するように構成されたマネージド仮想ネットワークを示しています。

Note

この構成では、ハブで使用される Storage、Key Vault、Container Registry に非公開としてフラグが設定されます。 非公開としてフラグが設定されているため、プライベート エンドポイントを使用して通信します。

承認された送信のみを許可するように構成されたマネージド仮想ネットワーク分離の図。

前提条件

この記事の手順に従う前に、次の前提条件が満たされていることをご確認ください。

  • Azure サブスクリプション。 Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。

  • Microsoft.Network リソース プロバイダーは、Azure サブスクリプションに登録する必要があります。 このリソース プロバイダーは、マネージド仮想ネットワークのプライベート エンドポイントを作成するときにハブによって使用されます。

    リソースプロバイダーの登録については、「リソースプロバイダー登録エラーの解決」を参照してください。

  • マネージド ネットワークをデプロイするときに使用する Azure ID には、プライベート エンドポイントを作成するための次の Azure ロールベースのアクセス制御 (Azure RBAC) アクションが必要です。

    • Microsoft.MachineLearningServices/workspaces/privateEndpointConnections/read
    • Microsoft.MachineLearningServices/workspaces/privateEndpointConnections/write

制限事項

  • Azure AI Studio では、現時点では自分で用意した仮想ネットワークを使うことはできません。マネージド仮想ネットワークで分離された環境のみがサポートされています。
  • Azure AI のマネージド仮想ネットワークの分離を有効にした後に、無効にすることはできません。
  • マネージド仮想ネットワークは、プライベート エンドポイント接続を使ってプライベート リソースにアクセスします。 ストレージ アカウントなどの Azure リソースに対して、プライベート エンドポイントとサービス エンドポイントを同時に持つことはできません。 どのシナリオでもプライベート エンドポイントを使うことをお勧めします。
  • Azure AI が削除されると、マネージド仮想ネットワークは削除されます。
  • データ流出防止は、唯一承認された送信モードに対して自動的に有効になります。 FQDN などの他のアウトバウンド規則を追加した場合、Microsoft では、これらの送信先へのデータ流出からの保護を保証できません。
  • FQDN アウトバウンド規則を使用すると、FQDN 規則で Azure Firewall が使用されるため、マネージド仮想ネットワークのコストが増加します。 詳細については、価格に関するページをご覧ください。
  • FQDN アウトバウンド規則では、ポート 80 と 443 のみがサポートされます。
  • マネージド ネットワークでコンピューティング インスタンスを使う場合、az ml compute connect-ssh コマンドを使って SSH 経由でコンピューティング インスタンスに接続します。

インターネット送信を許可するようにマネージド仮想ネットワークを構成する

ヒント

マネージド VNet の作成は、コンピューティング リソースが作成されるか、プロビジョニングが手動で開始されるまで延期されます。 自動作成を許可すると、ネットワークのプロビジョニングも行われるため、最初のコンピューティング リソースの作成に約 30 分かかることがあります。

  • 新しいハブを作成する:

    1. Azure portal にサインインし、[リソースの作成] メニューから [Azure AI Studio] を選択します。

    2. [新しい Azure AI ] を選択します。

    3. [基本] タブで、必要な情報を指定します。

    4. [ネットワーク] タブで、[Private with Internet Outbound] (インターネット アウトバウンドに関してプライベート) を選びます。

    5. "アウトバウンド規則" を追加するには、[ネットワーク] タブから [ユーザー定義アウトバウンド規則の追加] を選びます。[アウトバウンド規則] サイド バーから、次の情報を指定します。

      • 規則の名前: 規則の名前。 このハブの名前は一意である必要があります。
      • 送信先の種類: ネットワーク分離がインターネット送信で非公開である場合、プライベート エンドポイントのみが選択されます。 ハブのマネージド仮想ネットワークでは、すべての Azure リソースの種類に対するプライベート エンドポイントの作成はサポートされていません。 サポートされているリソースの一覧で、[プライベート エンドポイント] セクションを参照してください。
      • サブスクリプション: プライベート エンドポイントを追加する Azure リソースを含むサブスクリプション。
      • リソース グループ: プライベート エンドポイントを追加する Azure リソースを含むリソース グループ。
      • リソースの種類: Azure リソースの種類。
      • リソース名: Azure リソースの名前。
      • サブ リソース: Azure リソースの種類のサブ リソース。

      保存 を選択してルールを保存します。 [ユーザー定義アウトバウンド規則の追加] を引き続き使用して規則を追加できます。

    6. 通常どおりハブの作成を続行します。

  • 既存の VM を更新する:

    1. Azure portalにサインインし、マネージド仮想ネットワークの分離を有効にするハブを選びます。

    2. [ネットワーク] を選択した後に、[インターネット送信を持つプライベート] を選択します。

      • "アウトバウンド規則" を "追加" するには、[ネットワーク] タブから [Add user-defined outbound rules] (ユーザー定義のアウトバウンド規則の追加) を選びます。[アウトバウンド規則] サイド バーでは、先ほどの [新しいハブを作成] セクションでハブの作成時に入力したのと同じ情報を設定します。

      • アウトバウンド規則を削除するには、規則の [削除] を選択します。

    3. ページの上部にある [保存] を選択して、マネージド仮想ネットワークへの変更を保存します。

承認された送信のみを許可するマネージド仮想ネットワークを構成する

ヒント

コンピューティング リソースを作成すると、マネージド VNet は自動的にプロビジョニングされます。 自動作成を許可すると、ネットワークのプロビジョニングも行われるため、最初のコンピューティング リソースの作成に約 30 分かかることがあります。 FQDN アウトバウンド規則を構成した場合、最初の FQDN 規則のプロビジョニング時間は約 10 分長くかかります。

  • 新しいハブを作成する:

    1. Azure portal にサインインし、[リソースの作成] メニューから [Azure AI Studio] を選択します。

    2. [新しい Azure AI ] を選択します。

    3. [基本] タブで、必要な情報を指定します。

    4. [ネットワーク] タブから、[承認された送信を持つプライベート] を選択します。

    5. "アウトバウンド規則" を追加するには、[ネットワーク] タブから [ユーザー定義アウトバウンド規則の追加] を選びます。[アウトバウンド規則] サイド バーから、次の情報を指定します。

      • 規則の名前: 規則の名前。 このハブの名前は一意である必要があります。
      • 送信先の種類: プライベート エンドポイント、サービス タグ、または FQDN。 サービス タグと FQDN は、ネットワーク分離が承認された送信で非公開である場合にのみ使用できます。

      送信先の種類がプライベート エンドポイントの場合は、次の情報を指定します。

      • サブスクリプション: プライベート エンドポイントを追加する Azure リソースを含むサブスクリプション。
      • リソース グループ: プライベート エンドポイントを追加する Azure リソースを含むリソース グループ。
      • リソースの種類: Azure リソースの種類。
      • リソース名: Azure リソースの名前。
      • サブ リソース: Azure リソースの種類のサブ リソース。

      ヒント

      ハブのマネージド仮想ネットワークでは、すべての Azure リソースの種類に対するプライベート エンドポイントの作成はサポートされていません。 サポートされているリソースの一覧で、[プライベート エンドポイント] セクションを参照してください。

      送信先の種類がサービス タグの場合は、次の情報を指定します。

      • サービス タグ: 承認されたアウトバウンド規則に追加するサービス タグ。
      • プロトコル: サービス タグを許可するプロトコル。
      • ポート範囲: サービス タグを許可するポート範囲。

      送信先の種類が FQDN の場合は、次の情報を指定します。

      • FQDN 送信先: 承認済みのアウトバウンド規則に追加する完全修飾ドメイン名。

      保存 を選択してルールを保存します。 [ユーザー定義アウトバウンド規則の追加] を引き続き使用して規則を追加できます。

    6. 通常どおりハブの作成を続行します。

  • 既存の VM を更新する:

    1. Azure portalにサインインし、マネージド仮想ネットワークの分離を有効にするハブを選びます。

    2. [ネットワーク] を選択した後に、[承認された送信を持つプライベート] を選択します。

      • "アウトバウンド規則" を "追加" するには、[ネットワーク] タブから [Add user-defined outbound rules] (ユーザー定義のアウトバウンド規則の追加) を選びます。[アウトバウンド規則] サイド バーでは、先ほどの [新しいハブを作成] セクションでハブの作成時に入力したのと同じ情報を設定します。

      • アウトバウンド規則を削除するには、規則の [削除] を選択します。

    3. ページの上部にある [保存] を選択して、マネージド仮想ネットワークへの変更を保存します。

マネージド VNet を手動でプロビジョニングする

コンピューティング インスタンスを作成すると、マネージド VNet は自動的にプロビジョニングされます。 自動作成を利用している場合、ネットワークのプロビジョニングも行われるため、最初のコンピューティング インスタンスの作成に約 30 分かかることがあります。 FQDN アウトバウンド規則 (承認済みのみを許可するモードでだけ使用できます) を構成した場合、最初の FQDN 規則のプロビジョニング時間は約 10 分長くかかります。 マネージド ネットワークにプロビジョニングするアウトバウンド規則が多数ある場合、プロビジョニングが完了するまでに時間がかかる場合があります。 プロビジョニングの時間が長くなると、最初のコンピューティング インスタンス作成がタイムアウトになる可能性があります。

待機時間を短縮し、潜在的なタイムアウト エラーを回避するには、マネージド ネットワークを手動でプロビジョニングすることをお勧めします。 次に、プロビジョニングが完了するまで待ってから、コンピューティング インスタンスを作成します。

Note

オンライン デプロイを作成するには、マネージド ネットワークを手動でプロビジョニングするか、コンピューティング インスタンスを最初に作成し、そのインスタンスにマネージド ネットワーキングを自動プロビジョニングさせる必要があります。

Azure CLI または Python SDK のタブを使用して、マネージド VNET を手動でプロビジョニングする方法について説明します。

アウトバウンド規則を管理する

  1. Azure portalにサインインし、マネージド仮想ネットワークの分離を有効にするハブを選びます。
  2. [ネットワーク] を選択します。 [Azure AI Outbound access] (Azure AI 送信アクセス) セクションを使用すると、アウトバウンド規則を管理できます。
  • "アウトバウンド規則" を "追加" するには、[ネットワーク] タブから [Add user-defined outbound rules] (ユーザー定義のアウトバウンド規則の追加) を選びます。[Azure AI outbound rules] (Azure AI アウトバウンド規則) サイドバーから、次の情報を指定します。

  • 規則を有効または無効にするには、[アクティブ] 列のトグルを使用します。

  • アウトバウンド規則を削除するには、規則の [削除] を選択します。

必要な規則の一覧

ヒント

これらの規則は、マネージド VNet に自動的に追加されます。

プライベート エンドポイント:

  • マネージド仮想ネットワークの分離モードが Allow internet outbound のとき、プライベート エンドポイントのアウトバウンド規則は、ハブのマネージド仮想ネットワークと、パブリック ネットワーク アクセスが無効になっている関連リソース (Key Vault、Storage Account、Container Registry、ハブ) に必要な規則として自動的に作成されます。
  • マネージド仮想ネットワークの分離モードが Allow only approved outbound のとき、プライベート エンドポイントのアウトバウンド規則は、ハブのマネージド仮想ネットワークと、パブリック ネットワークのアクセス モードに関係なく関連リソース (Key Vault、Storage Account、Container Registry、ハブ) に必要な規則として自動的に作成されます。

アウトバウンド サービス タグの規則:

  • AzureActiveDirectory
  • Azure Machine Learning
  • BatchNodeManagement.region
  • AzureResourceManager
  • AzureFrontDoor.FirstParty
  • MicrosoftContainerRegistry
  • AzureMonitor

インバウンド サービス タグの規則:

  • AzureMachineLearning

シナリオ固有のアウトバウンド規則の一覧

シナリオ: パブリック機械学習パッケージにアクセスする

トレーニングとデプロイ用の Python パッケージをインストールできるようにするには、アウトバウンド FQDN 規則を追加して、次のホスト名へのトラフィックを許可します。

Note

これは、インターネット上のすべての Python リソースに必要なホストの完全な一覧ではなく、最も一般的に使用されているもののみを取り上げています。 たとえば、GitHub リポジトリまたはその他のホストにアクセスする必要がある場合は、そのシナリオに必要なホストを特定して追加する必要があります。

ホスト名 目的
anaconda.com
*.anaconda.com
既定のパッケージをインストールするために使用されます。
*.anaconda.org リポジトリ データを取得するために使用されます。
pypi.org 既定のインデックスからの依存関係 (存在する場合) を一覧表示するために使用されます。ユーザー設定によってこのインデックスが上書きされることはありません。 インデックスが上書きされる場合は、*.pythonhosted.org も許可する必要があります。
pytorch.org
*.pytorch.org
PyTorch に基づくいくつかのサンプルによって使用されます。
*.tensorflow.org Tensorflow に基づくいくつかのサンプルによって使用されます。

シナリオ: Visual Studio Code を使用する

Visual Studio Code は、リモート接続を確立するために特定のホストとポートに依存します。

Hosts

Azure AI ハブで Visual Studio Code を使う予定の場合は、アウトバウンド FQDN 規則を追加して、次のホストへのトラフィックを許可します。

  • *.vscode.dev
  • vscode.blob.core.windows.net
  • *.gallerycdn.vsassets.io
  • raw.githubusercontent.com
  • *.vscode-unpkg.net
  • *.vscode-cdn.net
  • *.vscodeexperiments.azureedge.net
  • default.exp-tas.com
  • code.visualstudio.com
  • update.code.visualstudio.com
  • *.vo.msecnd.net
  • marketplace.visualstudio.com
  • pkg-containers.githubusercontent.com
  • github.com

Port

ポート 8704 から 8710 へのネットワーク トラフィックを許可する必要があります。 VS Code サーバーは、この範囲内の最初の使用可能なポートを動的に選択します。

シナリオ: HuggingFace モデルを使用する

ハブで HuggingFace モデルを使う予定の場合は、アウトバウンド FQDN 規則を追加して、次のホストへのトラフィックを許可します。

  • docker.io
  • *.docker.io
  • *.docker.com
  • production.cloudflare.docker.com
  • cnd.auth0.com
  • cdn-lfs.huggingface.co

シナリオ: Azure AI によるキュレーション

これらのモデルには、実行時の依存関係の動的インストールが含まれ、次のホストへのトラフィックを許可するアウトバウンド FQDN 規則が必要です。

*.anaconda.org *.anaconda.com anaconda.com pypi.org *.pythonhosted.org *.pytorch.org pytorch.org

プライベート エンドポイント

プライベート エンドポイントは現在、次の Azure サービスでサポートされています。

  • AI Studio ハブ
  • Azure AI Search
  • Azure AI サービス
  • Azure API Management
  • Azure Container Registry
  • Azure Cosmos DB (すべてのサブ リソースの種類)
  • Azure Data Factory
  • Azure Database for MariaDB
  • Azure Database for MySQL
  • Azure Database for PostgreSQL 単一サーバー
  • Azure Database for PostgreSQL フレキシブル サーバー
  • Azure Databricks
  • Azure Event Hubs
  • Azure Key Vault
  • Azure Machine Learning
  • Azure Machine Learning レジストリ
  • Azure Redis Cache
  • Azure SQL Server
  • Azure Storage (すべてのサブ リソースの種類)

プライベート エンドポイントを作成する場合は、エンドポイントが接続するリソースの種類サブリソースを指定します。 一部のリソースには、複数の種類とサブリソースがあります。 詳細については、「プライベート エンドポイントとは」を参照してください。

Azure Storage、Azure Container Registry、Azure Key Vault などのハブ依存関係リソースのプライベート エンドポイントを作成する場合、そのリソースは別の Azure サブスクリプションに含めることができます。 ただし、リソースはハブと同じテナントに存在する必要があります。

ターゲット リソースが上で示した Azure リソースである場合、接続用にプライベート エンドポイントが自動的に作成されます。 プライベート エンドポイントには有効なターゲット ID が必要です。 接続の有効なターゲット ID は、親リソースの Azure Resource Manager ID でかまいません。 ターゲット ID は、接続のターゲットまたは metadata.resourceid でも必要です。 接続に関する詳細情報については、「Azure AI Studio で新しい接続を追加する方法」を参照してください。

価格

ハブのマネージド仮想ネットワーク機能は無料です。 ただし、マネージド仮想ネットワークで使用される次のリソースに対して課金されます。

  • Azure Private Link - マネージド仮想ネットワークと Azure リソースとの間の通信をセキュリティで保護するために使用されるプライベート エンドポイントは、Azure Private Link に依存します。 詳細については、「Azure Private Link の価格」を参照してください。

  • FQDN アウトバウンド規則 - FQDN アウトバウンド規則は、Azure Firewall を使用して実装されます。 FQDN アウトバウンド規則を使用する場合は、Azure Firewall の料金が請求に含まれます。 Azure Firewall SKU が標準です。 Azure Firewall はハブごとにプロビジョニングされます。

    重要

    アウトバウンド FQDN 規則を追加するまで、ファイアウォールは作成されません。 FQDN 規則を使わない場合、Azure Firewall については課金されません。 価格の詳細については、「Azure Firewall の価格」を参照してください。