【发布时间】:2022-01-20 15:56:40
【问题描述】:
如标题中所述,我有一个关于从 Azure KeyVault 安全检索机密的一般性问题。
目前我的大部分秘密都存储在 Kubernetes Secrets 中。由于 Secret 仅采用 base64 编码,因此恶意用户甚至管理员可以使用 lens 等工具读取该密钥。
为了提高我的应用程序的安全性,我想使用 Azure KeyVault 等更安全的存储来保存我的机密、证书等。
目前我正在考虑两个可用版本
- 使用 CSI 驱动程序
- 在容器启动时使用 REST 调用从 KV 查询数据并将数据仅保存在内存中(我的最爱)
不知何故,我不相信使用 CSI 驱动程序的方法,原因如下:
如果出于某种原因,某个恶意用户能够连接到我的容器,他/她/它将能够从 CSI 驱动程序生成的“文件”中读取值。
假设一个连接到容器中,这样做应该很简单。
尽管在我的应用程序包中安装了恶意软件包,但仍有可能读取这些数据...
另一方面,在我看来,只在内存中保存秘密似乎更安全一些,因为攻击者必须有机会读取内存(我希望有一些东西可以防止这种行为)并且必须知道在哪里可以找到数据的确切内存位置。
非常感谢任何建议、想法或澄清。
【问题讨论】:
标签: azure kubernetes azure-aks azure-keyvault csi-driver