簡體   English   中英

我應該使用 Secrets Manager 來存儲客戶的 API 密鑰嗎?

[英]Should I use Secrets Manager for storing customers' API keys?

我正在實施一項服務,該服務要求我使用客戶的 API 密鑰調用客戶的 API。 我的客戶將在他們的帳戶中向我提供他們的 API 密鑰。

當我打電話給客戶的 API 時,我必須在撥打電話之前檢索他們的 API 密鑰。 由於這些是我客戶的 API 密鑰並且我希望它們能夠安全保存,因此我正在考慮將它們全部保存在 AWS Secrets Manager 中。 我有大約 5,000 個用戶(仍在增長),我計划將他們的所有密鑰存儲到 Secrets Manager 中的單個密鑰中。 我的應用程序每月向我的客戶 API 進行大約數百萬次調用,它需要以高頻率和並發方式檢索密鑰。

但是,我不確定這是否是 Secrets Manager 的用例,因為他們的文檔對我來說聽起來像是只為應用程序保留秘密信息,而不是為數據庫等客戶保留。 同時,將加密密鑰存儲在數據庫中並不得不使用 KMS 密鑰對其進行解密,聽起來我最終可能會付出大致相同的成本。

Secrets Manager 是否適用於這樣的用例來存儲客戶的敏感信息,例如 API 密鑰? 如果沒有,在我的情況下我應該考慮什么?

單個密鑰中的 50k api 密鑰將變得非常笨拙。 假設一個 40 字節的令牌,您正在查看 2mb 的數據 - SSM 的最大數據長度為 4096 字節,除非我弄錯了。

對我來說,使用 KMS 生成密鑰並使用該密鑰加密客戶 API 密鑰,然后再將它們寫入 DynamoDB 表(如果您願意,甚至可以是 RDS)當您需要使用客戶 API 密鑰時,獲取它會更有意義從 dynamoDB 中,使用 KMS 密鑰對其進行解密,然后使用它。

如果您想要自動密鑰輪換,SSM 可用於加密您用於加密客戶端 API 令牌的密鑰。 您的令牌解密密鑰將保持可用,而包裝 SSM 條目將使用策略設置的密鑰輪換重新加密。

最后,正如上面軟件工程師所建議的,還有 Vault。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM