本实验旨在通过 AWS 控制台,深入理解并掌握 Amazon VPC 安全组(Security Group,SG)在应用层网络流量控制中的核心作用。通过本实验,学员能够在同一 VPC 内创建多个子网,分别部署 Web 服务器和数据库服务器,并通过配置安全组规则,实现仅允许 Web 层访问数据库层指定端口,而阻断其他非授权流量。
Amazon VPC 安全组(Security Group,SG)是 AWS 提供的虚拟防火墙,工作在实例级别,用于控制进入和离开 EC2 实例的流量。安全组通过配置入站规则与出站规则,可以灵活精确地控制网络出站和入站的网络流量。安全组是有状态的,即允许入站流量后会自动允许相应的出站响应流量。
本次采用AWS Console界面完成作业。
注意:根据项目的具体情况,可以采用不同的实施方法。比如使用命令行(CLI)部署、代码部署 (CloudFomation、Terraform等)、以及其它开发语言(SDK)完成作业。
步骤一:创建 VPC 及 子网。
登录 AWS 控制台,进入 VPC 控制台,创建一个自定义 VPC(CIDR:10.0.0.0/16),并创建两个子网:公共子网 10.0.1.0/24 和私有子网 10.0.2.0/24。
步骤二:启动两台 EC2 实例。
两台实例均使用 Amazon Linux 2 镜像。一台位于公共子网,作为 Web 服务器,安装 MySQL 客户端;一台位于私有子网,安装 MySQL数据库,作为数据库服务器。,
步骤三:创建及配置安全组。
Web-SG:入站规则允许 TCP 80(来源 0.0.0.0/0)和 TCP 22(测试机 IP);出站规则允许全部流量。DB-SG:入站规则仅允许 TCP 3306,来源指定为 Web-SG 的组 ID(sg-xxxxxx);出站规则允许全部流量。
步骤四:附加安全组。
分别将 Web-SG 绑定到 Web 实例,将 DB-SG 绑定到数据库实例。
1. 在 Web 实例上执行 mysql -h [数据库私网IP] -u admin -p,成功连接并能查询数据,证明 Web 层到数据库层的流量已被安全组正确放行。
2. 在 Web 实例上尝试 ping 数据库实例或访问其他非授权端口(如 22),均被拒绝,验证了安全组规则的精确控制能力。