学习了如何创建一个新的VPC,如何创建一个公有网段和私有网段,并且分别关联Internet网关和NAT网关。我们还学习了如何添加和修改路由表,让默认路由可以走到Internet,让S3的流量(通过前缀列表)能够走到VPC Endpoints。
另外,我们了解了网络ACL的特点以及与安全组(Security Group)的区别,知道什么是无状态的ACL,如何创建允许和拒绝的规则条目。如何使用临时端口来控制出站和入站的相应流量。
我们还创建了NAT实例和NAT网关,知道它们之间的不同,以及堡垒机(跳板机)的作用。
更多的知识点如下
NAT实例(NAT Instance)
- 创建NAT实例之后,一定要关闭源/目标检查(Source/Destination Check)
- NAT实例需要创建在公有子网内
- 私有子网需要创建一条默认路由(0.0.0.0/0),指到NAT实例
- NAT实例的瓶颈在于实例的大小,如果遇到了网络吞吐瓶颈,你可以加大实例类型
- 需要自己创建弹性伸缩组(Auto Scaling Group),自定义脚本来达到NAT实例的高可用(比如部署在多个可用区)
- 需要关联一个安全组(Security Group)
NAT网关(NAT Gateway)
- 网络吞吐可以达到10Gbps
- 不需要为NAT的操作系统和程序打补丁
- 不需要关联安全组
- 自动分配一个公网IP地址(EIP)
- 私有子网需要创建一条默认路由(0.0.0.0/0)到NAT网关
- 不需要更改源/目标检查(Source/Destination Check)
网络ACL
- 在你的默认VPC内会有一个默认的网络ACL(NACL),它会允许所有入向和出向的流量
- 你可以创建一个自定义的网络ACL,在创建之初所有的入向和出向的流量都会被拒绝,除非进行手动更改
- 对于所有VPC内的子网,每一个子网都需要关联一个网络ACL。如果没有关联任何网络ACL,那么子网会关联默认的网络ACL
- 一个网络ACL可以关联多个子网,但一个子网只能关联一个网络ACL
- 网络ACL包含了一系列(允许或拒绝)的规则,网络ACL会按顺序执行,一旦匹配就结束,不会再继续往下匹配
- 网络ACL有入向和出向的规则,每一条规则都可以配置允许或者拒绝
- 网络ACL是无状态的(安全组是有状态的)
- 被允许的入向流量的响应流量必须被精准的出向规则所允许(反之亦然)
- 一般至少需要允许临时端口(TCP 1024-65535)
VPC Flow Log
- 对于Peer VPC不能开启Flow Logs功能,除非这个VPC也在你的账户内
- 不能给Flow Logs打标签
- Flow Logs创建后不能更改其配置
VPC Flow Logs并不捕获所有经过VPC的流量,以下流量将不会被捕获:
- 实例访问Amazon DNS服务器(即.2地址)的流量
- Windows进行Windows许可证激活的流量
- 访问实例Metadata的流量(即去往169.254.169.254的流量)
- DHCP流量
- 访问VPC路由器的流量(即.1地址)
VPC终端节点(VPC Endpoints)
VPC终端节点(VPC Endpoints)能建立VPC和一些AWS服务之间的高速、私密的“专线”。这个专线叫做PrivateLink,使用了这个技术,你无需再使用Internet网关、NAT网关、VPN或AWS Direct Connect连接就可以访问到一些AWS资源了。