ワークスペースのマネージド仮想ネットワークの分離

適用対象:Azure CLI ml extension v2 (現行)Python SDK azure-ai-ml v2 (現行)

Azure Machine Learning は、マネージド仮想ネットワーク (マネージド VNet) の分離をサポートしています。 マネージド VNet の分離は、組み込みのワークスペースレベルの Azure Machine Learning マネージド VNet を使って、ネットワークの分離構成を合理化し、自動化します。 マネージド VNet は、コンピューティング インスタンス、コンピューティング クラスター、サーバーレス コンピューティング、マネージド オンライン エンドポイントなどのマネージド Azure Machine Learning リソースをセキュリティで保護します。

"マネージド ネットワーク" を使用してワークスペースをセキュリティで保護すると、ワークスペースとマネージド コンピューティングからの送信アクセスのためのネットワーク分離が提供されます。 "作成して管理する Azure Virtual Network" は、ワークスペースに対する受信アクセスのためのネットワーク分離を提供するために使用されます。 たとえば、ワークスペースのプライベート エンドポイントが Azure Virtual Network に作成されます。 仮想ネットワークに接続するすべてのクライアントは、プライベート エンドポイントを介してワークスペースにアクセスできます。 マネージド コンピューティングでジョブを実行する場合、マネージド ネットワークはどのコンピューティングがアクセスできるかを制限します。

マネージド仮想ネットワークのアーキテクチャ

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

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

ヒント

使う送信モードに関係なく、Azure リソースへのトラフィックは、プライベート エンドポイントを使うように構成できます。 たとえば、インターネットへのすべての送信トラフィックを許可し、リソースにアウトバウンド規則を追加して Azure リソースとの通信を制限することができます。

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

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

  • 許可する必要がある送信接続ごとに規則を追加する必要があります。
  • FQDN アウトバウンド規則を追加すると、この規則の種類で Azure Firewall が使われるため、コストが増加します。 詳細については、「価格」を参照してください
  • "承認された送信のみを許可する" の既定の規則は、データ流出のリスクを最小限に抑えるように設計されています。 アウトバウンド規則を追加すると、リスクが増加する可能性があります。

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

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

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

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

Note

この構成では、ワークスペースで使用されるストレージ、キー コンテナー、コンテナー レジストリに非公開としてフラグが設定されます。 非公開としてフラグが設定されているため、プライベート エンドポイントを使用して通信します。

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

Note

インターネット送信を許可するようにマネージド VNet ワークスペースを構成すると、ワークスペースを無効に再構成することはできません。 同様に、承認された送信のみを許可するようにマネージド VNet ワークスペースを構成すると、インターネット送信を許可するようにワークスペースを再構成することはできません。 ワークスペースでマネージド VNet の分離モードを選択する場合は、この点に注意してください。

Azure Machine Learning Studio

スタジオから既定のストレージ アカウントの統合ノートブックを使ったりデータセットを作成したりする場合は、お使いのクライアントで既定のストレージ アカウントにアクセスする必要があります。 クライアントが使用する Azure Virtual Networkに、既定のストレージ アカウント用の "プライベート エンドポイント" または "サービス エンドポイント" を作成します。

Azure Machine Learning スタジオの一部がクライアントの Web ブラウザーでローカルに実行されて、ワークスペース用の既定のストレージと直接通信します。 クライアントの仮想ネットワークに (既定のストレージ アカウント用の) プライベート エンドポイントまたはサービス エンドポイントを作成すると、クライアントはストレージ アカウントと通信できるようになります。

プライベート エンドポイントまたはサービス エンドポイントの作成について詳しくは、ストレージ アカウントへのプライベートな接続およびサービス エンドポイントに関する記事をご覧ください。

