1

我试图找出将服务身份验证器移动到秘密存储的安全优势。

将数据库身份验证器保留在代码或应用服务器配置中显然是个坏主意。

AWS Secrets Manager 可以轻松加密密钥并让 AWS 自动轮换凭证,这是一件好事。显然,轮换 db 身份验证器具有安全优势。如果有人以某种方式窃取数据库身份验证器,Secrets Manager 可能会每天或更频繁地轮换它,如果它是旧的,那么你就不走运了。

但是,如果您的应用程序服务器受到威胁,它是否没有查询 Secrets Manager 所需的 AWS 密钥?您的源代码也是如此(即,某种通向 db u/p 的凭证存储在某处)。当然,该应用程序服务器附加了一个 IAM 角色,允许此查询以及访问数据库的网络流量授权。

这与将数据库身份验证器存储在应用服务器上有何不同?是否只是通过您的代码(通过 SDK)以编程方式访问 Secrets Manager,有人必须同时破坏您的源代码和应用服务器才能获得 VPC 中的密码和正确路径(例如,入站安全组规则、路由表等)来获取数据?

我想我在这里遗漏了一些东西!

4

1 回答 1

0

简短的回答是,Secrets Manager 允许您不必将密码存储在源代码或必须分发到服务器的配置文件中。但是,正如您所指出的,如果您的主机受到威胁,所有的赌注都将被取消,没有什么能阻止攻击者从内存中读取您的秘密。

至于 AWS 凭证,如果这是一个 EC2 实例,您还希望使用EC2 的角色,以便 AWS 自动轮换并将您的凭证传送到主机。

于 2018-11-16T01:25:25.790 回答