ワークスペースのマネージド仮想ネットワークの分離
適用対象:Azure CLI ml extension v2 (現行)Python SDK azure-ai-ml v2 (現行)
Azure Machine Learning は、マネージド仮想ネットワーク (マネージド仮想ネットワーク) 分離をサポートしています。 マネージド仮想ネットワークを分離すると、組み込みのワークスペース レベルの Azure Machine Learning マネージド仮想ネットワークを使用して、ネットワークの分離構成を合理化し、自動化することができます。 マネージド仮想ネットワークでは、コンピューティング インスタンス、コンピューティング クラスター、サーバーレス コンピューティング、マネージド オンライン エンドポイントなどのマネージド Azure Machine Learning リソースがセキュリティで保護されます。
"マネージド ネットワーク" を使用してワークスペースをセキュリティで保護すると、ワークスペースとマネージド コンピューティングからの送信アクセスのためのネットワーク分離が提供されます。 "作成して管理する Azure Virtual Network" は、ワークスペースに対する受信アクセスのためのネットワーク分離を提供するために使用されます。 たとえば、ワークスペースのプライベート エンドポイントが Azure Virtual Network に作成されます。 仮想ネットワークに接続するすべてのクライアントは、プライベート エンドポイントを介してワークスペースにアクセスできます。 マネージド コンピューティングでジョブを実行する場合、マネージド ネットワークはどのコンピューティングがアクセスできるかを制限します。
マネージド仮想ネットワークのアーキテクチャ
マネージド仮想ネットワーク分離を有効にすると、ワークスペース用のマネージド仮想ネットワークが作成されます。 ワークスペース用に作成したマネージド コンピューティング リソースでは、このマネージド仮想ネットワークが自動的に使用されます。 マネージド仮想ネットワークでは、Azure Storage、Azure Key Vault、Azure Container Registry など、ワークスペースで使用される Azure リソースのプライベート エンドポイントを使用できます。
マネージド仮想ネットワークからの送信トラフィックには、2 種類の構成モードがあります。
ヒント
使う送信モードに関係なく、Azure リソースへのトラフィックは、プライベート エンドポイントを使うように構成できます。 たとえば、インターネットへのすべての送信トラフィックを許可し、リソースにアウトバウンド規則を追加して Azure リソースとの通信を制限することができます。
送信モード | 説明 | シナリオ |
---|---|---|
インターネット送信を許可する | マネージド仮想ネットワークからのすべてのインターネット送信トラフィックを許可します。 | Python パッケージや事前トレーニング済みモデルなど、インターネット上の機械学習リソースに無制限にアクセスする必要がある場合に推奨されます。1 |
承認された送信のみを許可する | 送信トラフィックは、サービス タグを指定することで許可されます。 | * データ流出のリスクを最小限に抑えると同時に、プライベート環境で必要な機械学習の成果物をすべて準備する必要があります。 * 承認されたサービス、サービス タグ、または FQDN の一覧への送信アクセスを構成する必要があります。 |
無効 | 受信と送信のトラフィックが制限されていません。または、リソースを保護するために独自の Azure 仮想ネットワークを使っています。 | ワークスペースからのパブリック送受信が必要です。または、独自の Azure 仮想ネットワークを使用してネットワークの分離を処理しています。 |
1: "承認された送信のみを許可する" モードのアウトバウンド規則を使うと、インターネット送信を許可するのと同じ結果を得られます。 相違点は以下のとおりです。
- 許可する必要がある送信接続ごとに規則を追加する必要があります。
- FQDN アウトバウンド規則を追加すると、この規則の種類で Azure Firewall が使われるため、コストが増加します。 詳細については、「価格」を参照してください
- "承認された送信のみを許可する" の既定の規則は、データ流出のリスクを最小限に抑えるように設計されています。 アウトバウンド規則を追加すると、リスクが増加する可能性があります。
マネージド仮想ネットワークは、必須の既定の規則を使って事前に構成されています。 また、ワークスペース、ワークスペースの既定のストレージ、コンテナー レジストリ、キー コンテナーへのプライベート エンドポイント接続がプライベートとして構成されている場合や承認された送信のみを許可するようにワークスペースの分離モードが設定されている場合にも構成されます。 分離モードを選んだ後は、追加する必要がある場合がある他の送信要件のみ考慮する必要があります。
次の図は、インターネット送信を許可するように構成されたマネージド仮想ネットワークを示しています。
次の図は、承認された送信のみを許可するように構成されたマネージド仮想ネットワークを示しています。
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 ジョブの構成」セクションを参照してください。
インターネット送信通信を許可するようにマネージド仮想ネットワークを構成するには、--managed-network allow_internet_outbound
パラメーターまたは次のエントリを含む YAML 構成ファイルのいずれかを使います。
managed_network:
isolation_mode: allow_internet_outbound
また、ワークスペースが依存する他の Azure サービスに対して "送信規則" を定義することもできます。 これらの規則によって、Azure リソースがマネージド仮想ネットワークと安全に通信できるようにする "プライベート エンドポイント" を定義します。 次の規則は、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
コマンドのいずれかを使用して構成できます。
新しいワークスペースを作成する:
次の例では、新しいワークスペースを作成します。
--managed-network allow_internet_outbound
パラメーターを使用すると、ワークスペースのマネージド仮想ネットワークが構成されます。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 の例では、マネージド仮想ネットワークを持つワークスペースを定義します。
name: myworkspace location: EastUS managed_network: isolation_mode: allow_internet_outbound
既存のワークスペースを更新する:
警告
マネージド仮想ネットワークを使うように既存のワークスペースを更新する前に、ワークスペースのすべてのコンピューティング リソースを削除する必要があります。 これには、コンピューティング インスタンス、コンピューティング クラスター、マネージド オンライン エンドポイントが含まれます。
次の例では、既存のワークスペースを更新しています。
--managed-network allow_internet_outbound
パラメーターを使用すると、ワークスペースのマネージド仮想ネットワークが構成されます。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 の例では、ワークスペースのマネージド仮想ネットワークを定義します。 また、ワークスペースが使うリソース (この例では 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 ジョブの構成」セクションを参照してください。
承認された送信通信のみを許可するようにマネージド仮想ネットワークを構成するには、--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
コマンドのいずれかを使用して構成できます。
新しいワークスペースを作成する:
次の例では、
--managed-network allow_only_approved_outbound
パラメーターを使ってマネージド仮想ネットワークを構成しています。az ml workspace create --name ws --resource-group rg --managed-network allow_only_approved_outbound
次の YAML ファイルでは、マネージド仮想ネットワークがあるワークスペースを定義しています。
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
パラメーターを使用して、既存のワークスペースのマネージド仮想ネットワークを構成します。az ml workspace update --name ws --resource-group rg --managed-network allow_only_approved_outbound
次の YAML ファイルでは、ワークスペースのマネージド仮想ネットワークを定義しています。 また、承認された送信をマネージド仮想ネットワークに追加する方法も示しています。 この例では、サービス タグの両方に対してアウトバウンド規則が追加されています。
警告
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 ジョブを送信しない場合は、このセクションをスキップできます。
マネージド仮想ネットワークに対してサーバーレス Spark ジョブを有効にするには、次の操作を実行する必要があります。
- ワークスペースのマネージド仮想ネットワークを構成し、Azure Storage アカウントの送信プライベート エンドポイントを追加します。
- マネージド仮想ネットワークを構成したら、それをプロビジョニングし、Spark ジョブを許可するフラグを設定します。
送信プライベート エンドポイントを構成します。
YAML ファイルを使用してマネージド仮想ネットワークの構成を定義し、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 アウトバウンド規則を設定してもこの問題は回避されません。マネージド仮想ネットワークをプロビジョニングします。
Note
ワークスペースがパブリック エンドポイント用に既に構成されており (たとえば、Azure 仮想ネットワーク)、パブリック ネットワーク アクセスが有効になっている場合は、それを無効にしてからマネージド VNet をプロビジョニングする必要があります。 マネージド VNet のプロビジョニング時にパブリック ネットワーク アクセスを無効にしない場合、マネージド エンドポイントのプライベート エンドポイントが正常に作成されない可能性があります。
次の例は、
--include-spark
パラメーターを使用してサーバーレス Spark ジョブ用のマネージド仮想ネットワークをプロビジョニングする方法を示しています。az ml workspace provision-network -g my_resource_group -n my_workspace_name --include-spark
マネージド VNet を手動でプロビジョニングする
マネージド仮想ネットワークは、コンピューティング インスタンスを作成すると自動的にプロビジョニングされます。 自動作成を利用している場合、ネットワークのプロビジョニングも行われるため、最初のコンピューティング インスタンスの作成に約 30 分かかることがあります。 FQDN アウトバウンド規則 (承認済みのみを許可するモードでだけ使用できます) を構成した場合、最初の FQDN 規則のプロビジョニング時間は約 10 分長くかかります。 マネージド ネットワークにプロビジョニングするアウトバウンド規則が多数ある場合、プロビジョニングが完了するまでに時間がかかる場合があります。 プロビジョニングの時間が長くなると、最初のコンピューティング インスタンス作成がタイムアウトになる可能性があります。
待機時間を短縮し、潜在的なタイムアウト エラーを回避するには、マネージド ネットワークを手動でプロビジョニングすることをお勧めします。 次に、プロビジョニングが完了するまで待ってから、コンピューティング インスタンスを作成します。
または、ワークスペース作成の一環として、provision_network_now
フラグを使用してマネージド ネットワークをプロビジョニングできます。 このフラグはプレビュー段階です。
Note
オンライン デプロイを作成するには、マネージド ネットワークを手動でプロビジョニングするか、コンピューティング インスタンスを最初に作成し、そのインスタンスにマネージド ネットワーキングを自動プロビジョニングさせる必要があります。
次の例は、ワークスペース作成中にマネージド仮想ネットワークをプロビジョニングする方法を示しています。 --provision-network-now
フラグはプレビュー段階です。
az ml workspace create -n myworkspace -g my_resource_group --managed-network AllowInternetOutbound --provision-network-now
次の例は、マネージド仮想ネットワークを手動でプロビジョニングする方法を示しています。
ヒント
サーバーレス 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
アウトバウンド規則を管理する
ワークスペースのマネージド仮想ネットワークのアウトバウンド規則を一覧表示するには、次のコマンドを使用します。
az ml workspace outbound-rule list --workspace-name ws --resource-group rg
マネージド仮想ネットワーク アウトバウンド規則の詳細を表示するには、次のコマンドを使います。
az ml workspace outbound-rule show --rule rule-name --workspace-name ws --resource-group rg
マネージド仮想ネットワークからアウトバウンド規則を削除するには、次のコマンドを使います。
az ml workspace outbound-rule remove --rule rule-name --workspace-name ws --resource-group rg
必要な規則の一覧
ヒント
これらの規則は、マネージド VNet に自動的に追加されます。
プライベート エンドポイント:
- マネージド仮想ネットワーク分離モードが
Allow internet outbound
の場合は、パブリック ネットワーク アクセスが無効になっているワークスペースと関連リソース (Key Vault、ストレージ アカウント、コンテナー レジストリ、Azure Machine Learning ワークスペース) のマネージド仮想ネットワークで必要な規則として、プライベート エンドポイントのアウトバウンド規則が自動的に作成されます。 - マネージド仮想ネットワーク分離モードが
Allow only approved outbound
の場合は、ワークスペースと関連リソース (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 Firewall バージョンを選択する (プレビュー)
Azure Firewall は、[承認された送信のみを許可する] モードのときに FQDN アウトバウンド規則が作成される場合にデプロイされます。 Azure Firewall の料金は請求に含まれます。 既定では、Standard バージョンの AzureFirewall が作成されます。 必要に応じて、Basic バージョンの使用を選択できます。 使用するファイアウォールのバージョンは、必要に応じて変更できます。 最適なバージョンを確認するには、適切な Azure Firewall バージョンの選択に関する記事を参照してください。
重要
アウトバウンド FQDN 規則を追加するまで、ファイアウォールは作成されません。 価格の詳細については、「Azure Firewall の価格」で "標準" バージョンの価格を確認してください。
マネージド仮想ネットワークのファイアウォール バージョンを選択する方法を確認するには、次のタブを使用します。
CLI からファイアウォール バージョンを構成するには、YAML ファイルを使用して、firewall_sku
を指定します。 次の例は、ファイアウォール SKU が basic
に設定されている YAML ファイルを示しています。
name: test-ws
resource_group: test-rg
location: eastus2
managed_network:
isolation_mode: allow_only_approved_outbound
outbound_rules:
- category: required
destination: 'contoso.com'
name: contosofqdn
type: fqdn
firewall_sku: basic
tags: {}
価格
Azure Machine Learning のマネージド仮想ネットワーク機能は無料です。 ただし、マネージド仮想ネットワークで使用される次のリソースに対して課金されます。
Azure Private Link - マネージド仮想ネットワークと Azure リソースとの間の通信をセキュリティで保護するために使用されるプライベート エンドポイントは、Azure Private Link に依存します。 詳細については、「Azure Private Link の価格」を参照してください。
FQDN アウトバウンド規則 - FQDN アウトバウンド規則は、Azure Firewall を使用して実装されます。 FQDN アウトバウンド規則を使用する場合は、Azure Firewall の料金が請求に追加されます。 既定では、標準バージョンの Azure Firewall が使用されています。 基本バージョンの選択については、Azure Firewall のバージョンの選択に関する記事を参照してください。
重要
アウトバウンド FQDN 規則を追加するまで、ファイアウォールは作成されません。 価格の詳細については、「Azure Firewall の価格」で "標準" バージョンの価格を確認してください。
制限事項
- Azure AI Studio では、独自の Azure Virtual Network を使用してハブ、プロジェクト、コンピューティング リソースを保護することはできません。 これらのリソースをセキュリティで保護するためには、マネージド ネットワーク機能のみを使用できます。
- ワークスペースのマネージド仮想ネットワーク分離を有効にすると (インターネット送信を許可または承認された送信のみを許可)、無効にすることができません。
- マネージド仮想ネットワークは、プライベート エンドポイント接続を使ってプライベート リソースにアクセスします。 ストレージ アカウントなどの Azure リソースに対して、プライベート エンドポイントとサービス エンドポイントを同時に持つことはできません。 どのシナリオでもプライベート エンドポイントを使うことをお勧めします。
- マネージド仮想ネットワークが削除されると、ワークスペースが削除されます。
- データ流出防止は、唯一承認された送信モードに対して自動的に有効になります。 FQDN などの他のアウトバウンド規則を追加した場合、Microsoft では、これらの送信先へのデータ流出からの保護を保証できません。
- マネージド仮想ネットワークを使用する場合、サポートされていないワークスペースと異なるリージョンにコンピューティング クラスターを作成することはできません。
- Kubernetes およびアタッチされた VM は、Azure Machine Learning マネージド仮想ネットワークではサポートされていません。
- FQDN アウトバウンド規則を使用すると、FQDN 規則で Azure Firewall が使用されるため、マネージド仮想ネットワークのコストが増加します。 詳細については、価格に関するページをご覧ください。
- FQDN アウトバウンド規則では、ポート 80 と 443 のみがサポートされます。
- コンピューティング インスタンスがマネージド ネットワーク内にあり、パブリック IP 用に構成されていない場合は、
az ml compute connect-ssh
コマンドを使用して SSH を使用して接続します。 - マネージド仮想ネットワークを使用している場合は、カスタム仮想ネットワーク内にコンピューティング リソースをデプロイすることができません。 コンピューティング リソースは、マネージド仮想ネットワーク内にのみ作成できます。
- マネージド ネットワークを分離すると、マネージド仮想ネットワークからユーザーのオンプレミス リソースへのプライベート接続を確立できません。 サポートされているプライベート接続の一覧については、「プライベート エンドポイント」を参照してください。
- 承認された送信のみを許可するようにマネージド ネットワークが構成されている場合は、Azure Storage アカウントへのアクセスに FQDN 規則を使用することができません。 代わりに、プライベート エンドポイントを使用する必要があります。
コンピューティング リソースの移行
既存のワークスペースがあり、それに対してマネージド仮想ネットワークを有効にする場合、現在、既存のマネージド コンピューティング リソースに対してサポートされている移行パスはありません。 既存のすべてのマネージド コンピューティング リソースを削除し、マネージド仮想ネットワークを有効にした後で再作成する必要があります。 次の一覧には、削除して再作成する必要があるコンピューティング リソースが含まれています。
- コンピューティング クラスター
- コンピューティング インスタンス
- マネージド オンライン エンドポイント