前提条件

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

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

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

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

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

    • Microsoft.MachineLearningServices/workspaces/privateEndpointConnections/read
    • Microsoft.MachineLearningServices/workspaces/privateEndpointConnections/write
  • Azure CLI と Azure CLI の ml 拡張機能。 詳しくは、CLI (v2) のインストール、設定、使用に関するページをご覧ください。

    ヒント

    Azure Machine Learning マネージド VNet は 2023 年 5 月 23 日に導入されました。 以前のバージョンの ml 拡張機能を使っている場合は、必要に応じてこの記事の例で機能するように更新します。 拡張機能を更新するには、次の Azure CLI コマンドを使います。

    az extension update -n ml
    
  • この記事の CLI の例では、Bash (または互換性のある) シェルを使用していることを前提としています。 たとえば、Linux システムや Linux 用 Windows サブシステムなどです。

  • この記事の Azure CLI の例では、ワークスペースの名前を表す ws と、リソース グループの名前を表す rg を使っています。 実際の Azure サブスクリプションでこれらのコマンドを使う場合は、必要に応じてこれらの値を変更してください。

  • Azure CLI とマネージド VNet では、パブリック IP を使用した SSH は機能しますが、プライベート IP を使用した SSH は機能しません。

Note

UAI ワークスペースを使用している場合は、必ず ID にネットワーク共同作成者ロールを追加してください。 詳しくは、「ユーザー割り当てマネージド ID」をご覧ください。

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

ヒント

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

重要

サーバーレス Spark ジョブを送信する予定がある場合は、プロビジョニングを手動で始める必要があります。 詳細については、「サーバーレス Spark ジョブの構成」セクションを参照してください。

インターネット送信通信を許可するようにマネージド VNet を構成するには、--managed-network allow_internet_outbound パラメーターまたは次のエントリを含む YAML 構成ファイルのいずれかを使います。

managed_network:
  isolation_mode: allow_internet_outbound

また、ワークスペースが依存する他の Azure サービスに対して "送信規則" を定義することもできます。 これらの規則によって、Azure リソースがマネージド VNet と安全に通信できるようにする "プライベート エンドポイント" を定義します。 次の規則は、Azure BLOB リソースにプライベート エンドポイントを追加する方法を示しています。

managed_network:
  isolation_mode: allow_internet_outbound
  outbound_rules:
  - name: added-perule
    destination:
      service_resource_id: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT_NAME>
      spark_enabled: true
      subresource_target: blob
    type: private_endpoint

az ml workspace create または az ml workspace update コマンドを使ってマネージド VNet を構成できます。

  • 新しいワークスペースを作成する:

    次の例では、新しいワークスペースを作成します。 --managed-network allow_internet_outbound パラメーターを使って、ワークスペースのマネージド VNet を構成します。

    az ml workspace create --name ws --resource-group rg --managed-network allow_internet_outbound
    

    代わりに YAML ファイルを使ってワークスペースを作成するには、--file パラメーターを使い、構成設定を含む YAML ファイルを指定します。

    az ml workspace create --file workspace.yaml --resource-group rg --name ws
    

    次の YAML 例では、マネージド VNet があるワークスペースを定義しています。

    name: myworkspace
    location: EastUS
    managed_network:
      isolation_mode: allow_internet_outbound
    
  • 既存のワークスペースを更新する:

    警告

    マネージド仮想ネットワークを使うように既存のワークスペースを更新する前に、ワークスペースのすべてのコンピューティング リソースを削除する必要があります。 これには、コンピューティング インスタンス、コンピューティング クラスター、マネージド オンライン エンドポイントが含まれます。

    次の例では、既存のワークスペースを更新しています。 --managed-network allow_internet_outbound パラメーターを使って、ワークスペースのマネージド VNet を構成します。

    az ml workspace update --name ws --resource-group rg --managed-network allow_internet_outbound
    

    YAML ファイルを使って既存のワークスペースを更新するには、--file パラメーターを使い、構成設定を含む YAML ファイルを指定します。

    az ml workspace update --file workspace.yaml --name ws --resource-group MyGroup
    

    次の YAML 例では、ワークスペースのマネージド VNet を定義しています。 また、ワークスペースが使うリソース (この例では BLOB ストアのプライベート エンドポイント) にプライベート エンドポイント接続を追加する方法も示しています。

    name: myworkspace
    managed_network:
      isolation_mode: allow_internet_outbound
      outbound_rules:
      - name: added-perule
        destination:
          service_resource_id: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT_NAME>
          spark_enabled: true
          subresource_target: blob
        type: private_endpoint
    

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

