我遇到过多个指南,指出AWS RDS实例不应配置为可公开访问,因为这是一个重大的安全风险。举个例子。RDS公众可访问--RDS最佳实践。
如果RDS实例配置了一个足够强的、独一无二的密码,而这个密码实际上是不可能被强行破解的,那么它是否仍然存在安全风险?一个强大而独特的密码是不是就能让实例变得相当安全,即使它是公开访问的?
你仍然会对蛮力和其他拒绝服务攻击敞开大门。
最好的做法是将DB服务器放在一个私有子网中,并且只允许本地子网中的已知IP通过安全组进行访问。
有些人更进一步,用网络访问控制列表来保护VPC。
用这种方式建立一个适当安全的RDS服务器是非常容易的。如果你真的想保护敏感数据,我不会依靠单层防御。
由于涉及到其他方面的问题,这是一个很大的风险。
还考虑 人. 如果有人 知道 数据库密码想更改或破坏数据,他们能做到吗?
比方说,有人刚刚离开你的公司。你可以取消他们的VPN访问或AWS凭证,但他们仍然可以访问数据库,除非更改密码。
比方说,一个现任员工想做一些恶作剧。在一个适当安全的网络中,只有应用服务器应该能够访问数据库。然而,如果数据库是公开的,那么工作人员就可以访问数据库,甚至没有人知道是他们干的。
这就真的要看你的'风险偏好'. 如果这只是一个小项目,那么丢失数据(或数据暴露)的影响并不大。但是,如果你是一家大公司,如果数据丢失或暴露,可能意味着你的业务结束。如果数据是 为人师表然后,人们 会 试图进入它。在这种情况下,最好是架构一个更安全的平台。