网络安全架构设计案例
最后更新于
最后更新于
本文将指引完成以下操作:
创建一个新的VPC;
创建6个子网,2个公有的,4个私有的,跨2个可用区;
创建和配置一个IGW,2个NAT网关,一个ELB;
创建和配置新的路由表,安全组和NACLs;
按照以下操作来创建一个VPC:
进入AWS的控制台,选择VPC服务;
在控制台找到【Create VPC】,点击后开始创建VPC;
选择VPC and more可以快速创建所需要的资源;
Auto-generate填写自定义的项目名称,比如“my-app”;
IPv4 CIDR block填写需要的网段和范围;
Number of Availability Zones (AZs)建议选择2个,可以互为主备;
Number of public subnets建议选择2个,可以作为DMZ安全区用于访问私有子网里面的资源;
Number of private subnets建议选择4个,2个作为应用层放应用服务器,2个作为数据库层,放数据库资源,比如RDS。
NAT gateways ($)建议创建1个,这样服务器可以访问公网安装补丁,但是无法被公网的攻击者远程攻击。
VPC endpoints如果还需要调用S3建议选择“S3 Gateway”
由于默认安全组容易被攻击者利用,因此建议删除默认安全组的入站和出站规则。
找到Security Groups;
勾选默认安全组,下方选择“Inbound rules”, 勾选所有的rules,点击【Edit inbound rules】
点击【delete】删除规则,然后点击【save rules】
类似的,删除出站规则:
找到Security Groups;
勾选默认安全组,下方选择“Outbound rules”,勾选所有的rules,点击【Edit outbound rules】;
点击【delete】删除规则,然后点击【save rules】。
给每一个子网都添加一个新的自定义安全组,比如:
private1是us-east-1a这个AZ下的私有子网,应该只允许public1里的资源访问,并且可以访问private2也就是数据库层中的数据。因此配置的时候添加自定义的安全组,比如:指定入站时通过22端口执行SSH连接的只能是public1的网段,80和443端口设置为NAT网关的网段。
出站规则可以指定应用层的资源允许访问数据库层的资源,其余出站不允许。
进入控制台VPC,找到菜单中的Network ACLs。然后点击【Create network ACL】:
Name填写“public-NACL”,表示给公有子网使用;
VPC选择我们刚才创建好的VPC;
点击确认保存后退出;
选择刚才创建的NACL,【Edit subnet associations】,勾选公有子网,然后点击【save changes】。
然后【Edit inbound rules】,配置参见截图,其中22端口的访问来源设置为你们公司的IP网段:
【Edit outbound rules】,Rule number填写“100”, Type选择“All traffic”, Destination填写“0.0.0.0/0”, Allow,表示允许任意出站流量。如果有特殊的管控要求可以根据要求进行配置。点击【Save changes】保存退出。
配置应用层的私有子网NACL和private1和private2关联。
配置的规则和私有子网中安全组的一样,比如:指定入站时通过任意TCP端口发起连接的只能是public1和public2的网段,80和443端口设置为NAT网关的网段。
同样,出站规则可以指定应用层的资源允许访问数据库层的资源也就是private3和private4,其余出站不允许。
配置应用层的私有子网NACL和private3和private4关联。
配置的规则和私有子网中安全组的一样,比如:指定入站时通过22端口发起连接的只能是private1和private2的网段。
同样,出站规则可以指定数据库层的资源允许访问应用层的资源也就是private1和private2,其余出站不允许。
VPC、私有子网、安全组都创建好以后就可以开始创建资源了。现在创建EC2实例到私有子网中,以创建实例到private1私有子网为例,步骤如下:
选择AMI镜像,比如Amazon Linux AMI;
选择实例类型,比如t2.micro;
创建key pair;
编辑VPC,选择刚才创建好的VPC,选择子网private1,选择已有的安全组;
其余按照需求进行配置;
点击【launch instance】完成EC2实例的创建。
[AWS articles]High Availability for Amazon VPC NAT Instances: An Example
[AWS articles] What is Amazon VPC?
[whitepaper] Building a Scalable and Secure Multi-VPC AWS Network Infrastructure