头图

在使用公有云平台的服务时,有时候为了安全、合规地处理某些敏感数据,我们可能需要为Web应用程序和数据库建立一个安全的云基础设施。为此可以在VPC中构建NAT网关,从而让私有子网中的实例能够访问互联网以便进行更新和调用API,但同时阻止入站流量。

image.png

这种解决方案能为私密实例提供互联网访问途径,而不会将它们直接暴露在公共互联网上,从而增强了安全性。本文将介绍具体做法。

image.png

上图展示了一种典型的VPC设置,其中分为三个主要部分:VPC、公共子网(Public subnet)和专用子网(Private subnet)。首先是绿色外框,即VPC,它能将自己所容纳的资源与其他网络隔离开来。用户可以使用通过1:1 NAT分配的静态IP地址,经由公共互联网访问Web服务器。Web服务器处理请求,并在必要时与数据库服务器通信。Web服务器通过路由服务器与数据库服务器通信。路由服务器使用自定义NAT在公共子网和私有子网之间安全地路由流量。位于专用子网的数据库服务器通过VLAN接收来自Web服务器的请求。专用子网的隔离功能确保了数据库服务器不会直接暴露在互联网上,从而提高了安全性。

下文我们将将介绍建立上述架构的步骤,进而就可以在专用子网和公共子网之间安全高效地通信。具体来说,我们将创建一个包含公共子网和专用子网的VPC,配置NAT网关,并设置VLAN。

教程

在下文中,我们会在VPC中创建一个NAT网关,类似上图所示。如果你已经有Linode账户,可以直接从步骤1开始进行。如果还没有Linode账户,可以点击这里注册并获得100美元的免费额度,这些额度足以完成本文的实验。随后我们将通过Linode控制面板创建一个包含两个子网的VPC:一个公共子网和一个专用子网。在专用子网中,我们将添加一个数据库;在公共子网中,则会添加2个实例:一个用作Web服务器,另一个用作路由服务器(自定义NAT)。

步骤1:创建一个VPC

在VPC中建立NAT网关的第一步是创建VPC,进而从逻辑上隔离资源。回想一下,其实VPC就是我们在上图中看到的绿色框。专用子网和公共子网都位于此VPC中。

image.png

为此,请在Linode Cloud Manager中点击左侧窗格中的VPC,随后点击Create VPC。

image.png

步骤2:设置公共子网

接下来,我们需要在VPC中添加一个公共子网,该子网用于容纳路由服务器(自定义NAT)和Web服务器,也就是架构图中的蓝色方块。

image.png

在页面底部的Subnets一栏为公共子网添加一个标签。该子网将承载路由服务器(自定义NAT)和Web服务器。

image.png

随后点击Create VPC开始配置该VPC。

image.png

等待片刻即可看到这个创建好的子网,及其子网ID和IP范围。

步骤3:部署路由服务器和Web服务器

接下来需要在公共子网中部署2个Linode实例。其中一个实例将作为路由服务器(自定义NAT),负责处理NAT操作,以管理公共子网和专用子网间的流量;另一个实例将充当Web服务器,处理从互联网传入的流量,并将必要的请求转发到专用子网。

首先,我们将创建路由服务器。在Cloud Manager中,点击左侧面板上的Linodes,然后点击Create Linode。选择与创建VPC时相同的区域,然后选择Dedicated 8 GB CPU选项。

image.png

然后向下滚动页面,并分配在步骤1中创建的VPC,然后从下拉菜单中选择公共子网。

image.png

单击Create Linode完成实例配置操作。

接下来需要再次执行上述操作创建Web服务器。单击Create Linode,选择为VPC所选的区域,然后将VPC分配给此实例。接下来可以看到,Web服务器和路由服务器都位于VPC的公共子网中。

image.png

步骤4:创建专用子网

接着需要在VPC中创建承载数据库服务器的专用子网,该服务器将无法直接访问公共互联网。也就是说,现在所创建的是紫色方框中的内容。

image.png