ヒント

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

重要

サーバーレス Spark ジョブを送信する予定がある場合は、プロビジョニングを手動で始める必要があります。 詳細については、「サーバーレス Spark ジョブの構成」セクションを参照してください。

承認された送信通信のみを許可するようにマネージド VNet を構成するには、--managed-network allow_only_approved_outbound パラメーターまたは次のエントリを含む YAML 構成ファイルのいずれかを使います。

managed_network:
  isolation_mode: allow_only_approved_outbound

また、"アウトバウンド規則" を定義して、承認する送信通信を定義することもできます。 アウトバウンド規則は、service_tagfqdnprivate_endpoint の種類に対して作成できます。 次の規則は、プライベート エンドポイントを Azure BLOB リソースに、サービス タグを Azure Data Factory に、FQDN を pypi.org に追加する方法を示しています。

重要

  • サービス タグまたは FQDN の送信を追加することは、マネージド VNet が allow_only_approved_outbound に構成されている場合にのみ有効です。
  • アウトバウンド規則を追加した場合、Microsoft はデータ流出を保証できません。

警告

FQDN アウトバウンド規則は Azure Firewall を使って実装されます。 FQDN アウトバウンド規則を使用する場合は、Azure Firewall の料金が請求に追加されます。 詳細については、価格に関するページをご覧ください。

managed_network:
  isolation_mode: allow_only_approved_outbound
  outbound_rules:
  - name: added-servicetagrule
    destination:
      port_ranges: 80, 8080
      protocol: TCP
      service_tag: DataFactory
    type: service_tag
  - name: add-fqdnrule
    destination: 'pypi.org'
    type: fqdn
  - name: added-perule
    destination:
      service_resource_id: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT_NAME>
      spark_enabled: true
      subresource_target: blob
    type: private_endpoint

az ml workspace create または az ml workspace update コマンドを使ってマネージド VNet を構成できます。

  • 新しいワークスペースを作成する:

    次の例では、--managed-network allow_only_approved_outbound パラメーターを使ってマネージド VNet を構成しています。

    az ml workspace create --name ws --resource-group rg --managed-network allow_only_approved_outbound
    

    次の YAML ファイルでは、マネージド VNet があるワークスペースを定義しています。

    name: myworkspace
    location: EastUS
    managed_network:
      isolation_mode: allow_only_approved_outbound
    

    YAML ファイルを使ってワークスペースを作成するには、--file パラメーターを使います。

    az ml workspace create --file workspace.yaml --resource-group rg --name ws
    
  • 既存のワークスペースを更新する

    警告

    マネージド仮想ネットワークを使うように既存のワークスペースを更新する前に、ワークスペースのすべてのコンピューティング リソースを削除する必要があります。 これには、コンピューティング インスタンス、コンピューティング クラスター、マネージド オンライン エンドポイントが含まれます。

    次の例では、--managed-network allow_only_approved_outbound パラメーターを使って、既存のワークスペースのマネージド VNet を構成しています。

    az ml workspace update --name ws --resource-group rg --managed-network allow_only_approved_outbound
    

    次の YAML ファイルでは、ワークスペースのマネージド VNet を定義しています。 また、承認された送信をマネージド VNet に追加する方法も示しています。 この例では、サービス タグの両方に対してアウトバウンド規則が追加されています。

    警告

    FQDN アウトバウンド規則は Azure Firewall を使って実装されます。 アウトバウンド FQDN 規則を使う場合、Azure Firewall の料金が請求に追加されます。詳細については、「価格」を参照してください。

    name: myworkspace_dep
    managed_network:
      isolation_mode: allow_only_approved_outbound
      outbound_rules:
      - name: added-servicetagrule
        destination:
          port_ranges: 80, 8080
          protocol: TCP
          service_tag: DataFactory
        type: service_tag
      - name: add-fqdnrule
        destination: 'pypi.org'
        type: fqdn
      - name: added-perule
        destination:
          service_resource_id: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT_NAME>
          spark_enabled: true
          subresource_target: blob
        type: private_endpoint
    

