AWS將安全性視為共同的責(zé)任,所以管理員必須采取所有必要的步驟來(lái)確保RDS內(nèi)數(shù)據(jù)的安全。
AWS提供了數(shù)種功能來(lái)保護(hù)它的關(guān)系數(shù)據(jù)庫(kù)服務(wù)。但就有如許多其他的Amazon Web服務(wù)產(chǎn)品一樣,RDS也歸類于“共同責(zé)任”的安全模型之下。在這個(gè)實(shí)例中,AWS管理著底層的基礎(chǔ)架構(gòu),包括RDS、客戶操作系統(tǒng)、AWS基礎(chǔ)架構(gòu)和AWS基礎(chǔ)服務(wù)等等,但I(xiàn)T團(tuán)隊(duì)仍然需要對(duì)自己的數(shù)據(jù)庫(kù)安全負(fù)責(zé)。
管理員必須考慮以下四個(gè)方面,才能保持AWS RDS內(nèi)的安全性,隱私性及數(shù)據(jù)完整性。
1.訪問(wèn)控制
管理員都想要確保只有授權(quán)用戶能夠訪問(wèn)公司數(shù)據(jù)庫(kù)以及特定的數(shù)據(jù)塊。AWS的彈性計(jì)算云(EC2)安全組允許云管理員將連接限制在某個(gè)授權(quán)的特定IP地址范圍內(nèi)。經(jīng)由你的AWS帳戶,你可以定義安全組和額外的特定IP地址,只允許它們?cè)L問(wèn)數(shù)據(jù)庫(kù)。這樣能夠在網(wǎng)絡(luò)層就保護(hù)好數(shù)據(jù)。但如果有未授權(quán)的用戶獲得在你允許IP范圍內(nèi)的某臺(tái)電腦的訪問(wèn)權(quán)限怎么辦?
此外,授權(quán)用戶可能在無(wú)意間刪除了數(shù)據(jù)。在這些情形中,AWS身份及訪問(wèn)管理(IAM)可以替用戶及用戶組定義定制的訪問(wèn)政策。這對(duì)你的關(guān)系數(shù)據(jù)庫(kù)服務(wù)操作及資源提供了更細(xì)化的控制。IAM的多因素認(rèn)證支持則更進(jìn)一步,確保了認(rèn)證的安全性。
在將網(wǎng)絡(luò)限制在一個(gè)有限的IP地址段內(nèi)進(jìn)行安全保護(hù),以及確保只有授權(quán)用戶能夠訪問(wèn)你的RDS之后,你可以微調(diào)用戶能夠訪問(wèn)的數(shù)據(jù)表和對(duì)象組以及他們能夠執(zhí)行的操作。一個(gè)RDS帳戶一開(kāi)始創(chuàng)建時(shí)有一組主用戶和密鑰。通常來(lái)說(shuō),數(shù)據(jù)庫(kù)管理員就是主用戶,但你也可以創(chuàng)建更多的主用戶并定義他們?cè)跀?shù)據(jù)庫(kù)里的訪問(wèn)權(quán)限。你也可以從數(shù)據(jù)庫(kù)內(nèi)部來(lái)加強(qiáng)連接的安全性,通過(guò)使用SSL連接的方式。
2.防火墻
你需要一個(gè)防火墻來(lái)將數(shù)據(jù)庫(kù)隔離于未授權(quán)的連接之外,并且監(jiān)控和審計(jì)內(nèi)部的活動(dòng)。但是,你并沒(méi)有數(shù)據(jù)庫(kù)或是它所在的硬件的直接訪問(wèn)權(quán)限。
這就是云服務(wù)的本質(zhì)。Amazon關(guān)系數(shù)據(jù)庫(kù)服務(wù)允許你在一個(gè)獨(dú)立的虛擬機(jī)里安裝第三方防火墻,來(lái)監(jiān)控和阻擋對(duì)你RDS實(shí)例的攻擊。在使用安全組及限制 IP范圍來(lái)阻擋不需要的訪問(wèn)之外,AWS也提供虛擬私有云(VPC),一種存在于組織層,能夠隔離存放數(shù)據(jù)庫(kù)的基礎(chǔ)架構(gòu)的防火墻。VPC能夠限制云不能夠被互聯(lián)網(wǎng)直接訪問(wèn),最終給予企業(yè)更多的控制。
為了能監(jiān)控你的數(shù)據(jù)庫(kù)操作和性能,Amazon CloudWatch提供了各式各樣的指標(biāo),包括CPU的使用,連接的數(shù)量,硬盤(pán)的空間使用,內(nèi)存的使用等等。這些性能指標(biāo)可以幫助我們探測(cè)類似于分布式拒絕服務(wù)之類的惡意攻擊,管理員也可以設(shè)立各種不同的警報(bào)來(lái)通知他們使用的高峰期或者性能的衰竭。
3.加密
不同的訪問(wèn)控制和防火墻機(jī)制對(duì)于預(yù)防未授權(quán)遠(yuǎn)程訪問(wèn)你的數(shù)據(jù)庫(kù)是很有幫助的,但你必須謹(jǐn)記你的數(shù)據(jù)是存在真實(shí)的硬件上的。因此,你必須保證它的私密性和安全性,即便有未授權(quán)的人員獲得了物理上的對(duì)那臺(tái)機(jī)器的訪問(wèn)并讀取了上面的數(shù)據(jù)。這就是數(shù)據(jù)加密派上用場(chǎng)的時(shí)候,不論是在數(shù)據(jù)從數(shù)據(jù)庫(kù)傳出還是傳入的時(shí)候,或者是當(dāng)它處于靜態(tài)的時(shí)候。
要達(dá)成傳輸間的加密,你必須確定所有對(duì)AWS RDS的訪問(wèn)都是經(jīng)由安全的HTTP(HTTPS)。有幾種數(shù)據(jù)庫(kù)還支持從數(shù)據(jù)庫(kù)內(nèi)部禁用非安全的連接的功能。要注意的是,加密和解密數(shù)據(jù)可能會(huì)產(chǎn)生一些數(shù)據(jù)庫(kù)操作的延遲。
要完成對(duì)靜態(tài)數(shù)據(jù)的加密,Amazon RDS為Oracle和SQL Server提供了一個(gè)透明數(shù)據(jù)加密(TDE)設(shè)施。TDE允許管理員使用一個(gè)256位的AES主密鑰加密數(shù)據(jù)以及加密密鑰。除了這個(gè)方式,你唯一能達(dá)到靜態(tài)加密的選擇就只有使用標(biāo)準(zhǔn)加密庫(kù),例如OpenSSL或Bouncy Castle來(lái)選擇性的替數(shù)據(jù)庫(kù)字段加密。
4. 審計(jì)和報(bào)告
要真的了解數(shù)據(jù)庫(kù)內(nèi)部發(fā)生的狀況,以及要遵循有關(guān)存儲(chǔ)數(shù)據(jù)的不同規(guī)則,管理員必須檢視所有數(shù)據(jù)庫(kù)內(nèi)部的活動(dòng),并生成有意義的報(bào)告。Amazon CloudTrail就是個(gè)能夠提供API調(diào)用及相關(guān)事件完整歷史的數(shù)據(jù)庫(kù)審計(jì)服務(wù)。
CloudTrail提供多種關(guān)于日志文件相關(guān)的功能,允許公司遵循大部分的法律法規(guī),包括使用IAM服務(wù)對(duì)日志文件進(jìn)行訪問(wèn)控制,創(chuàng)建或配置錯(cuò)誤日志文件的警告,關(guān)于系統(tǒng)改動(dòng)事件的日志,日志文件存儲(chǔ)等等。CloudTrail可以為超過(guò)25個(gè)不同字段創(chuàng)建日志,能夠分析并產(chǎn)生有意義的報(bào)告來(lái)告知IT團(tuán)隊(duì)任何關(guān)于數(shù)據(jù)庫(kù)的行為。