使用私人端點保護標準邏輯應用程式與 Azure 虛擬網路之間的流量

適用於:Azure Logic Apps (標準)

若要在您的邏輯應用程式工作流程與虛擬網路之間進行安全且私人的通訊,您可以設定輸入流量的私人端點,並且針對輸出流量使用虛擬網路整合。

私人端點是一種網路介面,可以私人且安全的方式連線至 Azure Private Link 支援的服務。 服務可以是 Azure Logic Apps、Azure 儲存體、Azure Cosmos DB、SQL 等 Azure 服務,也可以是您自己的 Private Link 服務。 私人端點會使用您虛擬網路中的私人 IP 位址,有效地將服務帶入您的虛擬網路中。

本文說明如何針對輸入流量設定透過私人端點的存取,以及輸出流量的虛擬網路整合。

如需詳細資訊,請參閱下列文件:

必要條件

您需要有新的或現有的 Azure 虛擬網路,其中包含子網路,而不需要任何委派。 要從虛擬網路部署和配置私人 IP 位址的子網路。

如需詳細資訊,請參閱下列文件:

通過私人端點的輸入流量

若要保護工作流程的輸入流量,請完成下列高階步驟:

  1. 使用可接收和處理輸入要求的內建觸發程序啟動工作流程,例如要求觸發程序或 HTTP + Webhook 觸發程序。 此觸發程序會使用可呼叫的端點來設定您的工作流程。

  2. 將邏輯應用程式資源的私人端點新增至虛擬網路。

  3. 進行測試呼叫以檢查端點的存取權。 若要在設定此端點之後呼叫邏輯應用程式工作流程,您必須連線到虛擬網路。

通過私人端點輸入流量的考量因素

  • 如果從虛擬網路外部存取,監視檢視就無法從觸發程序和動作存取輸入和輸出。

  • 受控 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 要求

建立工作流程

  1. 如果您尚未建立單一租用戶為基礎的邏輯應用程式,以及空白工作流程。

  2. 在設計工具開啟之後,新增要求觸發程序作為工作流程中的第一個步驟。

  3. 根據您的案例需求,新增您想要在工作流程中執行的其他動作。

  4. 完成後,請儲存您的工作流程。

如需詳細資訊,請參閱在 Azure Logic Apps 中建立單一租用戶邏輯應用程式工作流程 (部分機器翻譯)。

複製端點 URL

  1. 在工作流程功能表上,選取 [概觀]

  2. 在 [概觀] 頁面上,複製並儲存工作流程 URL 以供稍後使用。

    若要觸發工作流程,您可以呼叫或傳送要求給此 URL。

  3. 請確定 URL 的運作方式是呼叫或傳送要求至 URL。 您可以使用任何您想要傳送要求的工具,例如 Postman。

設定私人端點連線

  1. 在邏輯應用程式功能表的 [設定] 之下,選取 [網路]

  2. 在 [網路] 頁面上的 [輸入流量] 卡上,選取 [私人端點]

  3. 在 [私人端點連線] 上選取 [新增]

  4. 在開啟的 [新增私人端點] 窗格中,提供端點的要求資訊。

    如需詳細資訊,請檢閱私人端點屬性 (部分機器翻譯)。

  5. 在 Azure 成功佈建私人端點之後,請再試一次以呼叫工作流程 URL。

    這次,您會收到預期的 403 Forbidden 錯誤,這表示已設定好私人端點並正常運作。

  6. 若要確定連線正常運作,請在具有私人端點的相同虛擬網路中建立虛擬機器,然後嘗試呼叫邏輯應用程式工作流程。

使用虛擬網路整合設定輸出流量

若要保護您的邏輯應用程式輸出流量,您可以將邏輯應用程式與虛擬網路整合。 首先,建立及測試範例工作流程。 然後,您可以設定虛擬網路整合。

透過虛擬網路整合的輸出流量考量因素

  • 設定虛擬網路整合只會影響輸出流量。 若要保護持續使用 App Service 共用端點的輸入流量,請檢閱透過私人端點設定輸入流量 (部分機器翻譯)。

  • 您無法在指派之後變更子網路大小,因此請使用夠大的子網路來容納您的應用程式可能觸達的規模。 若要避免子網路容量發生任何問題,請使用具有 64 個位址的 /26 子網路。 如果您建立虛擬網路與 Azure 入口網站的子網路整合,則必須使用 /27 作為子網路大小下限。

  • 若要讓 Azure Logic Apps 執行時間能夠運作,您必須與後端儲存體中斷連線。 如果後端儲存體透過私人端點向虛擬網路公開,請確定已開啟下列連接埠:

    來源連接埠 目的地連接埠 來源 Destination 通訊協定 目的
    * 443 與標準邏輯應用程式整合的私人端點 儲存體帳戶 TCP 儲存體帳戶
    * 445 與標準邏輯應用程式整合的私人端點 儲存體帳戶 TCP 伺服器訊息區 (SMB) 檔案共用
  • 若要讓 Azure 裝載的受控連接器能夠運作,您必須有受控 API 服務的未中斷連線。 使用虛擬網路整合時,請確定沒有任何防火牆或網路安全性原則會封鎖這些連線。 如果您的虛擬網路使用網路安全性群組 (NSG)、使用者定義的路由表 (UDR) 或防火牆,請確定虛擬網路允許對應區域中所有受控連接器 IP 位址的輸出連線。 否則,Azure 受控連接器將無法運作。

如需詳細資訊,請參閱下列文件:

建立及測試工作流程

  1. 如果您尚未在 Azure 入口網站建立單一租用戶為基礎的邏輯應用程式,以及空白工作流程。

  2. 在設計工具開啟之後,新增要求觸發程序作為工作流程中的第一個步驟。

  3. 新增 HTTP 動作來呼叫無法透過網際網路使用的內部服務,並使用私人 IP 位址執行,例如 10.0.1.3

  4. 完成後,請儲存您的工作流程。

  5. 從設計工具手動執行工作流程。

    HTTP 動已預期並設計為失敗,因為工作流程在雲端中執行,並且無法存取您的內部服務。

設定虛擬網路整合

  1. 在 Azure 入口網站的邏輯應用程式資源功能表上,選取[設定],選取 [網路]

  2. 在 [網路] 窗格的 [輸出流量] 上,選取 [VNet 整合]

  3. 在 [VNet 整合] 窗格上,選取 [新增 VNet]

  4. 在 [新增 VNet 整合] 窗格中,選取連線到內部服務的訂閱和虛擬網路。

    新增虛擬網路整合之後,在 [VNET 整合] 窗格上,預設會啟用 [全部路由] 設定。 此設定會透過虛擬網路路由傳送所有輸出流量。 啟用此設定時,會忽略 WEBSITE_VNET_ROUTE_ALL 應用程式設定。

  5. 如果您使用自己的功能變數名稱伺服器 (DNS) 搭配虛擬網路,請將 DNS 的邏輯應用程式資源 WEBSITE_DNS_SERVER 的應用程式設定設為 IP 位址。 如果您有次要 DNS,請新增另一個名為 WEBSITE_DNS_ALT_SERVER 的應用程式設定,並將 DNS 的值設定為 IP。

  6. 在 Azure 成功佈建虛擬網路整合之後,請嘗試再次執行工作流程。

    HTTP 動作現在已成功執行。

下一步