当前的基础架构包含位于Amazon EC2:应用程序服务器和MySQL服务器中的两台服务器。
关注:应用程序服务器和数据库之间通信的安全性,而不会降低性能。
当前设置:MySQL服务器具有弹性IP,应用程序使用该IP来连接到服务器。 原因是内部IP在重新启动时改变,而弹性保持不变。 MySQL上的连接被防火墙应用程序服务器所占用,而MySQL自身则将用户分配给应用程序服务器的IP。
理想情况下,我们希望两台服务器使用内部IP进行通信。 出于性能的原因,我们不希望通过SSL实现通信。
问题:
我认为中间人攻击是可能的,因为通信发生在使用弹性IP的networking上?
在两台服务器之间实现SSL通信会有多大的性能影响?
除了自定义脚本之外,还有其他的select来处理内部IP的变化吗?
如果没有SSL,中间人攻击仍然会在EC2邻居的内部networking上发生?
使用VPC将解决您的许多问题,因为私有IP地址在那里是静态的。 亚马逊强烈鼓励人们转向VPC的原因是这样的。 一旦有了,你的两个系统应该能够通过AWS内部networking进行通话。
为了回答你关于aws-public <a> aws-public路由的暴露问题,理论上是暴露的。 但是,这一切都可能发生在亚马逊的内部交换结构上,所以暴露在坏angular色的可能性与仅用于内部的stream量路由相同。
正如sysadmin1138的回答中所build议的那样 ,这些情况是为什么VPC被添加到Amazon Web Services:所以您可以在EC2实例之间有一个私有的Intranet。 在我看来,这是解决scheme的第一部分 :将数据库服务器与应用程序服务器放在VPC中,并且只允许从内部(不面向Internet)networking访问数据库服务器,并拒绝从外部访问TCP 3306 (面向互联网)networking。
第二步是“是的,你应该使用SSL和否,性能成本不是很重要”。 你当然可以通过SSL和纯文本来testing你的数据库的连接,但是开销相对来说还是相当小的。 您的实际性能成本将根据使用情况而变化。
你的申请是否:
就个人而言,如果我可以select使用SSL,我使用SSL。 使用2048位的RSA密钥与4096位的RSA密钥可能会加速初始握手时间,并修剪密码列表以加速第一个字节的时间 ; 你将不得不检查你的MySQL选项。
在安全说明中, 对PFS使用密码,不要使用SSLv3; 如果可以的话,只使用TLSv1.2(例如,如果你运行的是比2008年晚的任何MySQL / SSL版本)。 我不确定有多lessMySQL可以让你自定义这个。
TL; DR :只通过VPC内部networking将您的MySQL端口暴露给您的应用程序服务器,绝对使用SSL,但如果您关心速度以及是否重用连接,则需要对其进行基准testing。