如何安全地連接到Azure PaaS服務(wù)
譯文【51CTO.com快譯】眾所周知,在Azure中預(yù)配任何基于PaaS的服務(wù)時(shí),它都會(huì)附帶一個(gè)公共的端點(diǎn)。而作為云架構(gòu)師或安全工程師,您必須從設(shè)計(jì)的角度,確保此類基于PaaS服務(wù)的連接是安全的。也就是說,為了保證訪問公共端點(diǎn)時(shí)的安全性,我們往往需要對(duì)服務(wù)端點(diǎn)進(jìn)行加固。
服務(wù)端點(diǎn)(Service Endpoint)
具體而言,作為虛擬網(wǎng)絡(luò)的一部分,它需要通過Azure主干網(wǎng)絡(luò)上的優(yōu)化路由,來提供與Azure服務(wù)直接且安全的連接。其中,服務(wù)端點(diǎn)能夠讓虛擬網(wǎng)絡(luò)(vnet)中的私有IP地址,到達(dá)Azure服務(wù)的一個(gè)端點(diǎn),而無需使用vnet上的公共IP地址。
下圖描繪了在虛擬網(wǎng)絡(luò)中,一臺(tái)正在運(yùn)行的私有虛擬機(jī)試圖訪問某個(gè)存儲(chǔ)帳戶。為此,我們首先需要在已運(yùn)行的VM的唯一虛擬網(wǎng)絡(luò)中,啟用服務(wù)端點(diǎn)。
啟用服務(wù)端點(diǎn)的步驟
第一步:按需在虛擬網(wǎng)絡(luò)上啟用服務(wù)端點(diǎn)。由于端點(diǎn)上的各種策略都是可選的,因此您可以根據(jù)實(shí)際需求,過濾那些前往Azure服務(wù)的虛擬網(wǎng)絡(luò)流量。
第二步:進(jìn)入PaaS服務(wù)的防火墻或網(wǎng)絡(luò)設(shè)置界面,添加服務(wù)端點(diǎn)。
第三步:驗(yàn)證端點(diǎn)服務(wù)是否已被啟用。
注意事項(xiàng)
1. 在設(shè)置服務(wù)端點(diǎn)之前,請(qǐng)確保IP防火墻的相應(yīng)規(guī)則已被允許。
2. 連接到基于PaaS的服務(wù)上時(shí),由于服務(wù)端點(diǎn)并不支持各種本地資源,因此您必須使用本地的NAT IP或快速路由的方式。而且,您必須在資源IP防火墻的設(shè)置中,允許此類公共IP地址。
3. 對(duì)于服務(wù)端點(diǎn)而言,可用的基于PaaS的服務(wù)包括:Azure存儲(chǔ)、Azure數(shù)據(jù)庫服務(wù)、Azure Synapse Analytics、Azure Key Vault、Azure服務(wù)總線、Azure事件中心、Azure數(shù)據(jù)湖存儲(chǔ)Gen 1、Azure應(yīng)用服務(wù)、以及Azure認(rèn)知服務(wù)。
4. 為了通過服務(wù)端點(diǎn)去訪問SQL和數(shù)據(jù)湖服務(wù),vnet和PaaS服務(wù)應(yīng)當(dāng)位于同一個(gè)區(qū)域中。
5. 服務(wù)端點(diǎn)并不能解析DNS的查詢。
值得注意的是,您無需為服務(wù)端點(diǎn)支付任何額外的費(fèi)用,并且創(chuàng)建服務(wù)端點(diǎn)的數(shù)量也不受任何限制。
私有端點(diǎn)(Private endpoint)
在討論了服務(wù)端點(diǎn)之后,我們下面來看看私有端點(diǎn)。私有端點(diǎn)會(huì)通過使用來自虛擬網(wǎng)絡(luò)(vnet)的私有IP地址,有效地將基于PaaS的服務(wù)引入虛擬網(wǎng)絡(luò)。我們可以認(rèn)為它是一種網(wǎng)絡(luò)接口,能夠安全地連接到由Azure Private Link提供支持的服務(wù)處。
下圖描繪了在虛擬網(wǎng)絡(luò)中,一臺(tái)正在運(yùn)行的私有虛擬機(jī)試圖訪問某個(gè)存儲(chǔ)帳戶。為此,我們首先需要為正在運(yùn)行VM的虛擬網(wǎng)絡(luò),去設(shè)置一個(gè)私有端點(diǎn)。
配置私有端點(diǎn)的步驟
第一步:進(jìn)入PaaS服務(wù),“私有端點(diǎn)創(chuàng)建選項(xiàng)”會(huì)出現(xiàn)在防火墻和網(wǎng)絡(luò)部分中,或作為一個(gè)單獨(dú)的部分被提供。
第二步:Private Link提供了為不同的Azure資源,創(chuàng)建私有端點(diǎn)的選項(xiàng),其中包括:Private Link服務(wù)、SQL服務(wù)器或Azure存儲(chǔ)帳戶。請(qǐng)選擇該私有端點(diǎn)需要連接的具體資源。
第三步:在此,您必須選擇一個(gè)虛擬網(wǎng)絡(luò)/子網(wǎng),并與私有的DNS相集成。同時(shí),您需要通過一個(gè)DNS記錄,實(shí)現(xiàn)與私有端點(diǎn)的連接。在配置完成后,您便可以創(chuàng)建相應(yīng)的服務(wù)了。
第四步:您可以在“服務(wù) -> 網(wǎng)絡(luò)”下的虛擬網(wǎng)絡(luò)部分,檢查并驗(yàn)證私有端點(diǎn)服務(wù)是否已被成功創(chuàng)建,以及是否能夠正常運(yùn)行。
在上述例子中,Private Link會(huì)基于RBAC的許可,自動(dòng)批準(zhǔn)連接。當(dāng)然,消費(fèi)者(consumer)也有權(quán)限去批準(zhǔn)或拒絕連接。目前,私有端點(diǎn)具有四種連接狀態(tài),它們分別是:已批準(zhǔn)(提供自動(dòng)或手動(dòng)批準(zhǔn))、待定(未收到批準(zhǔn))、已拒絕(未批準(zhǔn))、已斷開(連接已被刪除)。
此外,為了部署私有端點(diǎn)或Private Link服務(wù),用戶也必須被分配諸如:所有者、貢獻(xiàn)者、以及網(wǎng)絡(luò)貢獻(xiàn)者等內(nèi)置的角色。
至此,我們僅為存儲(chǔ)帳戶的blob創(chuàng)建了一個(gè)私有端點(diǎn)。如果您需要安全地訪問存儲(chǔ)帳戶的其他資源(例如文件、表或隊(duì)列等),那么還需要其他單獨(dú)的私有端點(diǎn)連接。
其實(shí),私有端點(diǎn)并不限于公共云,它也能夠支持混合云等廣泛的Azure服務(wù)。例如,上例中的本地VM,就可以通過代理網(wǎng)絡(luò)或快速路由,連接到由Private Link提供支持的Azure服務(wù)上。
通常,每個(gè)私有端點(diǎn)都會(huì)使用同一子網(wǎng)內(nèi)的動(dòng)態(tài)私有IP,來創(chuàng)建一個(gè)NIC。而且,私有IP地址的數(shù)值,在私有端點(diǎn)的整個(gè)生命周期內(nèi)都是保持不變的。
與Azure服務(wù)端點(diǎn)不同,私有端點(diǎn)需要為端點(diǎn)的創(chuàng)建、以及出入棧數(shù)據(jù)的處理收取費(fèi)用。
當(dāng)然,上述討論的每一項(xiàng)服務(wù)也都會(huì)有著如下的限制:
- 僅支持IPv4的流量。
- 可處理TCP和UDP流量。
- 不支持基本的Azure LB(負(fù)載均衡器)。
此外,具有Azure安全基準(zhǔn)的Azure安全中心,也提供了有關(guān)如何保護(hù)Azure上各種云端應(yīng)用和資源的建議。
小結(jié)
總的說來,服務(wù)端點(diǎn)帶有可公共路由的IP地址,而私有端點(diǎn)則可配置為在虛擬網(wǎng)絡(luò)地址空間中的私有IP。您可以根據(jù)實(shí)際項(xiàng)目的需求,在服務(wù)端點(diǎn)和私有端點(diǎn)之間做出明智的選擇。如果您有興趣了解更多有關(guān)如何安全地連接到Azure PaaS服務(wù)的知識(shí),請(qǐng)參考服務(wù)演示視頻。
原文標(biāo)題:Secure Connectivity To Azure PaaS Services,作者:Sagar Pawar
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】