在VPC中点击Create Subnet,然后输入标签并分配专用IP范围。这个子网可以让我们的数据库安全地躲避任何外部威胁。

image.png

步骤5:部署数据库服务器

接下来,让我们在专用子网中部署一个Linode实例作为数据库服务器。该实例只能通过安全VLAN从公共子网访问。请在Linode Cloud Manager的左侧窗格中单击Databases,然后单击Create Database Cluster。输入标签,然后选择需要的数据库引擎。

image.png

请注意:该数据库不能像其他服务器一样直接访问公共互联网。在页面底部的Add Access Controls选项中,我们可以为上面创建的专用子网添加允许访问的IP地址范围。

image.png

随后点击Create Database Cluster。请注意,数据库的配置工作可能需要最多30分钟。

image.png

步骤6:配置VLAN

接下来需要建立一个VLAN,以便在公共子网和专用子网间安全地通信。

image.png

这可以确保Web服务器和数据库服务器之间的流量保持私密和安全。在路由服务器上单击Configurations选项卡,然后单击Edit。

image.png

向下滚动到Networking选项。单击所需网络接口对应的下拉菜单,选择VLAN。通常情况下,为计算实例添加第1或第2个VLAN时会分别使用eth1或eth2为名,因为实例的eth0网络接口通常会被配置为访问公共互联网。

image.png

所选接口旁边会出现一个二级菜单,用于输入VLAN的标签和要使用的IP地址。

image.png

单击Create or select a VLAN选项对应的占位符文本,然后输入VLAN名称。接着点击Save Changes。接下来我们将看到配置选项卡下列出的所有网络接口。

image.png

步骤8:测试网络连接性

接下来可以测试连接性,以验证路由服务器是否正确处理了NAT操作。我们还需要确保Web服务器能通过VLAN与数据库服务器通信,并且数据库服务器不会直接暴露在互联网上。

访问我们创建的第一个路由服务器,并启动LISH控制台。然后使用IP地址ping数据库的专用网络。

image.png

输出结果应显示,该实例与专用网络内部的数据库之间可以成功地收发ICMP数据包。

这种架构的优势

这种架构能提供多个主要优势。首先:安全性更高。VPC允许在不同子网(公共和专用)中对资源进行隔离。NAT网关可确保专用子网中的实例能访问互联网,但不会直接受到公共互联网的威胁。通过在VPC中使用NAT网关,只允许从专用实例向互联网发送出站流量,防止未经请求的入站连接带来安全风险。我们将数据库放在专用子网内,这里的敏感数据会受到保护,不直接暴露在互联网上,从而降低了数据泄露的风险。

这种架构还大幅提高了可扩展性。NAT网关在设计上可用于管理大量流量,并能自动调整以适应不断增长的需求,且无需人工干预。随着流量负载的增加,NAT网关会调整其资源,以保持最佳性能并确保持续可用性。这种自动可扩展性对电商平台尤其有益,因为这些平台经常会因季节性销售、促销和不同的客户行为而出现流量波动。借助NAT网关,开发者可以确保其应用程序即使在高需求情况下也能保证响应速度和可靠性,提供更好的用户体验并支撑业务增长。

在Linode平台的VPC中构建NAT网关,可获得一种安全高效的方式来管理公共资源和专用资源之间的网络流量。这可以保证我们的专用实例能够访问必要的外部资源,同时保护它们不直接暴露在互联网上,最终提高云计算基础设施的安全性、可扩展性和效率。

按照本文介绍的方法实施类似的架构,不仅可以保护客户的敏感数据,还可以优化网络性能。如果希望优化云安全,帮助业务面向未来增长做好充分准备,不妨考虑看看。


Akamai
1 声望1 粉丝

Akamai 支持并保护网络生活。全球各大优秀公司纷纷选择 Akamai 来打造并提供安全的数字化体验,为数十亿人每天的生活、工作和娱乐提供助力。 我们横跨云端和边缘的计算平台在全球广泛分布,不仅能让客户轻松开发...