分布式儲存系統關於GDPR條例中的資料清除原則

2021-09-26 22:55:14 字數 1923 閱讀 6389

關於gdpr是什麼,可能許多同學之前並不太了解,至少筆者在之前也是不清楚的。gdpr全稱為通用資料保護條例,general data protection regulation。它是一項來自歐盟的關於計算機資料保護相關的條約,旨在規範系統如何收集,管控使用者私人資料的種種行為。但是當前的一些儲存系統並沒有完全符合裡面的原則規範定義,比如典型的一點關於資料的清除。

gdpr條例中規定個人使用者有絕對的權利傳送請求讓系統清除其資料並且這些資料在被刪除會不能被訪問到。當前的hdfs/ozone系統其實也並未完全做到這點,為什麼這麼說呢?本文筆者來聊聊分布式儲存系統內關於gdpr中的資料清除原則的內容。

我們平時在使用一些分布式系統做資料儲存的時候,也經常會涉及到資料刪除的操作,從使用者角度來說,這些資料也確實是被刪除了。因為他們從原先的目錄下看不到他們之前存在的檔案資料了,不過這裡筆者想說的是:這是否意味著資料的完全刪除了呢?資料真的徹徹底底地從系統中被物理清除了嗎?

那麼按照上述規則定義,當前一些成熟的分布式儲存(比如hdfs)系統是否符合這個規則呢?答案是否定的。

hdfs的刪除塊行為是非同步延遲執行的,它通過乙個額外的replica monitor執行緒進行週期性的塊處理操作,讓後將待刪除塊資訊通過心跳的方式傳達到下面的節點內。所以說這個過程是有延時的。假設我們做乙個極端情況的模擬,我們將monitor執行緒的掃瞄週期調成1周,那麼最早被hdfs使用者刪除的塊需要等1周的時間才會被最終物理刪除掉。而在這1周時間內,這個塊資料對於其它使用者通過非系統方式訪問還是可見的,比如訪問實際儲存節點的物理檔案訪問。因此我們說hdfs的這種資料刪除行為違背了gdpr中的資料清除原則。

在許多分布式儲存系統中,出於效能的考慮,許多採用的都是這種延遲刪除的設計思路,那麼有什麼解決方案能夠兼顧系統效能的考慮,同時遵守了gdpr中的資料清除原則呢?

在上文提到的關於資料的清除原則中,裡面比較核心的一點是:當使用者明確發出資料刪除請求後,此資料將馬上從系統中被」遺忘「,也就是無法被訪問。通過系統元資料簡單的更改並沒有改變資料還是能被物理訪問的現實,於是按照我們的慣性思維,那我們只能通過物理同步刪除的方式來做嗎?這種方式可是會帶來效能問題的。

其實這裡還是有別的辦法的,以下是其中的關鍵點所在:

資料的物理刪除可以達到資料的不可見的效果,但是後者並不完全等同於前者,比如通過資料加密儲存的方式也可以達到不可見的效果。

通過加密的方式,我們可以在保留非同步刪除行為之下,保持其資料的不可見性。在加解密資料過程中,需要構造乙個新的金鑰key,用於做加解密演算法的計算,然後會有以下過程:

1)資料寫入時,用金鑰key進行加密寫入操作

2)資料讀取時,用金鑰key進行解密讀取操作

這裡的金鑰key是乙個對稱key的角色。這個資訊它需要額外被儲存到檔案資料的元資訊內。

有了金鑰key後,我們可以利用這個key來做使用者資料可見性的完全控制了,當使用者發出刪除資料請求後,我們第一時間將此金鑰key進行同步刪除。這可以解決之前非加密模式的兩種corner case:

加解密實現我們可以採用常用的cipherinputstream/cipheroutputstream類的使用。

加解密模式下的資料讀取過程的流程圖如下所示:

資料刪除操作前過程,正常讀寫過程:

注意這裡元資料管理服務只是保留了金鑰key的屬性資訊,然後客戶端得到這些屬性資訊重新構建出金鑰key,然後進行後續操作。

資料刪除操作後,使用者讀取資料的行為將會失敗:

另外要說明的一點,以上的加解密行為在本質上並不是乙個涉及security的功能,區別點在於以下2點:

[1]. . support gdpr-right to erasure feature on ozone

python分布式儲存系統 分布式系統

danger 什麼是分布式系統 分布式系統是由一組通過網路進行通訊 為了完成共同的任務而協調工作的計算機節點組成的系統。分布式系統的出現是為了用廉價的 普通的機器完成單個計算機無法完成的計算 儲存任務。其目的是利用更多的機器,處理更多的資料。首先需要明確的是,只有當單個節點的處理能力無法滿足日益增長...

分布式儲存系統概述

雲計算 大資料,這些熱點詞彙,後台的基礎設施離開不了分布式儲存系統,它的兩個特點,一是規模大,二是成本低。其實分布式系統的設計是根據需求來變化的,那麼我們接下來就看,我們需要儲存哪些資料,以及,分布式儲存系統有哪些分類。1.分布式儲存的資料 大致可以分為三類 結構化資料 這個最容易理解,關聯式資料庫...

分布式儲存系統 Ceph

你了解ceph嗎?ceph是一種分布式儲存系統,它可以將多台伺服器組成乙個超大集群,把這些機器中的磁碟資源整合到一塊兒,形成乙個大的資源池 pb級別 然後按需分配給應用使用。那麼你知道ceph的架構嗎?ceph的底層實現是rados,rados是由c 寫的,但是它向外界暴露了呼叫介面,即librad...