除少數(shù)特殊情況以外,AWS客戶很少會關(guān)心或者考慮控制云基礎(chǔ)設(shè)施的位置或配置。EC2安全組和網(wǎng)絡(luò)訪問控制列表將有助于保護(hù)工作負(fù)載。
當(dāng)企業(yè)架構(gòu)師們在為云設(shè)計應(yīng)用架構(gòu)時,他們會面臨眾多的挑戰(zhàn)。這些挑戰(zhàn)之一就包括他們無法掌控物理硬件或網(wǎng)絡(luò)的無所適從感。了解如何確保資源安全性將是一項棘手的工作,因為這些資源從物理上來說都是不在用戶控制范圍內(nèi)的,但是作為工程師,他們必須將未知的、抽象的實施與已知的、熟悉的概念一一聯(lián)系起來。
確保云應(yīng)用安全性的基本要求是,了解如何實現(xiàn)資源隔離。在內(nèi)部部署環(huán)境中,這一點涉及到路由器、子網(wǎng)和防火墻。而在云環(huán)境中,當(dāng)在共享基礎(chǔ)設(shè)施上運行時,服務(wù)器隔離似乎是有一點問題的,因為其中某臺特定虛擬機(jī)的物理位置不僅是未知的而且是有可能會發(fā)生變化的。虛擬機(jī)管理程序提供了針對服務(wù)器上其他應(yīng)用程序的內(nèi)存保護(hù),但這一做法可能還無法讓所有的IT團(tuán)隊感到滿意。所以,企業(yè)用戶應(yīng)如何在AWS中實現(xiàn)針對其他用戶的網(wǎng)絡(luò)隔離,以及在其自有虛擬機(jī)組中的網(wǎng)絡(luò)隔離?彈性計算云(EC2)安全組是回答這個問題的關(guān)鍵部分。
EC2安全組可作為虛擬子網(wǎng)和客戶端防火墻的一個組合。EC2安全組中的每一個實例都共享著一個通用安全策略;類似于防火墻的規(guī)則控制著各個組之間的流量。防火墻的默認(rèn)行為是拒絕流量的,而特定規(guī)則可允許出入站的連接。
安全組與亞馬遜虛擬私有云(VPC)密切相關(guān),后者可作為某家用戶AWS基礎(chǔ)設(shè)施中的子網(wǎng)。兩者都提供了基于端口的訪問控制,安全組就如同基于服務(wù)器的防火墻(例如Linux iptables),而VPC則類似于基于網(wǎng)絡(luò)的傳統(tǒng)路由器或防火墻,其預(yù)定義安全策略覆蓋了整個子網(wǎng)。下表重點突出了AWS安全組和VPC之間的差異。
安全組為每個虛擬機(jī)控制著出入站的流量,而一個組內(nèi)的所有實例共享著相同的策略;VPC ACL則為網(wǎng)絡(luò)子網(wǎng)做著相同的工作。兩個安全構(gòu)建體是正交的:特定VPC中的EC2實例(即共享通用網(wǎng)絡(luò)安全策略的多個EC2實例)可以屬于不同的安全組。但是,如果管理員在實例化一個實例時沒有指定EC2安全組,那么系統(tǒng)會為VPC自動分配默認(rèn)組。如果管理員還沒有定義任何的VPC,那么AWS會創(chuàng)建一個默認(rèn)網(wǎng)絡(luò)。
EC2安全組的大拇指規(guī)則
EC2安全組在AWS中為虛擬機(jī)網(wǎng)絡(luò)安全策略基線提供了一個結(jié)構(gòu),它應(yīng)當(dāng)被視為第一道防線——一個必要但不充分的安全組件。
企業(yè)AWS部署也應(yīng)包括一個或多個VPC以便為網(wǎng)絡(luò)安全策略增加一個層。
我們提出以下建議策略,以確保AWS部署:
為每一個應(yīng)用、應(yīng)用層和管理用戶組創(chuàng)建一個獨立的安全組,并使用專為特定工作負(fù)載或服務(wù)層需求而調(diào)整的策略:不要為每一個實例創(chuàng)建一個獨立的安全組;不要把所有的實例都放在同一個安全組。這種舊式的“護(hù)城河和城堡”式的防火墻策略明顯外強(qiáng)中干,面對如今使用多重攻擊和內(nèi)部試探在先針對性攻擊在后的攻擊方式已無法發(fā)揮防火墻作用;不要依靠VPC的默認(rèn)AWS安全組。在默認(rèn)情況下,AWS只允許默認(rèn)組中其他實例的入站流量和所有出站流量。這可能并不是用戶所需要的。
仔細(xì)規(guī)劃網(wǎng)絡(luò)路由和子網(wǎng)設(shè)計(VPC),并使用網(wǎng)絡(luò)之間的嚴(yán)格ACL。網(wǎng)絡(luò)ACL為互聯(lián)網(wǎng)和應(yīng)用程序協(xié)議提供了精細(xì)化控制,例如GRE、IPSec、ICMP、HTTP、SSL、DNS以及源/目的IP地址范圍之間的流量限制。一方面VPC ACL獨立于安全組,另一方面兩者又相互協(xié)作。在不必要的流量和潛在有害的流量到達(dá)EC2實例和安全組策略之前,VPC ACL和安全組就就把它們剔除了。
當(dāng)為網(wǎng)絡(luò)和實例進(jìn)行ACL規(guī)則定義時,使用最低權(quán)限標(biāo)準(zhǔn)。只允許絕對需要的連接、端口和用戶。
特別關(guān)注出站安全組策略。出站規(guī)則限制對特定地址的連接,例如Dropbox或中國黑客,以及可用于未授權(quán)數(shù)據(jù)泄露的端口(FTP)。
支持無所不在的日志記錄:VPC流量日志、CloudTrail、亞馬遜身份與訪問管理等等。事件日志可提供故障問題排除、現(xiàn)場安全漏洞和隨時間推移安全策略完善所必須的詳細(xì)信息。
正如任何安全指南一樣,每一家IT組織都必須確定其安全配置文件,并根據(jù)適應(yīng)特定應(yīng)用和使用場景需要定義策略細(xì)節(jié)。盡管如此,正確睿智地使用EC2安全組是支持云計算安全策略的堅實支柱之一。