一千萬個為什麽

搜索

將加密的秘密存儲在serverless.com項目的代碼中



通過serverless.com,向AWS Lambda函數公開秘密的最簡單方法是將其存儲在 serverless.yml 文件(例如,使用KMS加密)中。

但是將加密的秘密提交給Git並不是世界上最好的事情。首先需要更改密碼時更改密碼。

但就安全而言,有什麽更好的選擇?例如秘密可以存儲在S3(加密)中,Lambda可以訪問該位置和KMS密鑰,但實際上哪種方法更有意義?

轉載註明原文: 將加密的秘密存儲在serverless.com項目的代碼中

一共有 2 個回答:

這裏有幾點要考慮:

  1. 有能力通過與正在配置的代碼分開的發布節奏來維護配置。這樣做會以自動方式鼓勵證書輪換,定期做到無痛。

  2. 從“基礎架構作為代碼”的角度來看,將所有配置存儲在Git中是完全合理的,盡管可能位於不同的存儲庫中,因為配置範圍可能跨越多個服務。
  3. 假設上述兩個語句都與您的情況相關,我傾向於使用KMS加密數據並將其存儲在S3或DynamoDB中。我甚至會說,在非常簡單的情況下,它可能適用於將數據加密並存儲在KMS本身中。

有幾個開源的庫可以支持這個操作:

我通常將秘密視為範圍內的配置數據。因此,它不會與代碼一起生活,因為它們是由不同的發布時間表和流程處理的。一個單獨的git倉庫,KMS,dynamo,s3或者你的配置管理系統(廚師世界中的廚師倉庫/加密數據庫)是很好的地方。基本上,您不希望構建和部署軟件的新版本以獲得更新的秘密。

如果你的秘密管理需求比較復雜,像Hasicorp Vault( https://github.com/hashicorp/vault )將是一個不錯的選擇。