【云小課】EI第29課 大數據時代的隱私利器-GaussDB(DWS)數據脫敏

      網友投稿 667 2025-04-06

      背景信息

      大數據時代的到來,大數據、云計算和人工智能等新技術應用不斷深化,為數據的深度挖掘及分析提供了強有力的支撐,大數據中蘊含的巨大價值被逐步挖掘出來。然而,一系列信息泄露事件的曝光,使得數據安全越來越受到廣泛的關注。各國各地區逐步建立健全和完善數據安全與隱私保護相關法律法規,提供用戶隱私保護的法律保障。如何加強技術層面的數據安全和隱私保護,是對數據倉庫產品提出的要求,也是數據安全建設最有效的辦法。

      GaussDB(DWS)產品8.1.1版本發布數據脫敏特性,支持指定用戶范圍內列級敏感數據的脫敏功能,具有靈活、高效、透明、友好等優點。使得敏感及隱私信息不被泄露,提高了對敏感及私密數據的保護,極大地增強了產品的數據安全能力。

      數據脫敏(Data Masking),即屏蔽敏感數據,對某些敏感信息(比如,身份證號、手機號、卡號、客戶姓名、客戶地址、郵箱地址、銀行賬號、密碼類等等 )通過脫敏規則進行數據的變形,實現隱私數據的可靠保護。

      業界常見的脫敏規則有,替換、重排、加密、截斷、掩碼,用戶也可以根據期望的脫敏算法自定義脫敏規則。

      良好的數據脫敏實施,需要遵循兩個原則:第一,盡可能地為脫敏后的應用,保留脫敏前的有意義信息;第二,最大程度地防止黑客進行破解。

      數據脫敏分為靜態數據脫敏和動態數據脫敏。靜態數據脫敏,是數據的“搬移并仿真替換”,是將數據抽取進行脫敏處理后,下發給下游環節,隨意取用和讀寫的,脫敏后數據與生產環境相隔離,滿足業務需求的同時保障生產數據庫的安全。動態數據脫敏,在訪問敏感數據的同時實時進行脫敏處理,可以為不同角色、不同權限、不同數據類型執行不同的脫敏方案,從而確保返回的數據可用而安全。下圖為一個簡單的靜態脫敏和動態脫敏示例,可以看出兩者的不同。

      GaussDB (DWS)的數據脫敏功能,摒棄業務應用層脫敏依賴性高、代價大等痛點,將數據脫敏內化為數據庫產品自身的安全能力,提供了一套完整、安全、靈活、透明、友好的數據脫敏解決方案,屬于動態數據脫敏。用戶識別敏感字段后,基于目標字段,綁定內置脫敏函數,即可創建脫敏策略。脫敏策略(Redaction Policy)與表對象是一一對應的。一個脫敏策略包含表對象、生效條件、脫敏列-脫敏函數對三個關鍵要素,是該表對象上所有脫敏列的集合,不同字段可以根據數據特征采用不同的脫敏函數。當且僅當生效條件為真時,查詢語句才會觸發敏感數據的脫敏,而脫敏過程是內置在SQL引擎內部實現的,對生成環境用戶是透明不可見的。

      第一步:創建脫敏策略需確定受限制用戶角色。

      動態數據脫敏,是在查詢語句執行過程中,根據生效條件是否滿足,實現實時的脫敏處理。生效條件,通常是針對當前用戶角色的判斷。敏感數據的可見范圍,即是針對不同用戶預設的。系統管理員,具有最高權限,任何時刻對任何表的任何字段都可見。

      第二步:識別和梳理具體業務場景的敏感字段。

      敏感信息依賴于實際業務場景和安全維度,以自然人為例,用戶個體的敏感字段包括:姓名、身份證號、手機號、郵箱地址等等;在銀行系統,作為客戶,可能還涉及銀行卡號、過期時間、支付密碼等等;在公司系統,作為員工,可能還涉及薪資、教育背景等;在醫療系統,作為患者,可能還涉及就診信息等等。

      第三步:確定脫敏列需要綁定的脫敏函數。

      產品內置一系列常見的脫敏函數接口,可以針對不同數據類型和數據特征,指定參數,從而達到不一樣的脫敏效果。脫敏函數可采用如下三種內置接口,同時支持自定義脫敏函數。三種內置脫敏函數能夠涵蓋大部分場景的脫敏效果,不推薦使用自定義脫敏函數。

      MASK_NONE:不作脫敏處理,僅內部測試用。

      MASK_FULL:全脫敏成固定值。

      MASK_PARTIAL:使用指定的脫敏字符對脫敏范圍內的內容做部分脫敏。

      不同脫敏列可以采用不同的脫敏函數。比如,手機號通常顯示后四位尾號,前面用"*"替換;金額統一顯示為固定值0,等等。

      【云小課】EI第29課 大數據時代的隱私利器-GaussDB(DWS)數據脫敏

      以某公司員工表emp,表的屬主用戶alice以及用戶matu、july為例,簡單介紹數據脫敏的使用過程。其中,表emp包含員工的姓名、手機號、郵箱、發薪卡號、薪資等隱私數據,用戶alice是人力資源經理,用戶matu和july是普通職員。假設表、用戶及用戶對表emp的查看權限均已就緒。

      創建脫敏策略mask_emp,僅允許alice查看員工所有信息,matu和july對發薪卡號、薪資均不可見。字段card_no是數值類型,采用MASK_FULL全脫敏成固定值0;字段card_string是字符類型,采用MASK_PARTIAL按指定的輸入輸出格式對原始數據作部分脫敏;字段salary是數值類型,采用數字9部分脫敏倒數第二位前的所有數位值。

      CREATE REDACTION POLICY mask_emp ON emp WHEN (current_user != 'alice') ADD COLUMN card_no WITH mask_full(card_no), ADD COLUMN card_string WITH mask_partial(card_string, 'VVVVFVVVVFVVVVFVVVV','VVVV-VVVV-VVVV-VVVV','#',1,12), ADD COLUMN salary WITH mask_partial(salary, '9', 1, length(salary) - 2);

      切換到matu和july,查看員工表emp。

      SET ROLE matu PASSWORD 'Demo@123'; SELECT * FROM emp; id | name | phone_no | card_no | card_string | email | salary | birthday ----+------+-------------+---------+---------------------+----------------------+------------+--------------------- 1 | anny | 13420002340 | 0 | ####-####-####-1234 | smithWu@163.com | 99999.9990 | 1999-10-02 00:00:00 2 | bob | 18299023211 | 0 | ####-####-####-3456 | 66allen_mm@qq.com | 9999.9990 | 1989-12-12 00:00:00 3 | cici | 15512231233 | | | jonesishere@sina.com | | 1992-11-06 00:00:00 (3 rows) SET ROLE july PASSWORD 'Demo@123'; SELECT * FROM emp; id | name | phone_no | card_no | card_string | email | salary | birthday ----+------+-------------+---------+---------------------+----------------------+------------+--------------------- 1 | anny | 13420002340 | 0 | ####-####-####-1234 | smithWu@163.com | 99999.9990 | 1999-10-02 00:00:00 2 | bob | 18299023211 | 0 | ####-####-####-3456 | 66allen_mm@qq.com | 9999.9990 | 1989-12-12 00:00:00 3 | cici | 15512231233 | | | jonesishere@sina.com | | 1992-11-06 00:00:00 (3 rows)

      由于工作調整,matu進入人力資源部參與公司招聘事宜,也對員工所有信息可見,修改策略生效條件。

      ALTER REDACTION POLICY mask_emp ON emp WHEN(current_user NOT IN ('alice', 'matu'));

      切換到用戶matu和july,重新查看員工表emp。

      SET ROLE matu PASSWORD 'Demo@123'; SELECT * FROM emp; id | name | phone_no | card_no | card_string | email | salary | birthday ----+------+-------------+------------------+---------------------+----------------------+------------+--------------------- 1 | anny | 13420002340 | 1234123412341234 | 1234-1234-1234-1234 | smithWu@163.com | 10000.0000 | 1999-10-02 00:00:00 2 | bob | 18299023211 | 3456345634563456 | 3456-3456-3456-3456 | 66allen_mm@qq.com | 9999.9900 | 1989-12-12 00:00:00 3 | cici | 15512231233 | | | jonesishere@sina.com | | 1992-11-06 00:00:00 (3 rows) SET ROLE july PASSWORD 'Demo@123'; SELECT * FROM emp; id | name | phone_no | card_no | card_string | email | salary | birthday ----+------+-------------+---------+---------------------+----------------------+------------+--------------------- 1 | anny | 13420002340 | 0 | ####-####-####-1234 | smithWu@163.com | 99999.9990 | 1999-10-02 00:00:00 2 | bob | 18299023211 | 0 | ####-####-####-3456 | 66allen_mm@qq.com | 9999.9990 | 1989-12-12 00:00:00 3 | cici | 15512231233 | | | jonesishere@sina.com | | 1992-11-06 00:00:00 (3 rows)

      員工信息phone_no、email和birthday也是隱私數據,更新脫敏策略mask_emp,新增三個脫敏列。

      ALTER REDACTION POLICY mask_emp ON emp ADD COLUMN phone_no WITH mask_partial(phone_no, '*', 4); ALTER REDACTION POLICY mask_emp ON emp ADD COLUMN email WITH mask_partial(email, '*', 1, position('@' in email)); ALTER REDACTION POLICY mask_emp ON emp ADD COLUMN birthday WITH mask_full(birthday);

      切換到用戶july,查看員工表emp。

      SET ROLE july PASSWORD 'Demo@123'; SELECT * FROM emp; id | name | phone_no | card_no | card_string | email | salary | birthday ----+------+-------------+---------+---------------------+----------------------+------------+--------------------- 1 | anny | 134******** | 0 | ####-####-####-1234 | ********163.com | 99999.9990 | 1970-01-01 00:00:00 2 | bob | 182******** | 0 | ####-####-####-3456 | ***********qq.com | 9999.9990 | 1970-01-01 00:00:00 3 | cici | 155******** | | | ************sina.com | | 1970-01-01 00:00:00 (3 rows)

      考慮用戶交互的友好性,GaussDB (DWS) 提供系統視圖redaction_policies和redaction_columns,方便用戶直接查看更多脫敏信息。

      SELECT * FROM redaction_policies; object_schema | object_owner | object_name | policy_name | expression | enable | policy_description ---------------+--------------+-------------+-------------+-----------------------------------+--------+-------------------- public | alice | emp | mask_emp | ("current_user"() = 'july'::name) | t | (1 row) SELECT object_name, column_name, function_info FROM redaction_columns; object_name | column_name | function_info -------------+-------------+------------------------------------------------------------------------------------------------------- emp | card_no | mask_full(card_no) emp | card_string | mask_partial(card_string, 'VVVVFVVVVFVVVVFVVVV'::text, 'VVVV-VVVV-VVVV-VVVV'::text, '#'::text, 1, 12) emp | email | mask_partial(email, '*'::text, 1, "position"(email, '@'::text)) emp | salary | mask_partial(salary, '9'::text, 1, (length((salary)::text) - 2)) emp | birthday | mask_full(birthday) emp | phone_no | mask_partial(phone_no, '*'::text, 4) (6 rows)

      突然某一天,公司內部可共享員工信息時,直接刪除表emp的脫敏策略mask_emp即可。

      DROP REDACTION POLICY mask_emp ON emp;

      GaussDB(DWS)數據脫敏優勢

      一套簡單、易用的數據脫敏策略語法。

      一系列可覆蓋常見隱私數據脫敏效果的、靈活配置的內置脫敏函數。

      一個完備、便捷的脫敏策略應用方案,使得原始語句在執行過程中可以實時、透明、高效地實現脫敏。

      GaussDB(DWS)充分滿足客戶業務場景的數據脫敏訴求,支持常見隱私數據的脫敏效果,實現敏感數據的可靠保護。

      了解更多華為云數據倉庫GaussDB(DWS),請點擊這里。

      EI智能體 云小課 數據倉庫服務 GaussDB(DWS)

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:請問我的WPS為什么沒有智能工具箱,家里的WPS又有?(wps2016沒有智能工具箱)
      下一篇:excel2016拼寫檢查的使用方法
      相關文章
      亚洲欧洲自拍拍偷午夜色| 亚洲狠狠色丁香婷婷综合| 亚洲日本一线产区和二线产区对比| 91亚洲va在线天线va天堂va国产| 亚洲狠狠婷婷综合久久久久 | 亚洲人成网站日本片| 亚洲黄色免费网站| 亚洲精品午夜久久久伊人| 亚洲美女视频一区二区三区| 亚洲福利一区二区| 亚洲性一级理论片在线观看| 亚洲AV无码一区二区三区人| 国产亚洲sss在线播放| 亚洲人成电影网站色| 亚洲AV日韩AV一区二区三曲 | 婷婷亚洲久悠悠色悠在线播放| 亚洲精品私拍国产福利在线| 老汉色老汉首页a亚洲| 亚洲黄色在线观看网站| 亚洲另类视频在线观看| 最新国产成人亚洲精品影院| 亚洲中文字幕无码亚洲成A人片 | 亚洲乱码日产一区三区| 亚洲AV无码不卡在线播放| 亚洲日本一区二区| 亚洲毛片无码专区亚洲乱| 激情内射亚洲一区二区三区爱妻| 亚洲午夜无码毛片av久久京东热| 亚洲国产精品99久久久久久| 日批日出水久久亚洲精品tv| 亚洲熟伦熟女新五十路熟妇| 亚洲日韩小电影在线观看| 久久精品国产亚洲综合色| 亚洲福利视频一区| 亚洲国产美女视频| 亚洲日韩中文字幕一区| 亚洲AV无码成人精品区大在线| 亚洲桃色AV无码| 日产亚洲一区二区三区| 亚洲AV无码乱码在线观看代蜜桃 | 77777亚洲午夜久久多喷|