过去6个月来我一直在使用kubernetes,我们已经部署了一些服务。
我们即将部署另一个存储加密数据并将密钥放入KMS的服务器。这需要两个服务帐户,一个用于数据,一个用于密钥。
对此数据的访问必须经过审核。由于访问此数据非常敏感,因此我们不愿意将这两个服务帐户都放入名称空间,就好像攻击者以任何方式受到损害一样,攻击者都可以访问数据和密钥而无需对其进行审核。
目前,我们在秘密中拥有一个钥匙,而另一把我们将手动发布到单个吊舱中。
这太可怕了,因为它要求使用此密钥信任单个人,并限制了可伸缩性。幸运的是,这项服务的流量将非常低。
还有其他人遇到过同样的问题吗? 你如何解决的?
欢呼
答案 0 :(得分:0)
对此数据的访问必须经过审核
如果启用audit logging,则将记录通过此服务帐户完成的每个API调用。如果您从未通过API调用过您的服务,那么这可能对您没有帮助,但是考虑到您正在使用一个服务帐户,听起来就应该如此。
目前,我们有一个秘密钥匙,而另一把钥匙将手动发布到单个吊舱中。
您可以考虑为此使用Vault。如果将机密存储在Vault中,则可以使用this之类的东西来自动将环境变量作为环境变量下推到Pod中。这比您的过程要复杂一些,但要安全得多。
您还可以将保险柜与Google Cloud KMS结合使用,有关详细信息,请参见this article
答案 1 :(得分:0)
您所描述的是很常见的-使用Kubernetes机密中的密钥/服务帐户/身份访问外部机密存储。
我对双键概念有些困惑-在秘密和吊舱中都拥有一把钥匙,您会获得什么?如果机密信息被泄露,则etcd信息被泄露,您将遇到更大的问题。我建议您将精力集中在锁定秘密,使用审核日志上,并在密钥泄露时使密钥易于旋转。
一些要考虑的项目: