我有几个运行Ubuntu 10.04的Amazon EC2实例,最近我开始使用Amazon的Route 53作为我的DNS。 这样做的目的是让实例通过名称而不是私有IP(可以改变)互相引用。 我已经指出了我的域名(通过GoDaddy)到亚马逊的名字服务器,允许我访问我的EC2网页服务器。
但是,我注意到现在我可以访问我不想公开的EC2实例,比如专用的MySQL服务器。 我以为亚马逊的安全组在使用Route 53时仍然有效,但似乎并非如此。
在我开始使用Route 53之前,我正考虑让一个实例运行一个反向代理,这将有助于保护它后面的Web服务器。 然后IP限制所有其他实例。
我知道IP限制可以在每个实例中使用防火墙来完成,但是我是否需要从另一个IP地址访问它们,我需要一个方法。亚马逊的控制面板使得在必要时打开端口变得轻而易举。
有没有人有任何build议,保持EC2实例的安全,但也可以访问他们的pipe理员?
另外,从安全angular度来看,一组EC2实例的最佳拓扑结构是什么?它由Web服务器和专用数据库服务器组成。 有一个反向代理服务器甚至有道理吗?
有几件事可能会有所帮助。
我有一个相当小的系统,并把我的所有服务器到一个默认的安全组,使他们可以访问对方。 我也添加一个主机组安全组到每个服务器,这可能是我在哪里允许端口80或类似的东西。 有时候,如果它是一个奇怪的服务器,它也会有一个主机安全组,所以我可以允许特定于该服务器的东西。 我的一些服务器是这样的。
db01 =>默认,数据库test01 =>默认,qa,test01 fe01 =>默认,前端
我为我的所有服务器使用cname。 处理外部和内部的名字罚款。 在AWS内部,名称parsing为内部IP,外部是公有IP。 我假设他们正在做他们的名字服务器的意见。
db01 CNAME ec2-222-111-222-111.us-west-1.compute.amazonaws.com
在任何情况下,服务器都可以通过我创build的CNAME访问对方,并且它是一致的。
除非加速应用程序,否则我会跳过反向代理。
你有没有考虑使用亚马逊的VPC产品 ? 如果您不需要公共互联网访问您的实例,这是一个整洁的解决scheme,绕过安全组或每实例防火墙的需要。
您的措辞“我不希望公开的EC2实例”意味着情况可能不是这样,但这意味着您将被公开的实例(如果有的话)阻塞在您的数据中心,退出VPCpipe道以达到他们所需要的(但是这将通过数据中心路由器上的暴露端口进行控制)。 这可能还是可以的,这取决于你的应用程序的性质。
编辑:这也给你在VPC中使用静态私有IP的好处,组织成子网不会less!