您可以使用私人網路保護提示流程。 本文說明在受私人網路保護的環境中使用提示流程的需求。
牽涉的服務
當您使用提示流程開發 AI 應用程式時,您需要安全的環境。 您可以設定下列服務的網路隔離:
核心 Azure Machine Learning 服務
- 工作區:將 Azure Machine Learning 工作區設定為私人工作區,並限制其輸入和輸出流量。
- 計算資源:套用輸入和輸出規則,以限制工作區內的計算資源存取。
- 記憶體帳戶:限制特定虛擬網路的記憶體帳戶存取範圍。
- 容器登錄:使用虛擬網路組態保護您的容器登錄。
- 端點:控制哪些 Azure 服務或 IP 位址可以存取已部署的端點。
鑄造工具
- Azure OpenAI:使用網路設定將 Azure OpenAI 設為私人,然後使用私人端點進行 Azure Machine Learning 通訊。
- Azure 內容安全性:設定專用網存取,並建立私人端點以進行安全通訊。
- Azure AI 搜尋:啟用專用網設定,並使用私人端點進行安全整合。
外部資源
- 非 Azure 資源:針對 SerpAPI 之類的外部 API,將 FQDN 規則新增至輸出流量限制,以維護存取。
不同網路設定中的選項
在 Azure Machine Learning 中,我們有兩個選項來保護網路隔離:自備網路或使用工作區管理的虛擬網路。 深入了解如何保護工作區資源。
下表展示不同網路配置中提示流的選項。
| 輸入 | 輸出 | 製作的計算類型 | 推斷的計算類型 | 工作區的網路選項 |
|---|---|---|---|---|
| 公開 | 公開 | 無伺服器 (建議),計算實例 | 受控線上端點 (建議) | 管理(推薦) |
| 公開 | 公開 | 無伺服器 (建議),計算實例 | K8s 線上端點 | 攜帶您自己的 |
| Private | 公開 | 無伺服器 (建議),計算實例 | 受控線上端點 (建議) | 管理(推薦) |
| Private | 公開 | 無伺服器 (建議),計算實例 | K8s 線上端點 | 攜帶您自己的 |
| 公開 | Private | 無伺服器 (建議),計算實例 | 受控線上端點 | 受控 |
| Private | Private | 無伺服器 (建議),計算實例 | 受控線上端點 | 受控 |
- 在專用虛擬網路情境中,我們建議使用啟用工作區的受控虛擬網路。 這是保護工作區和相關資源最簡單的方式。
- 不支援使用受控 vNet 並將您自己的虛擬網路帶入單一工作區。 此外,由於受控在線端點僅支援受控虛擬網路,因此您無法在已啟用自備虛擬網路的工作區中,將提示流程部署到受控在線端點。
- 您可以有一個工作區,以使用自己的虛擬網路進行提示流程撰寫,以及另一個工作區,以使用受控在線端點搭配工作區管理的虛擬網路進行提示流程部署。
使用工作區管理的虛擬網路確保提示流的安全
工作區管理的虛擬網路是支援 prompt flow 中網路隔離的建議方式。 它提供簡單的設定來保護您的工作區。 在工作區層級啟用受控 vNet 之後,與相同虛擬網路中工作區相關的資源將會在工作區層級使用相同的網路設定。 您也可以將工作區設定為使用私人端點來存取其他 Azure 資源,例如 Azure OpenAI、Azure 內容安全性和 Azure AI 搜尋。 您也可以設定 FQDN 規則,以核准您的提示流程所使用的非 Azure 資源的輸出連線,例如 SerpAPI。
請遵循 工作區受控網路隔離 ,以啟用工作區管理的虛擬網路。
重要事項
建立受控虛擬網路會延後,直到建立計算資源或手動啟動佈建為止。 您可以使用下列命令手動觸發網路布建。
az ml workspace provision-network --subscription <sub_id> -g <resource_group_name> -n <workspace_name>將工作區 MSI 作爲
Storage File Data Privileged Contributor新增至與工作區連結的儲存體帳戶。2.1 移至 Azure 入口網站並尋找工作區。
2.2 尋找與工作區連結的記憶體帳戶。
2.3 瀏覽至記憶體帳戶的角色指派頁面。
2.4 尋找儲存檔案數據授權貢獻者角色。
2.5 將儲存體檔案資料特殊權限參與者角色指派給工作區受控識別。
附註
此作業可能需要幾分鐘的時間才會生效。
如果您想與私人 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 工具 將其設為私密。
如果您想要在受您自己的虛擬網路保護的工作區中部署提示流程,您可以將它部署到位於相同虛擬網路中的 AKS 叢集。 您可以遵循 [安全 Azure Kubernetes Service 推斷環境] 來保護 AKS 叢集。 深入瞭解 如何透過程式代碼將提示流程部署到 AKS 叢集。
您可以建立相同虛擬網路的私人端點,或使用虛擬網路對等互連來讓它們彼此通訊。
已知限制
- 具有所選取輸出的受控線上端點需要具有受控 vNet 的工作區。 如果您使用自己的虛擬網路,請考慮使用這兩個工作區的方法:- 使用一個工作區搭配虛擬網路進行提示流程撰寫 - 使用具有受控 vNet 的個別工作區,透過受控在線端點進行提示流程部署