サーバーレス Spark ジョブ用に構成する

ヒント

このセクションの手順は、サーバーレス Spark ジョブを送信する予定の場合にのみ必要です。 サーバーレス Spark ジョブを送信しない場合は、このセクションをスキップできます。

マネージド VNet のサーバーレス Spark ジョブを有効にするには、次のアクションを実行する必要があります。

  • ワークスペースのマネージド VNet を構成し、Azure Storage アカウントの送信プライベート エンドポイントを追加します。
  • マネージド VNet を構成したら、それをプロビジョニングし、Spark ジョブを許可するフラグを設定します。
  1. 送信プライベート エンドポイントを構成します。

    YAML ファイルを使ってマネージド VNet の構成を定義し、Azure Storage アカウントのプライベート エンドポイントを追加します。 また、spark_enabled: true を設定します。

    ヒント

    この例は、isolation_mode: allow_internet_outbound を使ってインターネット トラフィックを許可するように構成したマネージド VNet の場合です。 承認された送信トラフィックのみを許可する場合は、isolation_mode: allow_only_approved_outbound を使います。

    name: myworkspace
    managed_network:
      isolation_mode: allow_internet_outbound
      outbound_rules:
      - name: added-perule
        destination:
          service_resource_id: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT_NAME>
          spark_enabled: true
          subresource_target: blob
        type: private_endpoint
    

    az ml workspace update コマンドを使い、--file パラメーターと YAML ファイルの名前を指定することで YAML 構成ファイルを使用できます。 たとえば、次のコマンドで、workspace_pe.yml という YAML ファイルを使って既存のワークスペースを更新します。

    az ml workspace update --file workspace_pe.yml --resource_group rg --name ws
    

    Note

    [承認された送信のみを許可する] が有効になっている場合 (isolation_mode: allow_only_approved_outbound)、Spark セッション構成で定義されている conda パッケージの依存関係はインストールに失敗します。 この問題を解決するには、外部依存関係のない自己完結型の Python パッケージ ホイールを Azure Storage アカウントにアップロードし、このストレージ アカウントへのプライベート エンドポイントを作成します。 Python パッケージ ホイールのパスを Spark ジョブの py_files パラメーターとして使います。 Spark では FQDN 規則の伝達がサポートされていないため、FQDN アウトバウンド規則を設定してもこの問題は回避されません。

  2. マネージド VNet をプロビジョニングします。

    Note

    ワークスペースがパブリック エンドポイント用に既に構成されており (たとえば、Azure 仮想ネットワーク)、パブリック ネットワーク アクセスが有効になっている場合は、それを無効にしてからマネージド VNet をプロビジョニングする必要があります。 マネージド VNet のプロビジョニング時にパブリック ネットワーク アクセスを無効にしない場合、マネージド エンドポイントのプライベート エンドポイントが正常に作成されない可能性があります。

    次の例は、--include-spark パラメーターを使ってサーバーレス Spark ジョブ用のマネージド VNet をプロビジョニングする方法を示しています。

    az ml workspace provision-network -g my_resource_group -n my_workspace_name --include-spark
    

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

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

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

次の例は、マネージド VNet をプロビジョニングする方法を示しています。

ヒント

サーバーレス Spark ジョブを送信する場合は、--include-spark パラメーターを追加します。

az ml workspace provision-network -g my_resource_group -n my_workspace_name

プロビジョニングが完了したことを確認するには、次のコマンドを使用します。

az ml workspace show -n my_workspace_name -g my_resource_group --query managed_network

イメージのビルドを構成する

ワークスペースの Azure Container Registry が仮想ネットワークの背後にある場合、それを使って Docker イメージを直接ビルドすることはできません。 代わりに、コンピューティング クラスターまたはコンピューティング インスタンスを使ってイメージをビルドするようにワークスペースを構成してください。

重要

Docker イメージの作成に使用されるコンピューティング リソースは、モデルのトレーニングとデプロイに使用されるパッケージ リポジトリにアクセスできる必要があります。 承認された送信のみを許可するように構成されたネットワークを使っている場合は、必要に応じて、パブリック リポジトリへのアクセスを許可する規則を追加するか、プライベート Python パッケージを使います

Docker イメージのビルドにコンピューティング クラスターまたはコンピューティング インスタンスを使うようにワークスペースを更新するには、--image-build-compute パラメーターを指定して az ml workspace update コマンドを使います。

az ml workspace update --name ws --resource-group rg --image-build-compute mycompute

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

ワークスペースのマネージド VNet アウトバウンド規則を一覧表示するには、次のコマンドを使います。

az ml workspace outbound-rule list --workspace-name ws --resource-group rg

マネージド VNet アウトバウンド規則の詳細を表示するには、次のコマンドを使います。

az ml workspace outbound-rule show --rule rule-name --workspace-name ws --resource-group rg

マネージド VNet からアウトバウンド規則を削除するには、次のコマンドを使います。

az ml workspace outbound-rule remove --rule rule-name --workspace-name ws --resource-group rg

必要な規則の一覧

ヒント

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

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

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

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

  • AzureActiveDirectory
  • AzureMachineLearning
  • BatchNodeManagement.region
  • AzureResourceManager
  • AzureFrontDoor
  • MicrosoftContainerRegistry
  • AzureMonitor

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

  • AzureMachineLearning

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

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

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

警告

FQDN アウトバウンド規則は Azure Firewall を使って実装されます。 FQDN アウトバウンド規則を使用する場合は、Azure Firewall の料金が請求に追加されます。 詳細については、価格に関するページをご覧ください。

Note

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

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

シナリオ: コンピューティング インスタンスでデスクトップまたは Web 版の Visual Studio Code を使用する

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

警告

FQDN アウトバウンド規則は Azure Firewall を使って実装されます。 FQDN アウトバウンド規則を使用する場合は、Azure Firewall の料金が請求に追加されます。 詳細については、価格に関するページをご覧ください。

  • *.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
  • vscode.download.prss.microsoft.com

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

デプロイに Azure Machine Learning バッチ エンドポイントを使う予定の場合は、アウトバウンド "プライベート エンドポイント" 規則を追加して、既定のストレージ アカウントの次のサブ リソースへのトラフィックを許可します。

  • queue
  • table
  • Azure AI サービスへのプライベート エンドポイント
  • Azure AI Search へのプライベート エンドポイント

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

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

警告

FQDN アウトバウンド規則は Azure Firewall を使って実装されます。 FQDN アウトバウンド規則を使用する場合は、Azure Firewall の料金が請求に追加されます。 詳細については、価格に関するページをご覧ください。

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

シナリオ: 選んだ IP アドレスからのアクセスを有効にする

