如何保护一组 Amazon EC2 实例

如何保护一组 Amazon EC2 实例

我有几个运行 Ubuntu 10.04 的 Amazon EC2 实例,最近我开始使用 Amazon 的 Route 53 作为我的 DNS。这样做的目的是允许实例通过名称而不是私有 IP(可以更改)相互引用。我已将我的域名(通过 GoDaddy)指向 Amazon 的名称服务器,允许我访问我的 EC2 网络服务器。

但是,我注意到我现在可以访问我不想公开的 EC2 实例,例如专用的 MySQL 服务器。我原以为使用 Route 53 时 Amazon 的安全组仍然有效,但事实似乎并非如此。

在开始使用 Route 53 之前,我曾考虑让一个实例运行反向代理,这将有助于保护其背后的 Web 服务器。然后对所有其他实例进行 IP 限制。

我知道可以使用每个实例内的防火墙进行 IP 限制,但如果我需要从另一个 IP 地址访问它们,我就需要一种方式进入。亚马逊的控制面板可以在必要时轻松打开端口。

是否有人对如何保证 EC2 实例的安全,同时又能让管理员访问它有什么建议?

另外,从安全角度来看,由 Web 服务器和专用数据库服务器组成的一组 EC2 实例的最佳拓扑是什么?使用反向代理服务器是否有意义?

答案1

有几件事可能会有帮助。

我的系统相当小,我将我的所有服务器都放入一个默认安全组,以便它们可以相互访问。我还为每个服务器添加了一个主机组安全组,我可能允许端口 80 进入该组或类似的东西。有时,如果它是一台奇数服务器,它也会有一个主机安全组,这样我就可以专门为该服务器允许某些东西。我的一些服务器看起来像这样。

db01 => 默认,数据库 test01 => 默认,qa,test01 fe01 => 默认,前端

我为所有服务器使用 cname。可以很好地处理外部和内部名称。在 AWS 内部,名称解析为内部 IP,在外部则是公共 IP。我假设他们正在其名称服务器上进行查看。

db01 CNAME ec2-222-111-222-111.us-west-1.compute.amazonaws.com

无论如何,服务器都可以通过我创建的 CNAME 相互访问,并且是一致的。

我会跳过反向代理,除非它可以加快您的应用程序速度。

答案2

你考虑过使用亚马逊的VPC 产品? 如果您不需要公共互联网访问您的实例,这是一个简洁的解决方案,无需安全组或每个实例防火墙。

您的措辞“我不想公开的 EC2 实例”暗示情况可能并非如此,这意味着您将不得不让公共实例(如果有的话)通过数据中心进入,然后退出 VPC 管道以获取它们所需的内容(但这将通过数据中心路由器上的公开端口进行控制)。这可能仍然可以,具体取决于您的应用程序的性质。

编辑:这也为您提供了在 VPC 内部使用静态私有 IP 的好处,并且这些 IP 还可以组织到子网中!

相关内容