[閒聊] 如何在微。服務中儲存敏感資訊
一開始在 Python 板上看到有人提問
之後 FB/Backend 版[1] 有人提出一串可能性
原始的問題很簡單 但是在開發中很容易遇到 也就是在後端 Server 部分
如何儲存資料庫的登入資訊 或者第三方服務的認證資訊
就實務上來說:敏感資訊可以是 帳號、密碼、API Secret Key 等等
在一開始開發過程中最常使用的應該就是 hard-code 寫死或者 command-line 輸入
但是準備上到正式環境 這種作法很顯然的是不被允許的 (如果貴單位有要求的話)
接下來的方式轉為透過外部設定檔 (e.g. staging.conf / production.conv)
各自切換適合的執行環境參數 這也是有多種環境時會使用的一種技巧
不巧的是 當使用微。服務 (已 docker 為例) 就變成你 docker image 含有敏感資訊了
能夠下載 docker image 的人同時擁有敏感資訊
再者 也是常見的方式則是透過環境變數 讓執行程式可以獲取登入資訊
但這樣的問題就會變成 確保環境內的每個環節都要是可信任的
最後 也會有人試著在上述幾種方式中 額外再針對敏感資訊進行第二次加密
透過額外的加密來增加安全性
----
我個人是覺得 透過資料庫限制來源 IP + 帳號、密碼保護就夠了
怎樣傳遞帳號、密碼 到 docker 環境的方式不要太蠢就好 (像是 hard-code 寫死...)
如果攻擊者能夠拿到 reverse-shell 那其實資料庫密碼也不是太重要
如果僅能夠 dump 帳號、密碼的話 用限制來源 IP 也可以滿足安全上的需求
[0]: https://www.facebook.com/groups/pythontw/permalink/10160690779908438/
[1]: https://www.facebook.com/photo/?fbid=10158521358918955&set=gm.2197133700420494
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 106.1.229.246 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/NetSecurity/M.1604851496.A.E43.html
→
11/09 01:20,
4年前
, 1F
11/09 01:20, 1F
NetSecurity 近期熱門文章
PTT數位生活區 即時熱門文章