特定の IP アドレスからのアクセスを有効にする場合は、次のアクションを使います。

  1. 送信 "プライベート エンドポイント" 規則を追加して、Azure Machine Learning ワークスペースへのトラフィックを許可します。 これにより、マネージド仮想ネットワーク内に作成されたコンピューティング インスタンスがワークスペースにアクセスできるようになります。

    ヒント

    ワークスペースはまだ存在しないため、ワークスペースの作成中にこの規則を追加することはできません。

  2. ワークスペースへの公衆ネットワーク アクセスを有効にします。 詳細については、公衆ネットワーク アクセスの有効化に関する記事を参照してください。

  3. Azure Machine Learning のファイアウォールに IP アドレスを追加します。 詳細については、IP 範囲からのみアクセスを有効にするに関する記事を参照してください。

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

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

  • Azure Machine Learning
  • Azure Machine Learning レジストリ
  • Azure Storage (すべてのサブ リソースの種類)
  • Azure Container Registry
  • Azure Key Vault
  • Azure AI サービス
  • Azure AI Search (旧称 Azure Cognitive Search)
  • Azure SQL Server
  • Azure Data Factory
  • Azure Cosmos DB (すべてのサブ リソースの種類)
  • Azure Event Hubs
  • Azure Redis Cache
  • Azure Databricks
  • Azure Database for MariaDB
  • Azure Database for PostgreSQL
  • Azure Database for MySQL
  • Azure SQL Managed Instance

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

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

重要

Azure Machine Learning マネージド VNet のプライベート エンドポイントを構成する場合、プライベート エンドポイントは、最初の "コンピューティングが作成された" とき、またはマネージド VNet プロビジョニングが適用されたときにのみ作成されます。 マネージド VNet プロビジョニングの適用に関する詳細については、「サーバーレス Spark ジョブの構成」を参照してください。

価格

Azure Machine Learning マネージド VNet 機能は無料です。 ただし、マネージド VNet によって使われる次のリソースに対しては課金されます。

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

  • FQDN アウトバウンド規則 - FQDN アウトバウンド規則は、Azure Firewall を使用して実装されます。 FQDN アウトバウンド規則を使用する場合は、Azure Firewall の料金が請求に追加されます。 Azure Firewall (Standard SKU) は、Azure Machine Learning によってプロビジョニングされます。

    重要

    アウトバウンド FQDN 規則を追加するまで、ファイアウォールは作成されません。 価格の詳細については、「Azure Firewall の価格」で "標準" バージョンの価格を確認してください。

制限事項

  • ワークスペースのマネージド VNet の分離を有効にした後に、無効にすることはできません。
  • マネージド VNet は、プライベート エンドポイント接続を使ってプライベート リソースにアクセスします。 ストレージ アカウントなどの Azure リソースに対して、プライベート エンドポイントとサービス エンドポイントを同時に持つことはできません。 どのシナリオでもプライベート エンドポイントを使うことをお勧めします。
  • ワークスペースが削除されると、マネージド VNet が削除されます。
  • データ流出防止は、唯一承認された送信モードに対して自動的に有効になります。 FQDN などの他のアウトバウンド規則を追加した場合、Microsoft では、これらの送信先へのデータ流出からの保護を保証できません。
  • マネージド VNet を使う場合、サポートされていないワークスペースと異なるリージョンにコンピューティング クラスターを作成することはできません。
  • Kubernetes およびアタッチされた VM は、Azure Machine Learning マネージド VNet ではサポートされていません。
  • FQDN アウトバウンド規則を使用すると、FQDN 規則で Azure Firewall が使用されるため、マネージド VNet のコストが増加します。 詳細については、価格に関するページをご覧ください。

コンピューティング リソースの移行

既存のワークスペースがあり、それに対してマネージド VNet を有効にする場合、現在、既存のマネージド コンピューティング リソースに対してサポートされている移行パスはありません。 既存のすべてのマネージド コンピューティング リソースを削除し、マネージド VNet を有効にした後で再作成する必要があります。 次の一覧には、削除して再作成する必要があるコンピューティング リソースが含まれています。

  • コンピューティング クラスター
  • コンピューティング インスタンス
  • Kubernetes クラスター
  • マネージド オンライン エンドポイント

次のステップ