共用方式為


安全地從 App Service 環境連線到後端資源

重要

這篇文章是關於 App Service 環境 v1。 App Service 環境 v1 和 v2 自 2024 年 8 月 31 日起已淘汰 (英文)。 有較新版本的 App Service 環境,其更易於使用,並且是在更強大的基礎結構上執行。 若要深入了解新版本,請從 App Service 環境簡介開始。 如果您目前使用 App Service 環境 v1,請遵循此文章中的步驟來移轉至新版本。

自 2024 年 8 月 31 日起,服務等級協定 (SLA) 和服務點數 (英文) 將不再適用於繼續在生產環境中的 App Service 環境 v1 和 v2 工作負載,因為其是已淘汰的產品。 App Service 環境 v1 和 v2 硬體的解除委任已經開始,而這可能會影響您的應用程式和資料的可用性和效能。

您必須立即完成移轉至 App Service 環境 v3,否則您的應用程式和資源可能會遭到刪除。 我們會嘗試使用就地移轉功能,自動移轉任何剩餘的 App Service 環境 v1 和 v2,但 Microsoft 並未就自動移轉後的相關應用程式可用性提供聲明或保證。 您可能需要執行手動設定來完成移轉,並最佳化您的 App Service 方案 SKU 選擇,以符合您的需求。 如果自動移轉不可行,您的資源和相關聯的應用程式資料將遭到刪除。 我們強烈敦促您立即採取行動,以避免上述任一極端案例。

如果您需要額外的時間,我們可以提供一次性 30 天的寬限期,讓您完成移轉。 如需詳細資訊和申請寬限期,請檢閱寬限期概觀 (英文),然後移至 Azure 入口網站,造訪每個 App Service 環境的窗格。

如需 App Service 環境 v1/v2 淘汰的最新資訊,請參閱 App Service 環境 v1 和 v2 淘汰更新

因為 App Service 環境一律會在 Azure Resource Manager 虛擬網路或者傳統式部署模型虛擬網路兩者之一中建立,從 App Service 環境傳出至其他後端資源的連線可以獨佔方式透過虛擬網路傳送。 自 2016 年 6 月之後,ASE 也可以部署到使用公用位址範圍或 RFC1918 位址空間 (私人位址)。

例如,SQL Server 可能會在已鎖定連接埠 1433 的虛擬機器叢集上執行。 此端點可能已納入 ACL,只允許從相同虛擬網路上的其他資源進行存取。

另一個例子則是,敏感性端點可能會執行內部部署並透過站台對站台Azure ExpressRoute 連線至 Azure。 因此,只有連接至站台對站台或 ExpressRoute 通道的虛擬網路資源可存取內部部署端點。

在上述這些案例中,App Service 環境所執行的應用程式可安全連線至各種伺服器和資源。 若 App Service 環境所執行應用程式的輸出流量傳送至相同虛擬網路中的私人端點 (或連至相同的虛擬網路),則只會經過虛擬網路。 傳送至私人端點的輸出流量不會經過公用網際網路。

從 App Service 環境到虛擬網路內部端點的輸出流量有一項問題。 App Service 環境無法連線至 App Service 環境所在相同子網路的虛擬機器端點。 若將 App Service 環境部署至保留給 App Service 環境專用的子網路,這項限制通常應不致於構成問題。

注意

雖然這篇文章主要針對 Web Apps,但也適用於 API Apps 和 Mobile Apps。

輸出連線和 DNS 需求

為了讓 App Service 環境正確運作,它需要不同端點的輸出存取權。 ExpressRoute 的網路組態 文章的<需要的網路連線>一節中有提供 ASE 所使用的外部端點完整清單。

App Service 環境需要針對虛擬網路設定的有效 DNS 基礎結構。 如果 DNS 設定在建立「App Service 環境」後已變更,開發人員可以強制「App Service 環境」套用新的 DNS 設定。 在入口網站中的 [App Service 環境] 管理刀鋒視窗頂端,選取 [重新啟動] 圖示,以觸發漸進式的環境重新啟動,該環境隨即會使用新的 DNS 設定。

也建議事先在虛擬網路上設定任何自訂 DNS 伺服器,再建立 App Service 環境。 若在建立 App Service 環境期間變更虛擬網路的 DNS 設定,則會導致 App Service 環境的建立流程失敗。 若 VPN 閘道另一端有無法連線或無法使用的自訂 DNS 伺服器,App Service 環境建立流程也會失敗。

連接至 SQL Server

常見的 SQL Server 組態會有在連接埠 1433 上接聽的端點:

SQL Server 端點

有兩種方法可限制送至此端點的流量:

利用網路 ACL 限制存取

使用網路存取控制清單可以保護連接埠 1433。 下列範例將源自虛擬網路內部的用戶端位址新增至指派權限,並封鎖所有其他用戶端的存取權。

網路存取控制清單範例

在與 SQL Server 同一個虛擬網路中,App Service 環境所執行的任何應用程式皆可能會連線至 SQL Server 執行個體。 使用 SQL Server 虛擬機器的 VNet 內部 IP 位址。

下列連接字串範例會使用其私密 IP 位址參考 SQL Server。

Server=tcp:10.0.1.6;Database=MyDatabase;User ID=MyUser;Password=PasswordHere;provider=System.Data.SqlClient

雖然虛擬機器也有公用端點,但使用公用 IP 位址的連線嘗試將會因為網路 ACL 而遭到拒絕。

利用網路安全性群組限制存取

另一種保護存取安全的方法是利用網路安全性群組。 網路安全性群組可以套用到個別的虛擬機器,或含有虛擬機器的子網路。

首先,您必須建立網路安全性群組:

New-AzureNetworkSecurityGroup -Name "testNSGexample" -Location "South Central US" -Label "Example network security group for an app service environment"

若要限制只存取 VNet 內部流量,使用網路安全性群組便相當容易。 網路安全性群組中的預設規則只允許從相同虛擬網路中的其他網路用戶端存取。

因此,鎖定 SQL Server 的存取權很簡單。 只要將網路安全性群組及其預設規則套用至執行 SQL Server 的虛擬機器,或包含虛擬機器的子網路即可。

下列範例將網路安全性群組套用至包含的子網路:

Get-AzureNetworkSecurityGroup -Name "testNSGExample" | Set-AzureNetworkSecurityGroupToSubnet -VirtualNetworkName 'testVNet' -SubnetName 'Subnet-1'

最終結果為一組安全性規則,不僅封鎖外部存取,也允許 VNet 內部存取權:

預設網路安全性規則

開始使用

若要開始使用 App Service 環境,請參閱 App Service 環境簡介

如需控制 App Service 環境輸入流量的詳細資訊,請參閱控制 App Service 環境的輸入流量

注意

如果您想要在註冊 Azure 帳戶前先開始使用 Azure App Service,請前往試用應用程式服務,您可以在應用程式服務中立即建立暫時的入門 Web 應用程式。 無需信用卡,也無需簽定合約。