如何安全地連線到Azure PaaS服務

眾所周知,在Azure中預配任何基於PaaS的服務時,它都會附帶一個公共的端點。而作為雲架構師或安全工程師,您必須從設計的角度,確保此類基於PaaS服務的連線是安全的。也就是說,為了保證訪問公共端點時的安全性,我們往往需要對服務端點進行加固。

如何安全地連線到Azure PaaS服務

服務端點(Service Endpoint)

具體而言,作為虛擬網路的一部分,它需要透過Azure主幹網路上的最佳化路由,來提供與Azure服務直接且安全的連線。其中,服務端點能夠讓虛擬網路(vnet)中的私有IP地址,到達Azure服務的一個端點,而無需使用vnet上的公共IP地址。

下圖描繪了在虛擬網路中,一臺正在執行的私有虛擬機器試圖訪問某個儲存帳戶。為此,我們首先需要在已執行的VM的唯一虛擬網路中,啟用服務端點。

如何安全地連線到Azure PaaS服務

啟用服務端點的步驟

第一步:按需在虛擬網路上啟用服務端點。由於端點上的各種策略都是可選的,因此您可以根據實際需求,過濾那些前往Azure服務的虛擬網路流量。

如何安全地連線到Azure PaaS服務

第二步:進入PaaS服務的防火牆或網路設定介面,新增服務端點。

如何安全地連線到Azure PaaS服務

第三步:驗證端點服務是否已被啟用。

如何安全地連線到Azure PaaS服務

注意事項

1。 在設定服務端點之前,請確保IP防火牆的相應規則已被允許。

2。 連線到基於PaaS的服務上時,由於服務端點並不支援各種本地資源,因此您必須使用本地的NAT IP或快速路由的方式。而且,您必須在資源IP防火牆的設定中,允許此類公共IP地址。

3。 對於服務端點而言,可用的基於PaaS的服務包括:Azure儲存、Azure資料庫服務、Azure Synapse Analytics、Azure Key Vault、Azure服務匯流排、Azure事件中心、Azure資料湖儲存Gen 1、Azure應用服務、以及Azure認知服務。

4。 為了透過服務端點去訪問SQL和資料湖服務,vnet和PaaS服務應當位於同一個區域中。

5。 服務端點並不能解析DNS的查詢。

值得注意的是,您無需為服務端點支付任何額外的費用,並且建立服務端點的數量也不受任何限制。

私有端點(Private endpoint)

在討論了服務端點之後,我們下面來看看私有端點。私有端點會透過使用來自虛擬網路(vnet)的私有IP地址,有效地將基於PaaS的服務引入虛擬網路。我們可以認為它是一種網路介面,能夠安全地連線到由Azure Private Link提供支援的服務處。

下圖描繪了在虛擬網路中,一臺正在執行的私有虛擬機器試圖訪問某個儲存帳戶。為此,我們首先需要為正在執行VM的虛擬網路,去設定一個私有端點。

如何安全地連線到Azure PaaS服務

配置私有端點的步驟

第一步:進入PaaS服務,“私有端點建立選項”會出現在防火牆和網路部分中,或作為一個單獨的部分被提供。

如何安全地連線到Azure PaaS服務

第二步:Private Link提供了為不同的Azure資源,建立私有端點的選項,其中包括:Private Link服務、SQL伺服器或Azure儲存帳戶。請選擇該私有端點需要連線的具體資源。

如何安全地連線到Azure PaaS服務

第三步:在此,您必須選擇一個虛擬網路/子網,並與私有的DNS相整合。同時,您需要透過一個DNS記錄,實現與私有端點的連線。在配置完成後,您便可以建立相應的服務了。

如何安全地連線到Azure PaaS服務

第四步:您可以在“服務 -> 網路”下的虛擬網路部分,檢查並驗證私有端點服務是否已被成功建立,以及是否能夠正常執行。

如何安全地連線到Azure PaaS服務

在上述例子中,Private Link會基於RBAC的許可,自動批准連線。當然,消費者(consumer)也有許可權去批准或拒絕連線。目前,私有端點具有四種連線狀態,它們分別是:已批准(提供自動或手動批准)、待定(未收到批准)、已拒絕(未批准)、已斷開(連線已被刪除)。

此外,為了部署私有端點或Private Link服務,使用者也必須被分配諸如:所有者、貢獻者、以及網路貢獻者等內建的角色。

至此,我們僅為儲存帳戶的blob建立了一個私有端點。如果您需要安全地訪問儲存帳戶的其他資源(例如檔案、表或佇列等),那麼還需要其他單獨的私有端點連線。

其實,私有端點並不限於公共雲,它也能夠支援混合雲等廣泛的Azure服務。例如,上例中的本地VM,就可以透過代理網路或快速路由,連線到由Private Link提供支援的Azure服務上。

通常,每個私有端點都會使用同一子網內的動態私有IP,來建立一個NIC。而且,私有IP地址的數值,在私有端點的整個生命週期內都是保持不變的。

與Azure服務端點不同,私有端點需要為端點的建立、以及出入棧資料的處理收取費用。

當然,上述討論的每一項服務也都會有著如下的限制:

僅支援IPv4的流量。

可處理TCP和UDP流量。

不支援基本的Azure LB(負載均衡器)。

此外,具有Azure安全基準的Azure安全中心,也提供了有關如何保護Azure上各種雲端應用和資源的建議。

小結

總的說來,服務端點帶有可公共路由的IP地址,而私有端點則可配置為在虛擬網路地址空間中的私有IP。您可以根據實際專案的需求,在服務端點和私有端點之間做出明智的選擇。