天天看點

【阿裡雲大資料産品MaxCompute(原名ODPS)】DT時代企業資料資産的護衛艦

阿裡雲數加maxcompute(原名odps)設計之初就是面向多租戶,確定租戶的資料安全是maxcompute的必備功能之一。在maxcompute系統的安全設計和實作上,maxcompute的工程師們會遵循一些經過實踐檢驗的安全設計原則(如saltzer-schroeder原則)。在常用密碼算法及安全協定的設計和實作上,也會遵循業界相關标準(如pkcs-及fips-系列标準),并堅持最佳安全實踐。

1. api認證

認證是一個服務的安全入口。maxcompute認證采用業界标準的api認證協定來實作,如hmacsha1。maxcompute還提供http和https兩種的endpoint以滿足使用者對認證安全的不同要求。http endpoint是明文傳輸,那麼hmacsha1認證隻能保證消息請求的真實性(authenticity)和完整性(integrity),适合于對資料安全不太敏感的使用者。https endpoint則能提供更多的安全性,比如信道加密,抗重播攻擊等。适合于對資料安全比較敏感的使用者。

2. 通路控制

當你建立項目空間後,你就是項目空間的owner。一個項目空間隻有一個owner,隻有owner對項目空間有完全控制權限。你可以上傳/下載下傳資料、送出sql進行資料處理。在沒有你的授權的情況下,任何其他使用者都無權通路你的項目空間。

注意,maxcompute平台并沒有超級管理者的角色,是以maxcompute的開發、測試、運維同學都是沒有權限看到使用者資料的。有人會問了,通過maxcompute背後的運維管理控制台也不能通路使用者資料嗎?的确不能。運維同學隻有在獲得内部授權之後,可以通過該控制台來執行一些運維管理類操作,比如停止一個有惡意行為的使用者作業,但該控制台沒有操作使用者資料的權限。

maxcompute産品面向的是企業級使用者,是以提供了豐富的項目空間内的使用者管理及授權功能,有興趣的同學可以參考maxcompute使用者手冊中的相關章節。maxcompute通路控制粒度非常精細,比如你可以授權一個使用者隻能讀某個table的部分columns,并且可以要求該使用者隻能在某個時間範圍内、而且必須從指定的某些ip位址來進行通路。換句話說,一個企業主可以做到隻允許其員工在公司内、在正常上班時間才能通路資料,下班回家就不允許通路了。

3. 資料流控制

maxcompute設計之初就是要滿足資料分享(或資料交換)的場景。是以,隻要有授權,使用者就可以非常友善的進行跨項目空間的資料通路。比如,在獲得相應的通路權限之後,項目空間a中的作業可以直接處理項目空間b中的資料,而不必事先将資料從項目空間b中複制到項目空間a。

資料保護有兩層含義,一是防止未授權的資料通路;二是防止獲得授權的使用者濫用資料。很多商用系統并不提供後一種資料安全保證。但在maxcompute平台上,使用者的這種擔憂比較明顯:使用者希望能確定對自己的資料擁有控制權,而一旦授權他人讀取,他人就可能會做複制資料,那麼就相當于失去了對資料的控制權。

maxcompute通過支援資料流控制來防止跨項目空間的資料複制。如果你想確定項目空間中的所有資料都不允許流出去,那麼你可以打開項目空間的資料流控設定。你還可以設定項目空間的資料保護政策,以限制哪些資料可以流出到哪些項目空間。

4. 使用者作業的隔離運作

maxcompute支援使用者送出各種類型的作業(如sql/xlib/mr)。為了確定不同使用者作業在運作時互不幹擾,maxcompute将使用者作業的worker程序運作在飛天 container沙箱中。如果使用者作業含有java代碼(比如udf),那麼飛天container沙箱中的worker程序啟動jvm時,還會設定嚴格的java 沙箱政策以限制udf的運作時權限。

5. 作業運作時使用最小權限

最小權限原則是系統安全和容錯設計的一個基本指導原則,即讓每個任務在運作時使用剛好滿足需要(不多也不少)的權限來執行。

maxcompute的作業運作過程一般是這樣:使用者送出的sql/xlib/mr作業會被排程到某一計算叢集上運作,運作時每個作業一般對應一組并行跑的worker程序,worker程序一般會從資料叢集上讀資料、處理完成後最終會将資料寫回到資料叢集。舉個例子來了解maxcompute是如何遵循最小權限原則的。我們假設使用者alice被授權讀通路一個項目空間下t1和t2兩個table資料,但她送出的某個sql隻需要讀t1的資料。在maxcompute中,這個sql對應的worker程序在運作時就隻能讀t1對應的底層資料檔案,而不會有更多的資料通路權限。

maxcompute最小權限是依賴于底層的飛天分布式作業系統提供的kerberos認證和capability通路控制來實作的。kerberos認證用于解決飛天底層服務子產品之間的身份認證,capability則用于解決底層服務子產品之間的通路控制技術。這與上層maxcompute所提供的認證和通路控制是完全正交的安全機制,對maxcompute使用者是完全透明的。

6. 資料通路審計

maxcompute還提供精準的、細粒度的資料通路操作記錄,并會長期儲存。maxcompute平台體系所依賴的功能服務子產品非常之多,我們可以把它稱之為底層服務棧。對于資料操作記錄來說,maxcompute會收集服務棧上的所有操作記錄,從上層table/column級别的資料通路日志,一直到底層分布式檔案系統上的資料記錄檔。最底層分布式檔案系統上處理的每一次資料通路請求,也都能追溯到是最上層的哪個項目空間中的哪個使用者的哪個作業發起的資料通路。

有了服務棧上的各層操作審計之後,即使是内部攻擊者(工程師或滲透到内部系統中的黑客)想從内部(繞過maxcompute服務)直接通路底層分布式檔案系統上的使用者資料的話,也一定是可以從記錄檔中被發現的。是以,通過資料通路審計,使用者就可以準确的知道他在maxcompute上的資料是否存在未授權的資料通路。

7. 風險控制

除了不同層面的防禦機制之外,maxcompute産品還會提供一套安全監控系統,用于監控使用者作業及使用者資料的安全活動,如accesskey濫用,項目空間安全配置不當,使用者代碼運作時觸犯安全政策,以及使用者資料是否遭受異常通路等。

安全攻擊防不勝防,是以maxcompute會通過安全監控手段來及時發現問題,一旦發現安全問題則會啟動相應的處理流程,盡可能将使用者損失降到最低。

結語:雖然沒有絕對的安全,但安全性在maxcompute産品設計和實作中享有最高優先級。maxcompute團隊已經彙聚了多領域的安全專家,以保障使用者資料安全。同時,我們歡迎更多安全專家的加入,共同增強maxcompute的資料安全。

繼續閱讀