首頁>技術>

Microsoft Azure提供了兩個類似但不同的服務,允許虛擬網路(VNet)資源私下連線到其他Azure服務。Azure VNet服務端點和Azure私有端點(由Azure私有連結提供支援)都透過允許VNet流量不透過internet與服務資源通訊來促進網路安全,但它們之間存在一些區別。

這個由三部分組成的部落格系列詳細介紹了這兩種服務。

什麼是Azure服務端點?

在上面,虛擬機器擁有私有IP地址10.1.1.4,但是可以透過服務端點訪問儲存帳戶。內部通訊量不能使用服務端點,必須透過internet訪問儲存帳戶。從https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-service-endpoints-overview secure-azure-services-to-virtual-networks形象

服務端點允許VNet資源使用私有IP地址連線到Azure服務的公共端點,這意味著流量透過Azure骨幹網路而不是internet流向服務資源。實際上,您正在將VNet的標識擴充套件到服務資源。然後可以鎖定服務資源,使其只接受來自與服務端點關聯的子網的流量。

您還可以透過新增一個網路安全組(NSG)來鎖定VNet,以拒絕除所需Azure服務之外的所有出站流量。透過正確的配置,服務端點使您能夠將服務資源保護到您的VNet,從而提供額外的安全層。

例如,假設您在一個VNet中有一個虛擬機器(VM),它需要與一個Azure儲存帳戶通訊。您可以組合服務端點、儲存賬戶和NSG從VM在私人交通子網到達儲存賬戶沒有觸及網際網路,儲存賬戶塊所有流量從子網,除非是和NSG出站的流量限制子網網路。

如果沒有服務端點,就需要為虛擬機器分配一個公共IP地址,將其暴露給internet和伴隨它而來的所有威脅;子網將需要一個NAT閘道器裝置,需要一個額外的配置步驟和潛在的減慢流量;儲存帳戶需要對任何網路上的客戶端開放,這樣如果憑證洩露,因特網上的任何人都可以訪問它。幾乎沒有理想!

現在,讓我們看看服務端點帶來的一些好處:

增強的安全性:由於虛擬網路資源使用私有IP地址連線到服務資源,因此不需要為其分配公共IP地址。如果沒有公共IP地址,惡意參與者就無法掃描VM的開放埠以尋找漏洞,並關閉您的應用程式或竊取資料。最佳化路由:服務端點在Azure主幹網路上提供了從VNet到服務資源的直接路由,因此沒有額外的跳點來降低流量。更簡單的網路架構:由於流量透過Azure主幹網路從VNet資源流向服務資源,因此您不需要給它一個公共IP地址或配置NAT或閘道器裝置。另外,您可以在幾次單擊中啟用服務端點,Azure將處理維護服務端點的幕後工作。

服務端點目前可用於PaaS服務,如Azure儲存、Azure SQL資料庫、Azure金鑰庫和其他服務。

Azure服務端點策略

預設情況下,每個儲存帳戶都有一個網路訪問規則,允許來自所有網路(包括internet)的流量。為了保護您的儲存帳戶mystorageaccount,您可以啟用一個服務端點,然後修改mystorageaccount的預設網路訪問規則,以拒絕流量,除非流量來自服務端點。(我們將很快解釋如何做到這一點。)在這種情況下,服務端點子網中的vm1可以訪問mystorageaccount,但是不同子網中的vm2不能訪問mystorageaccount。這是因為每個服務、每個子網都啟用了服務端點。

以這種方式修改mystorageaccount的ACL可以保護mystorageaccount不受internet流量的影響,但需要注意的是,服務端點允許關聯子網中的任何計算例項訪問其他可用的儲存帳戶(同樣,這是因為每個服務、每個子網都啟用了服務端點)。如果您組織中的惡意參與者秘密配置roguestorageaccount以允許來自服務端點的流量,vm1可以向它傳送流量,允許惡意參與者竊取資料——即使roguestorageaccount是在不同的訂閱或Active Directory租戶中。

幸運的是,Azure為這種情況提供了一個解決方案:服務端點策略(目前僅對Azure儲存資源啟用)。服務端點策略指定服務端點的範圍:它只允許訪問訂閱中的所有儲存帳戶、資源組中的所有儲存帳戶或單個儲存帳戶。

透過使用服務端點策略更精確地指定流量的流向,可以降低資料溢位的風險。在本例中,您可以配置服務端點,以允許vm1僅向mystorageaccount傳送通訊量,而不向roguestorageaccount傳送通訊量。

與AWS VPC端點的相似性

如果您是AWS使用者,並且所有這些對您來說都很熟悉,那麼您可能會想到VPC閘道器端點,它們也使用路由來保護儲存和資料庫資源到虛擬網路的子網,而不需要透過internet傳輸流量。閘道器端點還授予從子網到服務的完全訪問權,除非您應用端點策略來縮小可訪問資源的範圍——與您使用Azure服務端點策略的方式非常相似。

