我试图弄清楚将服务认证器转移到秘密存储区的安全性。
将数据库身份验证器保留在代码或应用服务器配置中显然不是一个好主意。
AWS Secrets Manager使加密密钥变得容易,并使AWS自动轮换凭证,这是一件好事。显然,旋转db身份验证器具有安全性好处。如果有人以某种方式窃取了数据库身份验证器,则Secrets Manager可能会每天或更频繁地对其进行轮换,并且如果它年代久远,您可能会走运。
但是,如果您的应用服务器受到威胁,它是否没有查询Secrets Manager所需的AWS密钥?与您的源代码同上(即,某种导致数据库u / p的凭据存储在某处)。当然,该应用服务器还具有附加的IAM角色,该角色允许该查询以及网络流量授权访问数据库。
这与将数据库身份验证器存储在应用程序服务器上有什么真正的不同?仅仅是通过通过您的代码(通过SDK)以编程方式访问Secrets Manager的方式,某人就必须同时破坏您的源代码和应用服务器,以便在VPC中拥有密码和正确的路径(例如,入站安全性)组规则,路由表等)以获取数据?
我想我在这里缺少什么!
答案 0 :(得分:0)
简短的答案是,“秘密管理器”使您不必将密码存储在源代码或必须分发到服务器的配置文件中。但是,正如您所指出的那样,如果您的主机受到威胁,那么所有的赌注都将失效,并且没有什么可以阻止攻击者从内存中读取您的机密。
关于AWS凭证,如果这是EC2实例,您还需要使用roles for EC2,以便AWS自动旋转并将凭证传递到主机。