プライベート ネットワークを使用してプロンプト フローをセキュリティで保護することができます。 この記事では、プライベート ネットワークによってセキュリティで保護された環境でプロンプト フローを使用するための要件について説明します。
関連するサービス
プロンプト フローを使用して AI アプリケーションを開発する場合は、セキュリティで保護された環境が必要です。 次のサービスのネットワーク分離を構成できます。
コア Azure Machine Learning サービス
- ワークスペース: Azure Machine Learning ワークスペースをプライベートとして構成し、受信トラフィックと送信トラフィックを制限します。
- コンピューティング リソース: 受信規則と送信規則を適用して、ワークスペース内のコンピューティング リソース アクセスを制限します。
- ストレージ アカウント: ストレージ アカウントのアクセシビリティを特定の仮想ネットワークに制限します。
- コンテナー レジストリ: 仮想ネットワーク構成を使用してコンテナー レジストリをセキュリティで保護します。
- エンドポイント: デプロイされたエンドポイントにアクセスできる Azure サービスまたは IP アドレスを制御します。
鋳造ツール
- Azure OpenAI: ネットワーク構成を使用して Azure OpenAI をプライベートにしてから、Azure Machine Learning 通信にプライベート エンドポイントを使用します。
- Azure Content Safety: プライベート ネットワーク アクセスを構成し、セキュリティで保護された通信用のプライベート エンドポイントを確立します。
- Azure AI Search: プライベート ネットワーク設定を有効にし、セキュリティで保護された統合のためにプライベート エンドポイントを使用します。
外部リソース
- Azure 以外のリソース: SerpAPI などの外部 API の場合は、送信トラフィックの制限に FQDN 規則を追加してアクセスを維持します。
さまざまなネットワーク セットアップのオプション
Azure Machine Learning には、ネットワークの分離をセキュリティで保護するための 2 つのオプションがあります。独自のネットワークを持ち込むか、ワークスペースで管理された仮想ネットワークを使用します。 詳細については、ワークスペース リソースのセキュリティ保護に関する記事を参照してください。
プロンプト フローのさまざまなネットワーク セットアップのオプションを示す表を次に示します。
| イングレス | エグレス | 作成時のコンピューティングの種類 | 推論でのコンピューティングの種類 | ワークスペースのネットワーク オプション |
|---|---|---|---|---|
| パブリック | パブリック | サーバーレス (推奨)、コンピューティング インスタンス | マネージド オンライン エンドポイント (推奨) | マネージド (推奨) |
| パブリック | パブリック | サーバーレス (推奨)、コンピューティング インスタンス | K8s オンライン エンドポイント | 独自のものを使用する |
| 非公開 | パブリック | サーバーレス (推奨)、コンピューティング インスタンス | マネージド オンライン エンドポイント (推奨) | マネージド (推奨) |
| 非公開 | パブリック | サーバーレス (推奨)、コンピューティング インスタンス | K8s オンライン エンドポイント | 独自のものを使用する |
| パブリック | 非公開 | サーバーレス (推奨)、コンピューティング インスタンス | マネージド オンライン エンドポイント | マネージド |
| 非公開 | 非公開 | サーバーレス (推奨)、コンピューティング インスタンス | マネージド オンライン エンドポイント | マネージド |
- プライベート仮想ネットワークのシナリオでは、ワークスペース対応のマネージド仮想ネットワークを使用することをお勧めします。 これは、ワークスペースと関連リソースをセキュリティで保護する最も簡単な方法です。
- マネージド vNet の使用と、単一のワークスペースでの独自の仮想ネットワークの持ち込みはサポートされていません。 また、マネージド オンライン エンドポイントはマネージド仮想ネットワークでのみサポートされるため、独自の仮想ネットワークを持ち込む有効なワークスペース内のマネージド オンライン エンドポイントにプロンプト フローをデプロイすることはできません。
- 独自の仮想ネットワークを使用してプロンプト フローを作成するためのワークスペースと、ワークスペースで管理された仮想ネットワークを使用したマネージド オンライン エンドポイントを使用したプロンプト フローのデプロイ用の別のワークスペースを用意できます。
ワークスペースで管理される仮想ネットワークを使用したセキュリティで保護されたプロンプト フロー
ワークスペースで管理される仮想ネットワークは、プロンプト フローでのネットワーク分離をサポートするための推奨される方法です。 ワークスペースをセキュリティで保護するための簡単な構成が提供されます。 ワークスペース レベルでマネージド vNet を有効にすると、同じ仮想ネットワーク内のワークスペースに関連するリソースは、ワークスペース レベルで同じネットワーク設定を使用します。 プライベート エンドポイントを使用して、Azure OpenAI、Azure コンテンツ セーフ、Azure AI Search などの他の Azure リソースにアクセスするようにワークスペースを構成することもできます。 プロンプト フローで使用される Azure 以外のリソース (SerpAPI など) への送信接続を承認するように FQDN 規則を構成することもできます。
ワークスペースで管理されるネットワークの分離に従って、ワークスペースで管理される仮想ネットワークを有効にします。
重要
マネージド仮想ネットワークの作成は、コンピューティング リソースが作成されるか、プロビジョニングが手動で開始されるまで延期されます。 次のコマンドを使用して、ネットワーク プロビジョニングを手動でトリガーできます。
az ml workspace provision-network --subscription <sub_id> -g <resource_group_name> -n <workspace_name>ワークスペースにリンクされているストレージ アカウントに、ワークスペース MSI を
Storage File Data Privileged Contributorとして追加します。2.1 Azure portal に移動し、ワークスペースを見つけます。
2.2 ワークスペースにリンクされているストレージ アカウントを見つけます。
2.3 ストレージ アカウントのロールの割り当てページに移動します。
2.4 ストレージ ファイル データの特権共同作成者ロールを見つけます。
2.5 ストレージ ファイル データ特権共同作成者ロールをワークスペースマネージド ID に割り当てます。
注
この操作が有効になるまでに数分かかる場合があります。
プライベート Foundry Tools と通信する場合は、関連するユーザー定義の送信規則を関連リソースに追加する必要があります。 Azure Machine Learning ワークスペースは、自動承認を使用して関連リソースにプライベート エンドポイントを作成します。 状態が保留中のままになっている場合は、関連リソースに移動してプライベート エンドポイントを手動で承認します。
アウトバウンド トラフィックを特定の宛先のみを許可するように制限する場合は、関連する FQDN を許可するために、対応するユーザー定義のアウトバウンド規則を追加する必要があります。
マネージド VNet を有効にするワークスペースでは、マネージド オンライン エンドポイントにのみプロンプト フローをデプロイできます。 「ネットワーク分離を使用してマネージド オンライン エンドポイントをセキュリティで保護する」に従って、マネージド オンライン エンドポイントをセキュリティで保護できます。
独自の仮想ネットワークを使用してプロンプト フローを保護する
Azure Machine Learning 関連リソースをプライベートとして設定するには、ワークスペース リソースをセキュリティで保護する方法に関するページを参照してください。
厳密な送信規則がある場合は、 必要なパブリック インターネット アクセスを開いていることを確認します。
ワークスペースにリンクされているストレージ アカウントに、ワークスペース MSI を
Storage File Data Privileged Contributorとして追加します。 ワークスペースで管理されている vNet を使用したセキュリティで保護されたプロンプト フローの手順 2 に従います。フロー作成でサーバーレス コンピューティングの種類を使用している場合は、ワークスペース レベルでカスタム仮想ネットワークを設定する必要があります。 詳細については、「仮想ネットワークを使用して Azure Machine Learning トレーニング環境をセキュリティで保護する」を参照してください。
serverless_compute: custom_subnet: /subscriptions/<sub id>/resourceGroups/<resource group>/providers/Microsoft.Network/virtualNetworks/<vnet name>/subnets/<subnet name> no_public_ip: false # Set to true if you don't want to assign public IP to the compute一方、「プライベート Foundry Tools」に従ってプライベートにすることができます。
独自の仮想ネットワークによって保護されたワークスペースにプロンプト フローをデプロイする場合は、同じ仮想ネットワーク内の AKS クラスターにデプロイできます。 「セキュリティで保護された Azure Kubernetes Service 推論環境」に従い、AKS クラスターをセキュリティで保護できます。 コードを使用して AKS クラスターにプロンプト フローをデプロイする方法の詳細について説明します。
同じ仮想ネットワークへのプライベート エンドポイントを作成することも、仮想ネットワーク ピアリングを使用して相互に通信することもできます。
既知の制限事項
- 選択したエグレスを持つマネージド オンライン エンドポイントには、マネージド vNet を含むワークスペースが必要です。 独自の仮想ネットワークを使用している場合は、次の 2 つのワークスペースアプローチを検討してください。 - プロンプト フローの作成に仮想ネットワークで 1 つのワークスペースを使用する - マネージド オンライン エンドポイント経由のプロンプト フローのデプロイには、マネージド vNet を含む別のワークスペースを使用します