プロンプト フローでのネットワークの分離
プライベート ネットワークを使用してプロンプト フローをセキュリティで保護することができます。 この記事では、プライベート ネットワークによってセキュリティで保護された環境でプロンプト フローを使用するための要件について説明します。
関連するサービス
プロンプト フローを使用して LLM アプリケーションを開発する場合は、セキュリティで保護された環境が必要です。 ネットワーク設定を使用して、次のサービスをプライベートにすることができます。
- ワークスペース: Azure Machine Learning ワークスペースをプライベートにし、その受信と送信を制限できます。
- コンピューティング リソース: ワークスペース内のコンピューティング リソースのインバウンドおよびアウトバウンド規則を制限することもできます。
- ストレージ アカウント: ストレージ アカウントのアクセシビリティを特定の仮想ネットワークに制限できます。
- コンテナー レジストリ: 仮想ネットワークを使用してコンテナー レジストリをセキュリティで保護することも必要です。
- エンドポイント: エンドポイントにアクセスする Azure サービスまたは IP アドレスを制限したい場合があります。
- 関連する Azure Cognitive Services (Azure OpenAI、Azure Content Safety、Azure AI Search など) では、ネットワーク構成を使用してこれらをプライベートにし、プライベート エンドポイントを使用して Azure Machine Learning サービスと通信できます。
- SerpAPI など、他の Azure 以外のリソース。厳密なアウトバウンド規則がある場合は、それらにアクセスするために FQDN 規則を追加する必要があります。
さまざまなネットワーク設定のオプション
Azure Machine Learning では、ネットワークの分離を確保するために、独自のネットワークを導入するか、ワークスペースのマネージド仮想ネットワークを使う 2 つのオプションがあります。 詳細については、ワークスペース リソースのセキュリティ保護に関する記事を参照してください。
次の表は、プロンプト フロー用に設定されたさまざまなネットワークのオプションを示しています。
イングレス | エグレス | 作成時のコンピューティングの種類 | 推論でのコンピューティングの種類 | ワークスペースのネットワーク オプション |
---|---|---|---|---|
パブリック | パブリック | サーバーレス (推奨)、コンピューティング インスタンス | マネージド オンライン エンドポイント (推奨)、K8s オンライン エンドポイント | マネージド (推奨) または独自持ち込み |
Private | Public | サーバーレス (推奨)、コンピューティング インスタンス | マネージド オンライン エンドポイント (推奨)、K8s オンライン エンドポイント | マネージド (推奨) または独自持ち込み |
パブリック | プライベート | サーバーレス (推奨)、コンピューティング インスタンス | マネージド オンライン エンドポイント | マネージド |
プライベート | プライベート | サーバーレス (推奨)、コンピューティング インスタンス | マネージド オンライン エンドポイント | マネージド |
- プライベート VNet シナリオでは、ワークスペース対応のマネージド仮想ネットワークを使うことをお勧めします。 これは、ワークスペースと関連リソースをセキュリティで保護する最も簡単な方法です。
- また、仮想ネットワークを使ったプロンプト フロー作成用の 1 つのワークスペースと、ワークスペース マネージド仮想ネットワークでマネージド オンライン エンドポイントを使用したプロンプト フローのデプロイ用にもう 1 つのワークスペースを用意することもできます。
- 1 つのワークスペースで、マネージド仮想ネットワークと独自の仮想ネットワーク持ち込みを混在して使うことはサポートされていませんでした。 また、マネージド オンライン エンドポイントはマネージド仮想ネットワークのみをサポートしているため、独自の仮想ネットワーク持ち込みを有効にしたワークスペース内のマネージド オンライン エンドポイントにプロンプト フローをデプロイすることはできません。
ワークスペースのマネージド仮想ネットワークを使用したセキュリティで保護されたプロンプト フロー
プロンプト フローでのネットワークの分離をサポートするための推奨される方法は、ワークスペースのマネージド仮想ネットワークです。 これにより、ワークスペースをセキュリティで保護するための構成が簡単に提供されます。 ワークスペース レベルでマネージド仮想ネットワークを有効にすると、同じ仮想ネットワーク内のワークスペースに関連するリソースで、ワークスペース レベルで同じネットワーク設定が使用されます。 また、プライベート エンドポイントを使用して、Azure OpenAI、Azure Content Safety、Azure AI Search などの他の Azure リソースにアクセスするようにワークスペースを構成することもできます。 また、SerpAPI などのプロンプト フローで使用される Azure 以外のリソースへの送信を承認するように 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 に割り当てます。
Note
この操作が有効になるまでに数分かかる場合があります。
プライベート Azure Cognitive Services と通信する場合は、関連するユーザー定義のアウトバウンド規則を関連リソースに追加する必要があります。 Azure Machine Learning ワークスペースにより、自動承認を使って関連リソースにプライベート エンドポイントが作成されます。 状態が保留中のままになっている場合は、関連リソースに移動して、プライベート エンドポイントを手動で承認してください。
アウトバウンド トラフィックを特定の宛先のみを許可するように制限する場合は、関連する FQDN を許可するために、対応するユーザー定義のアウトバウンド規則を追加する必要があります。
マネージド VNet を有効にするワークスペースでは、マネージド オンライン エンドポイントにのみプロンプト フローをデプロイできます。 「ネットワーク分離を使用してマネージド オンライン エンドポイントをセキュリティで保護する」に従って、マネージド オンライン エンドポイントをセキュリティで保護できます。
独自の仮想ネットワークを使用する、セキュリティで保護されたプロンプト フロー
Azure Machine Learning 関連リソースをプライベートとして設定するには、ワークスペース リソースをセキュリティで保護する方法に関するページを参照してください。
厳密なアウトバウンド規則がある場合は、必要なパブリック インターネット アクセスが開いていることを確認します。
ワークスペースにリンクされたストレージ アカウントにワークスペース MSI を
Storage File Data Privileged Contributor
として追加します。 「ワークスペースのマネージド仮想ネットワークを使用したセキュリティで保護されたプロンプト フロー」の手順 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
一方、プライベート Azure Cognitive Services に従って、これらをプライベートにすることができます。
独自の仮想ネットワークによって保護されたワークスペースにプロンプト フローをデプロイする場合は、同じ仮想ネットワーク内にある AKS クラスターにデプロイできます。 「セキュリティで保護された Azure Kubernetes Service 推論環境」に従い、AKS クラスターをセキュリティで保護できます。 コードを介して ASK クラスターにプロンプト フローをデプロイする方法について説明します。
同じ仮想ネットワークへのプライベート エンドポイントを作成することも、仮想ネットワーク ピアリングを利用してそれらを相互に通信させることもできます。
既知の制限事項
- AI Studio では、独自の仮想ネットワークの持ち込みはサポートされていません。ワークスペース マネージドの仮想ネットワークのみがサポートされます。
- エグレスが選択されたマネージド オンライン エンドポイントは、マネージド仮想ネットワークのワークスペースのみをサポートします。 独自の仮想ネットワークを使用したい場合は、仮想ネットワークを使用してプロンプト フローを作成するために 1 つのワークスペースと、ワークスペース マネージド仮想ネットワークでマネージド オンライン エンドポイントを使用したプロンプト フローのデプロイ用にもう 1 つのワークスペースが必要になる場合があります。