云服務(wù)器實(shí)踐:配置安全組(三)
導(dǎo)讀: 云服務(wù)器自帶的安全組設(shè)置可以提供虛擬防火墻功能,達(dá)到重要的安全隔離手段。那么創(chuàng)建ECS云服務(wù)器時(shí)怎么樣來(lái)配置安全組呢?上期說(shuō)到了配置安全組的入網(wǎng)規(guī)則和安全組內(nèi)網(wǎng)通訊的概念,本文接著闡述下如何區(qū)分不同安全組使用跳板機(jī)的原理和方法。
在安全組的使用過(guò)程中,通常會(huì)將所有的云服務(wù)器放置在同一個(gè)安全組中,從而可以減少初期配置的工作量。但從長(zhǎng)遠(yuǎn)來(lái)看,業(yè)務(wù)系統(tǒng)網(wǎng)絡(luò)的交互將變得復(fù)雜和不可控。在執(zhí)行安全組變更時(shí),您將無(wú)法明確添加和刪除規(guī)則的影響范圍。
合理規(guī)劃和區(qū)分不同的安全組將使得您的系統(tǒng)更加便于調(diào)整,梳理應(yīng)用提供的服務(wù)并對(duì)不同應(yīng)用進(jìn)行分層。這里推薦您對(duì)不同的業(yè)務(wù)規(guī)劃不同的安全組,并設(shè)置不同的安全組規(guī)則。
區(qū)分不同的安全組
·
公網(wǎng)服務(wù)的云服務(wù)器和內(nèi)網(wǎng)服務(wù)器盡量屬于不同的安全組
·
是否對(duì)外提供公網(wǎng)服務(wù),包括主動(dòng)暴露某些端口對(duì)外訪問(wèn)(例如 80、443 等),被動(dòng)地提供(例如云服務(wù)器具有公網(wǎng) IP、EIP、NAT 端口轉(zhuǎn)發(fā)規(guī)則等)端口轉(zhuǎn)發(fā)規(guī)則,都會(huì)導(dǎo)致自己的應(yīng)用可能被公網(wǎng)訪問(wèn)到。
·
2 種場(chǎng)景的云服務(wù)器所屬的安全組規(guī)則要采用最嚴(yán)格的規(guī)則,建議拒絕優(yōu)先,默認(rèn)情況下應(yīng)當(dāng)關(guān)閉所有的端口和協(xié)議,僅僅暴露對(duì)外提供需要服務(wù)的端口,例如 80、443。由于僅對(duì)屬于對(duì)外公網(wǎng)訪問(wèn)的服務(wù)器編組,調(diào)整安全組規(guī)則時(shí)也比較容易控制。
·
對(duì)于對(duì)外提供服務(wù)器編組的職責(zé)應(yīng)該比較明晰和簡(jiǎn)單,避免在同樣的服務(wù)器上對(duì)外提供其它的服務(wù)。例如 MySQL、Redis 等,建議將這些服務(wù)安裝在沒(méi)有公網(wǎng)訪問(wèn)權(quán)限的云服務(wù)器上,然后通過(guò)安全組的組組授權(quán)來(lái)訪問(wèn)。
·
如果當(dāng)前有公網(wǎng)云服務(wù)器已經(jīng)和其它的應(yīng)用在同一個(gè)安全組 SG_CURRENT。您可以通過(guò)下面的方法來(lái)進(jìn)行變更。
·
i. 梳理當(dāng)前提供的公網(wǎng)服務(wù)暴露的端口和協(xié)議,例如 80、443。
ii. 新創(chuàng)建一個(gè)安全組,例如 SG_WEB, 然后添加相應(yīng)的端口和規(guī)則。
說(shuō)明 授權(quán)策略:允許,協(xié)議類型:ALL, 端口: 80/80,授權(quán)對(duì)象: 0.0.0.0/0, 授權(quán)策略:允許,協(xié)議類型:ALL,端口: 443/443 授權(quán)對(duì)象: 0.0.0.0/0。
iii.
iv. 選擇安全組 SG_CURRENT, 然后添加一條安全組規(guī)則,組組授權(quán),允許 SG_WEB 中的資源訪問(wèn)SG_CURRENT。
說(shuō)明 授權(quán)策略:允許,協(xié)議類型:ALL,端口:-1/-1,授權(quán)對(duì)象:SG_WEB,優(yōu)先級(jí):按照實(shí)際情況自定義[1-100]。
v.
vi. 將一臺(tái)需要切換安全組的實(shí)例 ECS_WEB_1 添加到新的安全組中。
a. 在 ECS 控制臺(tái)中,選擇 安全組管理。
b. 選擇 SG_WEB > 管理實(shí)例 > 添加實(shí)例,選擇實(shí)例 ECS_WEB_1 加入到新的安全組 SG_WEB 中,確認(rèn) ECS_WEB_1 實(shí)例的流量和網(wǎng)絡(luò)工作正常。
vii. 將 ECS_WEB_1 從原來(lái)的安全組中移出。
a. 在 ECS 控制臺(tái)中,選擇 安全組管理。
b. 選擇 SG_WEB > 管理實(shí)例 > 添加實(shí)例,選擇 ECS_WEB_1 ,從 SG_CURRENT 移除,測(cè)試網(wǎng)絡(luò)連通性,確認(rèn)流量和網(wǎng)絡(luò)工作正常。
c. 如果工作不正常,將 ECS_WEB_1 仍然加回到安全組 SG_CURRENT 中,檢查設(shè)置的 SG_WEB 暴露的端口是否符合預(yù)期,然后繼續(xù)變更。
viii. 執(zhí)行其它的服務(wù)器安全組變更。
·
不同的應(yīng)用使用不同的安全組
·
在生產(chǎn)環(huán)境中,不同的操作系統(tǒng)大多情況下不會(huì)屬于同一個(gè)應(yīng)用分組來(lái)提供負(fù)載均衡服務(wù)。提供不同的服務(wù)意味著需要暴露的端口和拒絕的端口是不同的,建議不同的操作系統(tǒng)盡量歸屬于不同的安全組。
·
例如,對(duì)于 Linux 操作系統(tǒng),可能需要暴露 TCP(22)端口來(lái)實(shí)現(xiàn) SSH,對(duì) Windows 可能需要開(kāi)通 TCP(3389) 遠(yuǎn)程桌面連接。
·
除了不同的操作系統(tǒng)歸屬不同的安全組,即便同一個(gè)鏡像類型,提供不同的服務(wù),如果之間不需要通過(guò)內(nèi)網(wǎng)進(jìn)行訪問(wèn)的話,最好也劃歸不同的安全組。這樣方便解耦,并對(duì)未來(lái)的安全組規(guī)則進(jìn)行變更,做到職責(zé)單一。
·
在規(guī)劃和新增應(yīng)用時(shí),除了考慮劃分不同的虛擬交換機(jī)配置子網(wǎng),也應(yīng)該同時(shí)合理的規(guī)劃安全組。使用網(wǎng)段+安全組約束自己作為服務(wù)提供者和消費(fèi)者的邊界。
·
具體的變更流程參見(jiàn)上面的操作步驟。
·
·
生產(chǎn)環(huán)境和測(cè)試環(huán)境使用不同的安全組
·
為了更好的做系統(tǒng)的隔離,在實(shí)際開(kāi)發(fā)過(guò)程中,您可能會(huì)構(gòu)建多套的測(cè)試環(huán)境和一套線上環(huán)境。為了更合理的做網(wǎng)絡(luò)隔離,您需要對(duì)不同的環(huán)境配置使用不同的安全策略,避免因?yàn)闇y(cè)試環(huán)境的變更刷新到了線上影響線上的穩(wěn)定性。
·
通過(guò)創(chuàng)建不同的安全組,限制應(yīng)用的訪問(wèn)域,避免生產(chǎn)環(huán)境和測(cè)試環(huán)境聯(lián)通。同時(shí)也可以對(duì)不同的測(cè)試環(huán)境分配不同的安全組,避免多套測(cè)試環(huán)境之間互相干擾,提升開(kāi)發(fā)效率。
·
僅對(duì)需要公網(wǎng)訪問(wèn)子網(wǎng)或者云服務(wù)器分配公網(wǎng) IP
不論是經(jīng)典網(wǎng)絡(luò)還是專有網(wǎng)絡(luò) (VPC) 中,合理的分配公網(wǎng) IP 可以讓系統(tǒng)更加方便地進(jìn)行公網(wǎng)管理,同時(shí)減少系統(tǒng)受攻擊的風(fēng)險(xiǎn)。在專有網(wǎng)絡(luò)的場(chǎng)景下,創(chuàng)建虛擬交換機(jī)時(shí),建議您盡量將需要公網(wǎng)訪問(wèn)的服務(wù)區(qū)的 IP 區(qū)間放在固定的幾個(gè)交換機(jī)(子網(wǎng) CIDR)中,方便審計(jì)和區(qū)分,避免不小心暴露公網(wǎng)訪問(wèn)。
在分布式應(yīng)用中,大多數(shù)應(yīng)用都有不同的分層和分組,對(duì)于不提供公網(wǎng)訪問(wèn)的云服務(wù)器盡量不提供公網(wǎng)IP,如果是有多臺(tái)服務(wù)器提供公網(wǎng)訪問(wèn),建議您配置公網(wǎng)流量分發(fā)的負(fù)載均衡服務(wù)來(lái)公網(wǎng)服務(wù),提升系統(tǒng)的可用性,避免單點(diǎn)。
對(duì)于不需要公網(wǎng)訪問(wèn)的云服務(wù)器盡量不要分配公網(wǎng) IP。專有網(wǎng)絡(luò)中當(dāng)您的云服務(wù)器需要訪問(wèn)公網(wǎng)的時(shí)候,優(yōu)先建議您使用 NAT 網(wǎng)關(guān),用于為 VPC 內(nèi)無(wú)公網(wǎng) IP 的 ECS 實(shí)例提供訪問(wèn)互聯(lián)網(wǎng)的代理服務(wù),您只需要配置相應(yīng)的 SNAT 規(guī)則即可為具體的 CIDR 網(wǎng)段或者子網(wǎng)提供公網(wǎng)訪問(wèn)能力,具體配置參見(jiàn) SNAT。避免因?yàn)橹恍枰L問(wèn)公網(wǎng)的能力而在分配了公網(wǎng) IP(EIP) 之后也向公網(wǎng)暴露了服務(wù)。
最小原則
安全組應(yīng)該是白名單性質(zhì)的,所以需盡量開(kāi)放和暴露最少的端口,同時(shí)盡可能少地分配公網(wǎng) IP。若想訪問(wèn)線上機(jī)器進(jìn)行任務(wù)日志或錯(cuò)誤排查的時(shí)候直接分配公網(wǎng) IP 或者掛載 EIP 雖然簡(jiǎn)便,但是畢竟會(huì)將整個(gè)機(jī)器暴露在公網(wǎng)之上,更安全的策略是建議通過(guò)跳板機(jī)來(lái)管理。
使用跳板機(jī)
跳板機(jī)由于其自身的權(quán)限巨大,除了通過(guò)工具做好審計(jì)記錄。在專有網(wǎng)絡(luò)中,建議將跳板機(jī)分配在專有的虛擬交換機(jī)之中,對(duì)其提供相應(yīng)的 EIP 或者 NAT 端口轉(zhuǎn)發(fā)表。
首先創(chuàng)建專有的安全組 SG_BRIDGE,例如開(kāi)放相應(yīng)的端口,例如 Linux TCP(22) 或者 Windows RDP(3389)。為了限制安全組的入網(wǎng)規(guī)則,可以限制可以登錄的授權(quán)對(duì)象為企業(yè)的公網(wǎng)出口范圍,減少被登錄和掃描的概率。
然后將作為跳板機(jī)的云服務(wù)器加入到該安全組中。為了讓該機(jī)器能訪問(wèn)相應(yīng)的云服務(wù)器,可以配置相應(yīng)的組授權(quán)。例如在 SG_CURRENT 添加一條規(guī)則允許 SG_BRIDGE 訪問(wèn)某些端口和協(xié)議。
使用跳板機(jī) SSH 時(shí),建議您優(yōu)先使用 SSH 密鑰對(duì) 而不是密碼登錄。
總之,合理的安全組規(guī)劃使您在擴(kuò)容應(yīng)用時(shí)更加游刃有余,同時(shí)讓您的系統(tǒng)更加安全。
【阿里云,阿里巴巴集團(tuán)旗下云計(jì)算品牌,全球卓越的云計(jì)算技術(shù)和服務(wù)提供商。海商(westcoastpropertyservices.com)作為阿里云湖南唯一授權(quán)服務(wù)中心,國(guó)內(nèi)知名商城系統(tǒng)及商城網(wǎng)站建設(shè)提供商,專為企業(yè)提供專業(yè)完善電商整體解決方案、微商云、視頻云、醫(yī)療云等,咨詢阿里云服務(wù)器詳情可電聯(lián):18684778716(微信同號(hào))】