APISIX 是怎么保護用戶的敏感數(shù)據(jù)不被泄露的趁桃?

本文以 APISIX 作為例子,為大家介紹了如何借助 Global Data Encryption 功能來保護敏感數(shù)據(jù)歇终,確保不會有任何敏感數(shù)據(jù)進行明文存儲,這樣即使 etcd 中所有存儲的數(shù)據(jù)都被盜取逼龟,也不會造成敏感數(shù)據(jù)泄露评凝,從而有效提升了 APISIX 的安全性。

作者劉維腺律,API7.ai 技術(shù)工程師奕短,Apache APISIX Contributor。

什么是敏感數(shù)據(jù)

敏感數(shù)據(jù)匀钧,又稱隱私數(shù)據(jù)篡诽,主要是指泄露后可能會給個人或者公司帶來嚴重危害的數(shù)據(jù),包括但不限于個人身份信息榴捡,企業(yè)經(jīng)營數(shù)據(jù)等杈女。

為什么要保護敏感數(shù)據(jù)

對于個人來說,如果敏感數(shù)據(jù)被泄露吊圾,輕則可能受到無止盡的廣告騷擾达椰,重則可能導致人格尊嚴受到侵害,或者人身项乒、財產(chǎn)安全受到危害啰劲。

對于企業(yè)來說,敏感數(shù)據(jù)直接關(guān)系企業(yè)的信息安全檀何。例如密鑰蝇裤,證書等敏感信息廷支,一旦遭受泄露,企業(yè)將會遭受信任損失和財務(wù)損失栓辜,甚至可能面臨法律責任恋拍。

在 API 網(wǎng)關(guān)中有哪些敏感數(shù)據(jù)

API 網(wǎng)關(guān)作為業(yè)務(wù)流量的入口,往往包含了大量的敏感數(shù)據(jù)藕甩,例如 API 密鑰施敢、用于鑒權(quán)認證的 token 等,除了基本的負載均衡狭莱、流量管理等功能外僵娃,提升安全、防止敏感信息泄露腋妙,也至關(guān)重要默怨,因此對 API 網(wǎng)關(guān)中的敏感數(shù)據(jù)進行保護具有重要意義。

Sensitive Data

API 網(wǎng)關(guān)怎么保護隱私數(shù)據(jù)

大致思路一般如下:

  1. 將敏感數(shù)據(jù)置于保護區(qū)內(nèi)骤素,對訪問權(quán)限進行嚴格的控制

  2. 增加風控系統(tǒng)先壕,對異常行為和業(yè)務(wù)合規(guī)進行風險控制

  3. 對敏感數(shù)據(jù)進行脫敏處理或加密存儲

下面將以 Apache APISIX 為例,展示如何在 API 網(wǎng)關(guān)中對敏感數(shù)據(jù)進行保護谆甜。

Apache APISIX 在保護隱私數(shù)據(jù)中的實踐

Apache APISIX 是 Apache 軟件基金會的頂級開源項目垃僚,也是當前最活躍的開源網(wǎng)關(guān)項目。作為一個動態(tài)规辱、實時谆棺、高性能的開源 API 網(wǎng)關(guān),Apache APISIX 提供了負載均衡罕袋、動態(tài)上游改淑、灰度發(fā)布、服務(wù)熔斷浴讯、身份認證朵夏、可觀測性等豐富的流量管理功能。

用戶可以通過編寫插件來對 Apache APISIX 功能進行擴展榆纽,得益于成熟的社區(qū)和越來越多的活躍開發(fā)者仰猖,Apache APISIX 的插件數(shù)量在日益增多,其中有些插件攜帶敏感信息奈籽,例如 jwt-auth 插件的配置項 secretprivate_key饥侵,為了防止這些數(shù)據(jù)被非法獲取,我們有必要對其進行加密存儲衣屏。

為了增強 APISIX 的安全性躏升,更好的保護用戶的隱私,APISIX 在 3.1.0 版本中引入了 Global Data Encryption 功能狼忱,有了這個功能膨疏,開發(fā)者在開發(fā)新插件的時候一睁,只需要在插件的 schema 中指定要加密的數(shù)據(jù),APISIX 就能在控制面寫入的時候自動進行加密存儲佃却,數(shù)據(jù)面讀取的時候自動解密者吁,對開發(fā)者完全透明。

Global Data Encryption

下面我們來看看具體的示例双霍。

未開啟數(shù)據(jù)加密功能

  1. 下發(fā)配置
curl http://127.0.0.1:9180/apisix/admin/consumers -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
    "username": "foo",
    "plugins": {
        "basic-auth": {
            "username": "foo",
            "password": "bar"
        }
    }
}'
  1. 確定 etcd 中的敏感數(shù)據(jù)狀態(tài)
