使用私人端點保護標準邏輯應用程式與 Azure 虛擬網路之間的流量
適用於:Azure Logic Apps (標準)
若要在您的邏輯應用程式工作流程與虛擬網路之間進行安全且私人的通訊,您可以設定輸入流量的私人端點,並且針對輸出流量使用虛擬網路整合。
私人端點是一種網路介面,可以私人且安全的方式連線至 Azure Private Link 支援的服務。 服務可以是 Azure Logic Apps、Azure 儲存體、Azure Cosmos DB、SQL 等 Azure 服務,也可以是您自己的 Private Link 服務。 私人端點會使用您虛擬網路中的私人 IP 位址,有效地將服務帶入您的虛擬網路中。
本文說明如何針對輸入流量設定透過私人端點的存取,以及輸出流量的虛擬網路整合。
如需詳細資訊,請參閱下列文件:
必要條件
新的或現有的 Azure 虛擬網路,其中包含子網路,而不需要任何委派。 要從虛擬網路部署和配置私人 IP 位址的子網路。
如需詳細資訊,請參閱下列文件:
安裝或使用可傳送 HTTP 要求以測試解決方案的工具,例如:
- Visual Studio Code 搭配 Visual Studio Marketplace 的延伸模組
- PowerShell Invoke-RestMethod
- Microsoft Edge - 網路主控台工具
- Bruno
- curl
警告
如果您有敏感資料,例如認證、秘密、存取權杖、API 金鑰和其他類似資訊,請務必使用一項工具,以必要的安全性功能保護資料、離線或本機運作、不將資料同步處理至雲端,而且不需要您登入線上帳戶。 如此一來,您就可以降低向公眾公開敏感資料的風險。
通過私人端點的輸入流量
若要保護工作流程的輸入流量,請完成下列高階步驟:
使用可接收和處理輸入要求的內建觸發程序啟動工作流程,例如要求觸發程序或 HTTP + Webhook 觸發程序。 此觸發程序會使用可呼叫的端點來設定您的工作流程。
將邏輯應用程式資源的私人端點新增至虛擬網路。
進行測試呼叫以檢查端點的存取權。 若要在設定此端點之後呼叫邏輯應用程式工作流程,您必須連線到虛擬網路。
通過私人端點輸入流量的考量因素
如果從虛擬網路外部存取,監視檢視就無法從觸發程序和動作存取輸入和輸出。
受控 API Webhook 觸發程序 (「推送」觸發程序) 和動作將無法運作,因為它們會在公用雲端中執行,而且無法呼叫您的私人網路。 他們需要公用端點才能接收呼叫。 例如,這類觸發程序包括 Dataverse 觸發程序和 Event Grid 觸發程序。
如果您使用 Office 365 Outlook 觸發程序,則只會每小時觸發工作流程。
從 Visual Studio Code 或 Azure CLI 部署僅適用於虛擬網路內部。 您可以使用部署中心將邏輯應用程式連結至 GitHub 存放庫。 您可以接著使用 Azure 基礎結構來建置和部署程式碼。
若要讓 GitHub 整合能夠運作,請從邏輯應用程式移除
WEBSITE_RUN_FROM_PACKAGE
設定,或將值設定為0
。啟用 Private Link 不會影響流經 App Service 基礎結構的輸出流量。
通過私人端點輸入流量的必要條件
除了最上層必要條件中的虛擬網路設定之外,您還需要有新的或現有的標準邏輯應用程式工作流程,其開頭為可接收要求的內建觸發程序。
例如,要求觸發程序會在工作流程上建立端點,以接收及處理來自其他呼叫端的輸入要求,包括工作流程。 此端點提供可用來呼叫和觸發工作流程的 URL。 在此範例中,這些步驟會繼續執行要求觸發程序。
如需詳細資訊,請參閱使用 Azure Logic Apps 接收和回應輸入 HTTP 要求。
建立工作流程
如果您尚未建立單一租用戶為基礎的邏輯應用程式,以及空白工作流程。
在設計工具開啟之後,新增要求觸發程序作為工作流程中的第一個步驟。
根據您的案例需求,新增您想要在工作流程中執行的其他動作。
完成後,請儲存您的工作流程。
如需詳細資訊,請參閱在 Azure Logic Apps 中建立單一租用戶邏輯應用程式工作流程 (部分機器翻譯)。
複製端點 URL
在工作流程功能表上,選取 [概觀]。
在 [概觀] 頁面上,複製並儲存工作流程 URL 以供稍後使用。
若要測試 URL 並觸發工作流程,請使用 HTTP 要求工具和其指示,將 HTTP 要求傳送至 URL。
設定私人端點連線
在邏輯應用程式資源功能表的 [設定] 下,選取 [網路]。
在 [網络] 頁面上,於 [輸入流量設定] 區段中,選取 [私人端點] 旁的連結。
在 [私人端點連線] 頁面中,選取 [新增]>[快速]或[進階]。
如需關於 [進階] 選項的詳細資訊,請參閱 建立私人端點。
在 [新增私人端點] 窗格中,提供所要求的端點資訊。
如需詳細資訊,請檢閱私人端點屬性 (部分機器翻譯)。
在 Azure 成功佈建私人端點之後,請再試一次以呼叫工作流程 URL。
這次,您會收到預期的
403 Forbidden
錯誤,這表示已設定好私人端點並正常運作。若要確定連線正常運作,請在具有私人端點的相同虛擬網路中建立虛擬機器,然後嘗試呼叫邏輯應用程式工作流程。
使用虛擬網路整合設定輸出流量
若要保護您的邏輯應用程式輸出流量,您可以將邏輯應用程式與虛擬網路整合。 首先,建立及測試範例工作流程。 然後,您可以設定虛擬網路整合。
透過虛擬網路整合的輸出流量考量因素
設定虛擬網路整合只會影響輸出流量。 若要保護持續使用 App Service 共用端點的輸入流量,請檢閱透過私人端點設定輸入流量 (部分機器翻譯)。
您無法在指派之後變更子網路大小,因此請使用夠大的子網路來容納您的應用程式可能觸達的規模。 若要避免子網路容量發生任何問題,請使用具有 64 個位址的
/26
子網路。 如果您建立虛擬網路與 Azure 入口網站的子網路整合,則必須使用/27
作為子網路大小下限。若要讓 Azure Logic Apps 執行時間能夠運作,您必須與後端儲存體中斷連線。 如果後端儲存體透過私人端點向虛擬網路公開,請確定已開啟下列連接埠:
來源連接埠 目的地連接埠 來源 Destination 通訊協定 目的 * 443 與標準邏輯應用程式整合的私人端點 儲存體帳戶 TCP 儲存體帳戶 * 445 與標準邏輯應用程式整合的私人端點 儲存體帳戶 TCP 伺服器訊息區 (SMB) 檔案共用 若要讓 Azure 裝載的受控連接器能夠運作,您必須有受控 API 服務的未中斷連線。 使用虛擬網路整合時,請確定沒有任何防火牆或網路安全性原則會封鎖這些連線。 如果您的虛擬網路使用網路安全性群組 (NSG)、使用者定義的路由表 (UDR) 或防火牆,請確定虛擬網路允許對應區域中所有受控連接器 IP 位址的輸出連線。 否則,Azure 受控連接器將無法運作。
如需詳細資訊,請參閱下列文件:
- 將您的應用程式與 Azure 虛擬網路整合
- 網路安全性群組
- 虛擬網路流量路由 \(部分機器翻譯\)
建立及測試工作流程
如果您尚未在 Azure 入口網站建立單一租用戶為基礎的邏輯應用程式,以及空白工作流程。
在設計工具開啟之後,新增要求觸發程序作為工作流程中的第一個步驟。
新增 HTTP 動作來呼叫無法透過網際網路使用的內部服務,並使用私人 IP 位址執行,例如
10.0.1.3
。完成後,請儲存您的工作流程。
從設計工具手動執行工作流程。
HTTP 動已預期並設計為失敗,因為工作流程在雲端中執行,並且無法存取您的內部服務。
設定虛擬網路整合
在 Azure 入口網站的邏輯應用程式資源功能表中,選取[設定],選取 [網路]。
在 [網络] 頁面上,於 [輸出流量設定] 區段中,選取 [虛擬網路整合] 旁的連結。
在 [虛擬網路整合] 頁面中,選取 [新增虛擬網路整合]。
在 [新增虛擬網路整合] 窗格中,選取連線到內部服務的訂閱和虛擬網路,以及要新增邏輯應用程式的子網路。 完成後,請選取 [連線]。
在 [虛擬網路整合] 頁面上,預設會選取 [輸出網際網路流量] 設定,以透過虛擬網路路由傳送所有輸出流量。 在此案例中,會忽略名為 WEBSITE_VNET_ROUTE_ALL 的應用程式設定。
要找到此應用程式設定,在邏輯應用程式資源功能表的 [設定] 下,選取 [環境變數]。
如果您搭配使用自己的網域名稱伺服器 (DNS) 與虛擬網路,請新增 WEBSITE_DNS_SERVER 應用程式設定 (如果沒有的話),並將值設定為 DNS 的 IP 位址。 如果您有次要 DNS,則請新增另一個名為 [WEBSITE_DNS_ALT_SERVER] 的應用程式設定,並將您的值設定為您次要 DNS 的 IP。
在 Azure 成功佈建虛擬網路整合之後,請嘗試再次執行工作流程。
HTTP 動作現在已成功執行。