本文想從技術(shù)的角度談?wù)勎覍?a target="_blank">云計算數(shù)據(jù)中心DevSecOps運維模式中的安全性的理解,和過去幾年我在云服務(wù)業(yè)務(wù)連續(xù)性管理方面的探索。
現(xiàn)在公有云服務(wù)商都不約而同地轉(zhuǎn)向DevSecOps模式。DevSecOps是DevOps的另一種實踐,它將信息技術(shù)安全性作為軟件開發(fā)所有階段的一個基本點。安全性,不僅涉及各種層次的隔離和合規(guī)性檢查,而且涉及從技術(shù)層面確保業(yè)務(wù)連續(xù)性。在ISO/IEC 27001信息安全管理體系中,“業(yè)務(wù)連續(xù)性管理”是安全管理中非常重要的一環(huán),目的是為減少業(yè)務(wù)活動的中斷,使關(guān)鍵業(yè)務(wù)過程免受主要故障或天災(zāi)的影響,并確保及時恢復(fù)?!皹I(yè)務(wù)連續(xù)性管理”是安全治理中的術(shù)語,把它轉(zhuǎn)化到計算機產(chǎn)品中的術(shù)語,就是“可靠性,可用性和可維護性(RAS)”。
一、去中心化
每個云計算數(shù)據(jù)中心都有一些中心化的共享服務(wù),比如防火墻、DNS、核心路由、負載均衡器、分布式存儲等等。雖然IT基礎(chǔ)架構(gòu)在設(shè)計和代碼執(zhí)行充分考慮到了高可用和高通量,可是實際上,總是有一些例外。比如,我們在一次防火墻升級時,因為一個偶發(fā)的Bug, Peer 并沒有接管所有的流量,結(jié)果導(dǎo)致了很多服務(wù)的非計劃的Outage。
在這之后,將IT基礎(chǔ)架構(gòu)從中心化結(jié)構(gòu)分解成眾多的較小的故障域結(jié)構(gòu),成了我們在設(shè)計和改進云計算數(shù)據(jù)中心的關(guān)鍵考慮因素之一。我們云基礎(chǔ)架構(gòu)分布于幾十個地區(qū)(Regions)。每個地區(qū)的數(shù)據(jù)中心又從物理上分隔為3個可用性域(Availability Domains),這些可用性域所有的基礎(chǔ)設(shè)施都獨立的??捎糜虮舜烁綦x,容錯,并且?guī)缀醪豢赡芡瑫r失敗。由于可用性域不共享基礎(chǔ)設(shè)施(例如電源或冷卻)或內(nèi)部可用性域網(wǎng)絡(luò),因此區(qū)域內(nèi)一個可用性域的故障不太可能影響同一區(qū)域內(nèi)其他可用性域的客戶。在每個可用性域里,我們又進一步去中心化,分組為多個故障域(Fault Domains)。故障域是一組硬件和基礎(chǔ)架構(gòu)。通過適當?shù)乩霉收嫌?,我們的客戶可以提高?a target="_blank">Oracle Cloud Infrastructure上運行的應(yīng)用程序的可用性。例如,客戶如有兩個Web服務(wù)器和一個集群數(shù)據(jù)庫,我們會建議他們將一個Web服務(wù)器和一個數(shù)據(jù)庫節(jié)點組合在一個故障域中,將另一半組分配到另一個故障域中。這可以確保任何一個故障的失敗都不會導(dǎo)致應(yīng)用程序中斷。
除了上面這個故障域,我們還針對Oracle SaaS服務(wù)(Oracle的ERP、CRM、HCM等行業(yè)解決方案,目前有超過2.5萬的企業(yè)客戶)提出了具體的指標:任何組件的災(zāi)難事件都應(yīng)無法導(dǎo)致該數(shù)據(jù)中心 10%的客戶,或 100 個客戶的服務(wù)中斷。為此,我們團隊幾年前設(shè)計并實施一個去中心化的改進方案以實現(xiàn)這一目標。這是個以零停機時間為目標的基礎(chǔ)架構(gòu)優(yōu)化方案,涉及了防火墻、DNS、負載均衡器、Web前端、存儲、IMAP等等。
二、備份與容災(zāi)
備份與容災(zāi)是保證服務(wù)安全性和可用性繞不開的話題。雖然備份與容災(zāi)的成本很高,我們還是提供了針對各種場景的備份與容災(zāi)方案供客戶自己選擇。
備份數(shù)據(jù)使用率很低。在生產(chǎn)環(huán)境中,我接到的數(shù)據(jù)恢復(fù)請求平均每個季度不到千分之二,主要是顧客測試環(huán)境中的數(shù)據(jù)恢復(fù)。而真實的生產(chǎn)環(huán)境的SaaS服務(wù)數(shù)據(jù)恢復(fù)請求平均每個季度不到萬分之二。為了這萬分之二的使用概率,運維部門每周都會抽取一定比例的備份按照特定的安全的流程進行數(shù)據(jù)恢復(fù)測試和驗證,以確保備份是有效的。
我還和我的同事們還開發(fā)了Oracle SaaS DR 的執(zhí)行方案。客戶如購買了這一服務(wù),則可通過Oracle Site Guard 的Web GUI界面的簡單幾步操作,即可快速將生產(chǎn)環(huán)境從一個數(shù)據(jù)中心切換到另一個數(shù)據(jù)中心。蘑菇街技術(shù)服務(wù)總監(jiān)趙成先生在他的文章《做容災(zāi),冷備是不是個好方案》中提到了冷備的難點。我們的DR 方案在技術(shù)上重點就是解決了非計劃的Ouage之后,數(shù)據(jù)同步、清除異常鎖文件、負載均衡器更新、應(yīng)用配置更新、使用Data Guard 切換數(shù)據(jù)庫等方面的問題,以及主節(jié)點恢復(fù)后如何進行反向同步并自動切換到非計劃的Ouage之前的配置。關(guān)于我們DR方案的RTO(Recovery Time Objective)和RPO(Recovery Point Objective),你可以Google查詢“Disaster Recovery for Oracle SaaS Public Cloud Services ”,從官方正式的文檔中得到。實際上,我們生產(chǎn)環(huán)境中驗證的數(shù)據(jù)比對外公布的數(shù)據(jù)要好得多。
三、持續(xù)改進訪問控制,在效率和安全中找到平衡點
我把訪問控制的范圍概括為:客戶授權(quán)的特定的人、在指定的時間內(nèi)、以驗證過的安全方式、訪問脫敏的內(nèi)容,并盡可能地加密客戶數(shù)據(jù)路過的所有通道和節(jié)點。
(1)、客戶授權(quán)。我們根據(jù)客戶的行業(yè)屬性不同和數(shù)據(jù)安全性需求不同,定制了多個客戶安全審計部門參的訪問控制批準工作流。這個授權(quán)的程序涉及SRE工程師的國籍、第三方背景調(diào)查、客戶數(shù)據(jù)保護相關(guān)的安全培訓(xùn)、筆記本電腦的硬盤加密狀態(tài)等。訪問授權(quán)的時效可能是一次性、可能是幾天、也可能是1個月,根據(jù)行業(yè)特點和客戶需求而定。
(2)、訪問控制的細粒度。在技術(shù)的執(zhí)行上,除了VPN和Bastion (又稱Jumpbox) 外,我們還引入了Oracle Break Glass方案來讓外部客戶自己來批準和授權(quán)Oracle的SRE工程師對系統(tǒng)和服務(wù)的管理訪問,提供應(yīng)用層的額外的安全性。Break Glass訪問是有時間限制的,它通過僅提供對Oracle支持人員的臨時訪問來保護客戶的數(shù)據(jù)。我們還引入HSM來加強云服務(wù)環(huán)境中的數(shù)字密鑰的管理。在新一代的Oracle SaaS服務(wù)中,任何工程師對數(shù)據(jù)庫的SQL操作,會自動掛起并自動產(chǎn)生一個要求批準執(zhí)行的SR,直到相關(guān)人員審查SQL語句安全性并批準后才會執(zhí)行。
(3)、數(shù)據(jù)加密。除了這種受控訪問之外,我們還使用Oracle的Transparent Data Encryption (TDE)和Database Vault對靜態(tài)數(shù)據(jù)行保護和審計??蛻艨梢钥刂芓DE主加密密鑰并管理其生命周期。
(4)、滲透測試、安全評估、修復(fù)和強化。另外,我們還周期性從技術(shù)的角度審查各個組件的認證和授權(quán)協(xié)議的安全性、傳輸層加密和網(wǎng)絡(luò)隔離的安全性、數(shù)據(jù)訪問控制的細粒度,并引用漏洞掃描、滲透測試和評估,對發(fā)現(xiàn)的潛在性弱點及時自動化的修復(fù)和強化方案。
四、從運維的角度持續(xù)驗證和改進每個組件的可靠性、可用性和可維護性
在談到可靠性時,大家常提到混沌工程(Chaos Engineering)。我個人覺得混沌工程是對于云服務(wù)商的服務(wù)消費者而言。云服務(wù)消費者往往由于缺少對低層技術(shù)的了解,所以需要引入Chaos Engineering觸發(fā)服務(wù)器實例失效、網(wǎng)絡(luò)故障、應(yīng)用故障來使自己研發(fā)工程師遞交的運行于公有云服務(wù)能夠容忍故障同時仍然確保足夠的服務(wù)質(zhì)量。
對于公有云服務(wù)商而言,我們還得走專家模式,引入破壞性測試,從運維的角度,持續(xù)驗證和改進每個組件的可靠性、可用性和可維護性,特別是可能性的故障的恢復(fù)的解決方案,從而提高系統(tǒng)在故障后可以花較少的時間將服務(wù)恢復(fù)到運行狀態(tài)的能力。
我們通常是將整個服務(wù)的IT基礎(chǔ)架構(gòu),分解為若干組件,再從以下七個維度來分析和改進每個組件恢復(fù)的解決方案。
(1)、單點故障,例如,硬件的各個組件、軟件的各個進程、硬盤熱拔插、壞盤是否會導(dǎo)致零I/O、Chatty Disk是否會導(dǎo)致零I/O、DISK Resilvering、系統(tǒng)啟動盤、硬盤架(Enclosure)。
(2)、集群框架,例如,單個儲存節(jié)點的CRASH、HANG、PANIC、手動切換集群、手動集群Failback、集群的Split Brain、集群的heartbeat 故障、高負荷下的集群接管操作、分布式鎖失效測試、數(shù)據(jù)一致性驗證失效測試。
(3)、共享服務(wù),例如,如果有多條配置,則在DNS、NTP、AD、LDAP、NIS中添加或刪除一個條目不應(yīng)影響數(shù)據(jù)訪問和管理接口的訪問。
(4)、數(shù)據(jù)損壞,例如,包括觸發(fā)Split Brain并觀察是否存在數(shù)據(jù)損壞問題并找出數(shù)據(jù)服務(wù)恢復(fù)的解決方案,觸發(fā)RAID損壞并觀察是否存在數(shù)據(jù)損壞問題并找出數(shù)據(jù)服務(wù)恢復(fù)的方案。
(5)、基礎(chǔ)架構(gòu)服務(wù)故障。
(6)、管理和監(jiān)控接口的可靠性。
(7)、Overlay 技術(shù)帶來的性能和診斷的問題,以及服務(wù)恢復(fù)的解決方案。
正因為對每個組件相應(yīng)的技術(shù)領(lǐng)域有了深入研究和充分的準備,對于升級的云服務(wù)性能和可用性問題(P1 Escalation),我所在的SRE團隊基本上實現(xiàn)了“15分鐘內(nèi)響應(yīng)并完成數(shù)據(jù)收集與分析、15分鐘內(nèi)給出解決方案”。
總之,云計算數(shù)據(jù)中心DevSecOps運維模式中的安全性是一個持續(xù)改進的過程,我們要充分考慮去中心化、備份與容災(zāi)、持續(xù)改進訪問控制,并引入破壞性測試,提高系統(tǒng)在故障后快速恢復(fù)到運行狀態(tài)的能力。
本文旨在簡單闡述一下作為一個IT系統(tǒng)架構(gòu)師,我對當下云計算數(shù)據(jù)中心DevSecOps運維模式中的"Sec"(安全)的理解,以及自己工作中的一些探索。其目的在于拋磚引玉,帶動大家一起討論如何提高云服務(wù)數(shù)據(jù)中心的安全性,確保業(yè)務(wù)連續(xù)性。其中有些觀點不一定正確,歡迎批評指正。
-
云計算
+關(guān)注
關(guān)注
39文章
7836瀏覽量
137517 -
數(shù)據(jù)中心
+關(guān)注
關(guān)注
16文章
4794瀏覽量
72189 -
去中心化
+關(guān)注
關(guān)注
0文章
69瀏覽量
8928
原文標題:王錄華:談云計算數(shù)據(jù)中心DevSecOps運維模式中的安全性
文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論