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

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

上图展示了一种典型的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中。

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

步骤2:设置公共子网

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

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

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

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

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

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

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

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

按一下Create Linode完成实例配置操作。

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

步骤4:创建专用子网

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

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

步骤5:部署资料库伺服器

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

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

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

步骤6:配置VLAN

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

这可以确保Web伺服器和资料库伺服器之间的流量保持私密和安全。在路由伺服器上按一下Configurations选项卡,然后按一下Edit。

向下滚动到Networking选项。按一下所需网路介面对应的下拉式功能表,选择VLAN。通常情况下,为计算实例添加第1或第2个VLAN时会分别使用eth1或eth2为名,因为实例的eth0网路介面通常会被配置为访问公共互联网。

所选介面旁边会出现一个二级功能表,用于输入VLAN的标籤和要使用的IP位址。

按一下Create or select a VLAN选项对应的预留位置文字,然后输入VLAN名称。接着点击Save Changes。接下来我们将看到配置选项卡下列出的所有网路介面。

步骤8:测试网路连线性

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

访问我们创建的第一个路由伺服器,并启动LISH控制台。然后使用IP位址ping资料库的私人网路络。

输出结果应显示,该实例与私人网路络内部的资料库之间可以成功地收发ICMP资料包。

这种架构的优势

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

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

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

按照本文介绍的方法实施类似的架构,不仅可以保护客户的敏感性资料,还可以优化网路性能。如果希望优化云安全,帮助业务面向未来增长做好充分準备,不妨考虑看看。别忘了,注册Linode帐户,可以获得价值100美元的额度。充分利用起来吧!