etcdctl get /apisix/consumers/foo
{"username":"foo","update_time":1675414313,"create_time":1674009211,"plugins":{"basic-auth":{"username":"foo","password":"bar"}}}

可以看到 password 字段是明文存儲

開啟數(shù)據(jù)加密功能

  1. config.yaml 中開啟 data_encryption
apisix:
    data_encryption:
    enable: true
    keyring:
        - edd1c9f0985e76a2
  1. 啟用已經(jīng)支持敏感數(shù)據(jù)加密的插件,這里以 basic-auth 插件為例
curl http://127.0.0.1:9180/apisix/admin/consumers -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
    "username": "foo",
    "plugins": {
        "basic-auth": {
            "username": "foo",
            "password": "bar"
        }
    }
}'
  1. 驗證插件功能
curl http://127.0.0.1:9180/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '
{
    "methods": ["GET"],
    "uri": "/get",
    "plugins": {
        "basic-auth": {}
    },
    "upstream": {
        "type": "roundrobin",
        "nodes": {
            "httpbin.org": 1
        }
    }
}'

能正常訪問

curl -i -ufoo:bar http://127.0.0.1:9080/get
HTTP/1.1 200 OK
...

密碼錯誤批销,不能訪問

curl -i -ufoo:test http://127.0.0.1:9080/get
HTTP/1.1 401 Unauthorized
...
{"message":"Invalid user authorization"}

插件功能正常

  1. 確定 etcd 中的敏感數(shù)據(jù)狀態(tài)
etcdctl get /apisix/consumers/foo
{"create_time":1674009211,"update_time":1674009211,"plugins":{"basic-auth":{"password":"+kOEVUuRc5rC5ZwvvAMLwg==","username":"foo"}},"username":"foo"}

可以看到 password 字段已經(jīng)被成功加密洒闸,此時就算數(shù)據(jù)被泄露,其他人也無法破解均芽。

總結(jié)

在 API 網(wǎng)關(guān)中丘逸,包含了大量的敏感數(shù)據(jù),因此需要采取有效的手段來對數(shù)據(jù)進行保護掀宋,本文以 APISIX 作為例子深纲,為大家介紹了如何借助 Global Data Encryption 功能來保護敏感數(shù)據(jù),確保不會有任何敏感數(shù)據(jù)進行明文存儲劲妙,這樣即使 etcd 中所有存儲的數(shù)據(jù)都被盜取湃鹊,也不會造成敏感數(shù)據(jù)泄露,從而有效提升了 APISIX 的安全性镣奋。同時除了對敏感數(shù)據(jù)進行加密以外币呵,APISIX 還支持將敏感信息直接放到第三方服務(wù),即Secret Manager功能侨颈,進一步提升了安全性余赢。

希望通過上述分享,能夠使大家更多的了解如何在 API 網(wǎng)關(guān)中保護敏感數(shù)據(jù)哈垢,從而保障企業(yè)的信息安全妻柒。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市耘分,隨后出現(xiàn)的幾起案子举塔,更是在濱河造成了極大的恐慌,老刑警劉巖求泰,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件啤贩,死亡現(xiàn)場離奇詭異,居然都是意外死亡拜秧,警方通過查閱死者的電腦和手機痹屹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來枉氮,“玉大人暖庄,你說我怎么就攤上這事楼肪∨嗬” “怎么了春叫?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵肩钠,是天一觀的道長。 經(jīng)常有香客問我暂殖,道長,這世上最難降的妖魔是什么呛每? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮晨横,結(jié)果婚禮上洋腮,老公的妹妹穿的比我還像新娘。我一直安慰自己手形,他們只是感情好啥供,可當我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布滤灯。 她就那樣靜靜地躺著,像睡著了一般鳞骤。 火紅的嫁衣襯著肌膚如雪黍判。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天顷帖,我揣著相機與錄音,去河邊找鬼贬墩。 笑死,一個胖子當著我的面吹牛嗽测,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播唠粥,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼大莫!你這毒婦竟也來了官份?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤羔味,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后介评,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體库北,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年情屹,在試婚紗的時候發(fā)現(xiàn)自己被綠了杂腰。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡惜颇,死狀恐怖少辣,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情宜鸯,我是刑警寧澤睛蛛,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響捐迫,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜施戴,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一钧惧、第九天 我趴在偏房一處隱蔽的房頂上張望勾习。 院中可真熱鬧,春花似錦巧婶、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至毅人,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間丈莺,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工弛秋, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留俐载,地道東北人。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓挖炬,卻偏偏與公主長得像,于是被迫代替她去往敵國和親茅茂。 傳聞我的和親對象是個殘疾皇子太抓,可洞房花燭夜當晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內(nèi)容