ワークスペースのマネージド仮想ネットワークの分離
適用対象: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 を示しています。
Note
この構成では、ワークスペースで使用されるストレージ、キー コンテナー、コンテナー レジストリに非公開としてフラグが設定されます。 非公開としてフラグが設定されているため、プライベート エンドポイントを使用して通信します。
Note
インターネット送信を許可するようにマネージド VNet ワークスペースを構成すると、ワークスペースを無効に再構成することはできません。 同様に、承認された送信のみを許可するようにマネージド VNet ワークスペースを構成すると、インターネット送信を許可するようにワークスペースを再構成することはできません。 ワークスペースでマネージド VNet の分離モードを選択する場合は、この点に注意してください。
Azure Machine Learning Studio
スタジオから既定のストレージ アカウントの統合ノートブックを使ったりデータセットを作成したりする場合は、お使いのクライアントで既定のストレージ アカウントにアクセスする必要があります。 クライアントが使用する Azure Virtual Networkに、既定のストレージ アカウント用の "プライベート エンドポイント" または "サービス エンドポイント" を作成します。
Azure Machine Learning スタジオの一部がクライアントの Web ブラウザーでローカルに実行されて、ワークスペース用の既定のストレージと直接通信します。 クライアントの仮想ネットワークに (既定のストレージ アカウント用の) プライベート エンドポイントまたはサービス エンドポイントを作成すると、クライアントはストレージ アカウントと通信できるようになります。
プライベート エンドポイントまたはサービス エンドポイントの作成について詳しくは、ストレージ アカウントへのプライベートな接続およびサービス エンドポイントに関する記事をご覧ください。
関連付けられているリソースのセキュリティ保護
サービス エンドポイントまたはプライベート エンドポイントを使用して (パブリック アクセスを無効にして) 以下のサービスを仮想ネットワークに追加する場合、信頼された Microsoft サービスに対して、これらのサービスへのアクセスを許可します。
サービス | エンドポイント情報 | 信頼できる情報を許可する |
---|---|---|
Azure Key Vault | サービス エンドポイント プライベート エンドポイント |
信頼された Microsoft サービスを許可して、このファイアウォールをバイパスする |
Azure Storage アカウント | サービスとプライベート エンドポイント プライベート エンドポイント |
Azure リソース インスタンスからのアクセスを許可する または 信頼された Azure サービスへのアクセスを許可する |
Azure Container Registry | プライベート エンドポイント | 信頼されたサービスを許可する |
前提条件
この記事の手順に従う前に、次の前提条件が満たされていることをご確認ください。
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 サブスクリプションでこれらのコマンドを使う場合は、必要に応じてこれらの値を変更してください。
Note
UAI ワークスペースを使用している場合は、必ず ID に Azure AI エンタープライズ ネットワーク接続承認者ロールを追加してください。 詳しくは、「ユーザー割り当てマネージド 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_tag
、fqdn
、private_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 ジョブを許可するフラグを設定します。
送信プライベート エンドポイントを構成します。
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 アウトバウンド規則を設定してもこの問題は回避されません。マネージド 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 分長くかかります。 マネージド ネットワークにプロビジョニングするアウトバウンド規則が多数ある場合、プロビジョニングが完了するまでに時間がかかる場合があります。 プロビジョニングの時間が長くなると、最初のコンピューティング インスタンス作成がタイムアウトになる可能性があります。
待機時間を短縮し、潜在的なタイムアウト エラーを回避するには、マネージド ネットワークを手動でプロビジョニングすることをお勧めします。 次に、プロビジョニングが完了するまで待ってから、コンピューティング インスタンスを作成します。
Note
オンライン デプロイを作成するには、マネージド ネットワークを手動でプロビジョニングするか、コンピューティング インスタンスを最初に作成し、そのインスタンスにマネージド ネットワーキングを自動プロビジョニングさせる必要があります。
次の例は、マネージド 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.FirstParty
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
シナリオ: バッチ エンドポイントまたは ParallelRunStep を使用する
デプロイに Azure Machine Learning バッチ エンドポイントまたは ParallelRunStep を使う予定の場合は、アウトバウンド "プライベート エンドポイント" 規則を追加して、既定のストレージ アカウントの次のサブ リソースへのトラフィックを許可します。
queue
table
シナリオ: Azure OpenAI、Content Safety、Azure AI Search でプロンプト フローを使用する
- 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 アドレスからのアクセスを有効にする場合は、次のアクションを使います。
送信 "プライベート エンドポイント" 規則を追加して、Azure Machine Learning ワークスペースへのトラフィックを許可します。 これにより、マネージド仮想ネットワーク内に作成されたコンピューティング インスタンスがワークスペースにアクセスできるようになります。
ヒント
ワークスペースはまだ存在しないため、ワークスペースの作成中にこの規則を追加することはできません。
ワークスペースへの公衆ネットワーク アクセスを有効にします。 詳細については、公衆ネットワーク アクセスの有効化に関する記事を参照してください。
Azure Machine Learning のファイアウォールに IP アドレスを追加します。 詳細については、IP 範囲からのみアクセスを有効にするに関する記事を参照してください。
Note
サポートされているのは、IPv4 アドレスのみです。
プライベート エンドポイント
プライベート エンドポイントは現在、次の 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 PostgreSQL フレキシブル サーバー
- Azure Database for MySQL
- Azure API Management
プライベート エンドポイントを作成する場合は、エンドポイントが接続するリソースの種類とサブリソースを指定します。 一部のリソースには、複数の種類とサブリソースがあります。 詳細については、「プライベート エンドポイントとは」を参照してください。
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 の価格」で "標準" バージョンの価格を確認してください。
制限事項
- Azure AI Studio では、独自の Azure Virtual Network を使用してハブ、プロジェクト、コンピューティング リソースを保護することはできません。 これらのリソースをセキュリティで保護するためには、マネージド ネットワーク機能のみを使用できます。
- ワークスペースのマネージド VNET 分離を有効にすると (インターネットの送信を許可するか、承認された送信のみを許可する)、無効にすることはできません。
- マネージド VNet は、プライベート エンドポイント接続を使ってプライベート リソースにアクセスします。 ストレージ アカウントなどの Azure リソースに対して、プライベート エンドポイントとサービス エンドポイントを同時に持つことはできません。 どのシナリオでもプライベート エンドポイントを使うことをお勧めします。
- ワークスペースが削除されると、マネージド VNet が削除されます。
- データ流出防止は、唯一承認された送信モードに対して自動的に有効になります。 FQDN などの他のアウトバウンド規則を追加した場合、Microsoft では、これらの送信先へのデータ流出からの保護を保証できません。
- マネージド VNet を使う場合、サポートされていないワークスペースと異なるリージョンにコンピューティング クラスターを作成することはできません。
- Kubernetes およびアタッチされた VM は、Azure Machine Learning マネージド VNet ではサポートされていません。
- FQDN アウトバウンド規則を使用すると、FQDN 規則で Azure Firewall が使用されるため、マネージド VNet のコストが増加します。 詳細については、価格に関するページをご覧ください。
- FQDN アウトバウンド規則では、ポート 80 と 443 のみがサポートされます。
- コンピューティング インスタンスがマネージド ネットワーク内にあり、パブリック IP 用に構成されていない場合は、
az ml compute connect-ssh
コマンドを使用して SSH を使用して接続します。 - マネージド VNET を使用する場合、カスタム Vnet 内にコンピューティング リソースをデプロイすることはできません。 コンピューティング リソースは、マネージド VNET 内でのみ作成できます。
- マネージド ネットワーク分離は、マネージド仮想ネットワークからユーザーのオンプレミス リソースへのプライベート接続を確立できません。 サポートされているプライベート接続の一覧については、「プライベート エンドポイント」を参照してください。
- マネージド ネットワークが、承認された送信のみを許可するように構成されている場合、FQDN ルールを使用して Azure Storage アカウントにアクセスすることはできません。 代わりに、プライベート エンドポイントを使用する必要があります。
コンピューティング リソースの移行
既存のワークスペースがあり、それに対してマネージド VNet を有効にする場合、現在、既存のマネージド コンピューティング リソースに対してサポートされている移行パスはありません。 既存のすべてのマネージド コンピューティング リソースを削除し、マネージド VNet を有効にした後で再作成する必要があります。 次の一覧には、削除して再作成する必要があるコンピューティング リソースが含まれています。
- コンピューティング クラスター
- コンピューティング インスタンス
- マネージド オンライン エンドポイント