如何建立Azure服務端點

您可以透過兩個簡單的步驟設定服務端點:

在網路端啟用服務端點在服務資源端配置acl

這裡是一個快速的演練,它是這個優秀Azure教程的一個簡短版本。假設您在虛擬網路的私有子網中有一個VM,在同一區域中有一個儲存帳戶,您希望流量從前者流到後者,而不需要透過internet。

在網路端啟用服務端點:

導航到子網並編輯它。

選擇“微軟。“服務端點”標題下的“服務”。

選擇“儲存”。

修改儲存帳戶端上的預設網路訪問規則:導航到儲存帳戶並選擇側邊欄中的“防火牆和虛擬網路”。在“允許訪問”下,選擇“選定的網路”。選擇“新增現有虛擬網路”,然後選擇您剛剛編輯的虛擬網路和子網。選擇“新增”,然後“儲存”。

就是這樣!您剛剛啟用了一個服務端點。如果您想對其進行測試,可以建立一個網路安全組(NSG),其中包含允許SSH或RDP從您的家庭IP地址訪問的入站規則,並將其與服務端點子網相關聯。(你可以使用whatismyip.com找到你的IP地址。請注意,VM還需要一個公共IP地址,以便您從家中訪問它。)SSH或RDP到例項中,並嘗試訪問儲存帳戶,例如透過使用Azure CLI或PowerShell列出其容器。您將看到,您可以從VM訪問儲存帳戶,而不能從自己的IP地址。(如果在同一子網中建立另一個VM,它也可以訪問儲存帳戶,因為沒有服務端點策略的服務端點允許關聯子網中的任何資源訪問其他可用的儲存帳戶。)

額外的好處是:實現我們前面提到的一種策略,即鎖定NSG,從而阻塞從VM到internet的出站流量。您可以透過建立兩個出站安全規則來做到這一點:一個只允許出站流量到Azure儲存,另一個阻止出站流量到internet。

首先,使用以下配置建立一個出站安全規則,以允許流量進入Azure儲存:

來源:VirtualNetwork目的地:服務標籤目的地服務標籤:儲存目的埠範圍:*(星號)行動:允許優先順序:100

輸入一個新名稱,並保持其他預設值。然後建立另一個出站安全規則,配置如下,以阻止網際網路流量:

來源:VirtualNetwork目的地:服務標籤目的地服務標籤:網際網路目的埠範圍:*(星號)行動:否認優先順序:110

輸入一個新名稱,並保留其他預設值。瞧!VM只能接受來自IP的流量,它只能將流量傳送到Azure儲存,而目標儲存帳戶只接受來自服務端點的流量。

要了解完整的演練,請參閱Azure的文章《使用Azure門戶限制對帶有虛擬網路服務端點的PaaS資源的網路訪問》。

額外獎勵:設定一個服務端點策略,以便VM只能將流量傳送到所需的儲存帳戶,而不是任何可用的儲存帳戶。下面是另一個很棒的Azure教程,向您展示如何使用它。

在使用服務端點之前需要了解的事情

關於服務端點,需要記住的一些提示:

服務端點沒有成本。與往常一樣,您需要為使用的VNet資源和服務資源付費,但無需為服務端點額外付費。如前所述,服務端點是為整個服務實現的(根據服務的不同,它甚至不需要是相同的AD租戶)。但是,如果服務資源是儲存帳戶,則可以使用服務端點策略將範圍縮小到訂閱或資源組中的所有儲存帳戶,或縮小到單個儲存帳戶。啟用服務端點時,關聯子網中的vm將從公共IP地址切換到私有IP地址。請記住這一點,因為設定為公共IP地址的現有防火牆規則可能會失敗。此外,從子網到服務資源的通訊可能在切換期間被臨時中斷,因此請確保在啟用或禁用服務端點時關鍵任務沒有執行!服務資源只能被保護到虛擬網路,因此內部通訊量不能使用服務端點連線到Azure服務。(如果你想讓交通從on prem開始,不要絕望;請參閱本教程的第2部分,其中我們討論了私有連結和私有端點!)結論

正如您所看到的,服務端點是透過將您的VNet身份擴充套件到服務資源來保護您的VNet和服務資源的一種極好的方法。流量源是一個私有IP地址,而目的地是服務資源的公共IP地址。

但是,如果您希望目的地也是私有IP地址,又該怎麼辦呢?

這就是私有連結和私有端點的作用。請繼續關注本部落格系列的第2部分!

本文:http://jiagoushi.pro/node/1381

35
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 關於小帥b的Python VIP 教程