AWS入门实践-如何在AWS云上创建一个内外网隔离的生产环境

在 AWS 上建立一个内外网分离的生产环境,可以减少应用服务的暴露面,有效的保证你的应用服务器的安全。通常我们会将web应用放在外网的子网内,数据库服务器等放在内网的子网。我们将按照下图来部署动手实践环境,实现在public subnet的EC2虚拟机可以直接通过互联网可以访问,在Private subnet的EC2虚拟机不能通过互联网直接访问,但是却可以在内部来访问互联网安装应用等等。

下面是动手实践详细的操作步骤:

如果没有AWS的实验账号,请大家参考下面链接免费申请:

想学习云计算么?教你如何免费白嫖微软和AWS的云资源一年_免费使用azure一年-CSDN博客

一、创建VPC

  1. 在AWS管理控制台中,找到并选择"VPC"服务。点击"创建VPC",输入VPC的名称,选择一个合适的IPv4 CIDR块。例如,10.0.0.0/16。然后选择右下角的 Create VPC按钮创建

二、配置互联网网关

创建互联网网关并将其附加到 VPC,以允许公有子网中的资源访问互联网。

选择mytest-vpc,附加网关

三、公共子网(用于Web服务器)

VPC内创建一个子网,选择之前创建的VPC,分配一个CIDR块,例如10.0.1.0/24

如下图:在AWS Console VPC的左边菜单栏,选择Subnets 菜单,然后在右上角选择Create Subnet

在Subnet创建的界面中,选择刚才创建的VPC mytest-vpc

输入子网的名称 public-subnet1, 子网CIDR 10.0.1.0/24,然后选择"create subnet"

四、私有子网(用于内部资源)

  • 重复创建子网的步骤来创建另一个子网,用于内部资源,选择相同的VPC,分配一个不同的CIDR块,例如10.0.2.0/24。创建完成后,我们有两个子网在VPC内

五、NAT 网关

在公有子网中创建 NAT 网关,以允许私有子网中的资源访问互联网。

如下图,选择public-subnet,然后分配IP地址,

六、配置路由表

创建两个路由表,一个用于公有子网,另一个用于私有子网。公有子网路由表应包含到互联网网关的路由,私有子网路由表应包含到 NAT 网关的路由。

1、创建public-subnet的路由表

在AWS Console 的VPC找到左侧菜单的Route Table 菜单项目,然后选择Create routes

路由表创建完毕后,选择Edit Route table,增加一条指向0.0.0.0/0的指向互联网的路由,如下图:

选择子网关联(Subnet associations)TAB页,然后选择 "Edit subnet associations"

在Available subnets 中选择public-subnet1,然后选择save associations

2、创建private-subnet的路由表

在AWS Console 的VPC找到左侧菜单的Route Table 菜单项目,然后选择Create routes

创建完毕后选择编辑路由表,然后增加一条指向互联网0.0.0.0/0的路由,Target选择NAT Gateway,然后选择保存,如下图:

创建路由表的子网关联,如下图:选择"Edit subnet associations" 按钮

在Available subnets选择 private-subnet1,如下图

七、分别在public subnet和private subnet 创建EC2虚拟机

1、在public subnet 创建EC2虚拟机

如下图:选择免费的t2.micro linux 实例.选择之前创建好的VPC,选择自动分配公有IP,

2、在Private subnet 创建EC2虚拟机

如下图:选择免费的t2.micro linux 实例.选择之前创建好的VPC,选择禁用自动分配公有IP,

  • 创建安全组以控制对 EC2 实例的入站和出站流量。
  • 为公有实例和私有实例创建单独的安全组。

八、访问两个不同的EC2进行测试

选择public subnet的EC2实例,通过Putty来访问EC2实例,是可以访问的。

由于Private subnet上的EC2实例只有私网地址,所以是无法直接通过Putty 通过internet直接访问的,我们在public subnet上的这台主机来访问 private subnet 上的EC2实例。

首先上传.pem 文件到 public subnet上的EC2 实例,然后用ssh 命令来访问

找到private subnet ec2实例的连接信息,如下图:

拷贝实例连接命令行:

结果如下图:登录到private subnet 的EC2虚拟机上在内部是可以访问internet的。

通过这种设置,公有 EC2 实例可以直接访问互联网,而私有实例则只能通过 NAT 网关访问互联网。所有对外的流量都必须经过公有实例(如 Web 服务器或负载均衡器)。这样可以增强安全性,因为私有实例不直接暴露在互联网上。

需要注意的是,还需要根据具体需求配置安全组规则、路由表以及其他 AWS 服务(如 RDS、ElastiCache 等)。此外,还应考虑使用 AWS 的其他安全服务,如 AWS WAF、AWS Shield 等,以提高整体安全性。

相关推荐
知孤云出岫1 小时前
云上拼团GO指南——腾讯云博客部署案例,双11欢乐GO
云计算·腾讯云
lihuhelihu2 小时前
第3章 CentOS系统管理
linux·运维·服务器·计算机网络·ubuntu·centos·云计算
dessler2 小时前
Linux系统-ubuntu系统安装
linux·运维·云计算
kongxx4 小时前
AWS S3在客户端应用不能使用aws-sdk场景下的文件上传与下载
aws
kongxx4 小时前
AWS S3 JavaScript SDK(v3)常用操作
aws
Elastic 中国社区官方博客4 小时前
如何将数据从 AWS S3 导入到 Elastic Cloud - 第 3 部分:Elastic S3 连接器
大数据·elasticsearch·搜索引擎·云计算·全文检索·可用性测试·aws
九河云4 小时前
如何选择适合的AWS EC2实例类型
服务器·云计算·aws
Huaqiwill6 小时前
Ubuntun搭建并行计算环境
linux·云计算
为什么这亚子8 小时前
九、Go语言快速入门之map
运维·开发语言·后端·算法·云原生·golang·云计算
划水小将军8 小时前
阿里云函数计算GBK编码
阿里云·云计算