Network
Security Group
什么是安全组
安全组充当 EC2 实例的虚拟防火墙,用于控制传入和传出流量。
入站规则控制传入到实例的流量,出站规则控制从实例传出的流量。
启动实例时,您可以指定一个或多个安全组。如果您未指定安全组,则Amazon EC2 将使用默认安全组。您可以为每个安全组添加规则,
规定流入或流出其关联实例的流量。您可以随时修改安全组的规则。新规则和修政后的规则将自动、马上应用到与安全组相关联的所有实
例。在 Amazon EC2 确定是否允许流量到达实例时,它评估与实例关联的所有安全组中的所有规则
特性
- 默认情况下,安全组允许所有出战流量(除了25) 25是邮件服务器的
- 安全组只有允许的策略,没有拒绝的策略
- 允许根据协议和端口号筛选流量
- 安全组是有状态的,如果流量允许出站,则对应的响应流量也会允许进站,即是安全组inbund没有配置,但是主动发起则会被拒绝
- 可以随时添加或删除规则,即时生效
- 将多个安全组与一个实例关联时,将汇总每个安全组的规则,并取并集
源或目标
- 一个单独的IPv4或v6地址,必须使用/32前缀长度,eg:198.123.321.1/32
- 采用CIDR块表示法的地址,eg: 231.123.134.0/24
- 前缀列表id,eg:pl-12332m123j
- 其他安全组,与指定安全组关联的实例就可以访问与该安全组关联的实例。
VPC
什么是VPC
**Amazon Virtual Private Cloud (Amazon VPC)**允许你在已定义的虚拟网络内启动AWS资源。这个虚拟网络与你在数据中心中运行的传
统网络极其相似,并会为你提供使用AWS的可扩展基础设施的优势。
简单来说,VPC就是一个AWS用来隔离你的网络与其他客户网络的虚拟网络服务。在一个VPC里面,用户的数据会逻辑上地与其他AWS租
户分离,用以保障数据 安全。
可以简单地理解为一个VPC就是一个虚拟的数据中心,在这个虚拟数据中心内我们可以创建不同的子网(公有网络和私有网络),搭建我
们的网页服务器,应用服务器,数据库服务器等等服务。
特点
- VPC内可以创建多个子网
- 可以在选择的子网上启动EC2实例
- 在每一个子网上分配自己规划的IP地址
- 每一个子网配置自己的路由表
- 创建一个Internet Gateway并且绑定到VPC上,让EC2实例可以访问互联网
- VPC对你的AWS资源有更安全的保护
- 部署针对实例的安全组(Security Group)
- 部署针对子网的网络控制列表(Network Access Control List)
- 一个VPC可以跨越多个可用区(AZ)
- 一个子网只能在一个可用区(AZ)内
- 安全组(Security Group)是有状态的而网络控制列表(Network Access Control List)是无状态的
- 有状态:如果入向流量被允许,则出向的响应流量会被自动允许
- 无状态:入向规则和出向规则需要分别单独配置,互不影响
- VPC的子网掩码范围是从/28到/16,不能设置在这个范围外的子网掩码
- VPC可以通过Virtual Private Gateway (VGW) 来与企业本地的数据中心相连
- VPC可以通过AWS PrivateLink访问其他AWS账户托管的服务(VPC终端节点服务)
默认VPC
- 在每一个区域(Region ),AWS都有一个默认的VPC
- 在这个VPC里面所有子网都绑定了一个路由表,其中有默认路由(目的地址 0.0.0.0/0)到互联网
- 所有在默认VPC内启动的EC2实例都可以直接访问互联网
- 在默认VPC内启动的EC2实例都会被分配公网地址和私有地址
VPC Peering
VPC Peering可是两个VPC之间的网络连接,通过此连接,你可以使用IPv4地址在两个VPC之间传输流量。这两个VPC内的实例会和如果在同一个网络一样彼此通信。
- 可以通过AWS内网将一个VPC与另一个VPC相连
- 同一个AWS账号内的2个VPC可以进行VPC Peering
- 不同AWS账号内的VPC也可以进行VPC Peering
- 不支持VPC Transitive Peering
- 如果VPC A和VPC B做了Peering
- 而且VPC B和VPC C做了Peering
- 那么VPC A是不能和VPC C进行通信的
- 要通信,只能将VPC A和VPC C进行Peering
弹性 IP(Elastic IP)
弹性IP是专门用来分配AWS服务的IPv4地址,通过申请弹性IP地址,你可以将一个固定的公网IP分配给一个EC2实例。在这个实例无论重
启,关闭,甚至终止之后,你都可以回收这个弹性IP地址并且在需要的时候分配给一个新的EC2实例。
默认情况下,AWS分配的公网IP地址都是浮动的,这意味着如果你关闭再启动你的EC2实例,这个地址也会被释放并且重新分配。但是弹
性IP地址是和你的AWS账号绑定的,除非你手动释放掉这个地址,否则这个地址可以一直被你拥有。
AWS预留地址
例如10.0.0.0/24中
-
10.0.0.0: 网络地址
-
10.0.0.1: 由AWS保留,用于VPC服务器
-
10.0.0.2: 由AWS保留,DNS服务器的IP地址是中为VPC网络范围的基址+2;但是也保留了每个子网范围基址+2的IP地址,对于包含多
个CIDR快的VPC,DNS服务器的IP地址位于主要CIDR中
-
10.0.0.3: 由AWS保留,供未来使用
-
10.0.0.255: 网络广播地址,VPC不支持广播,所以保留此地址
注意
VPC必须启动DNS解析和DNS hostname才可以正常访问互联网
VPC流日志(Flow Logs)
**VPC流日志(Flow Logs)**可以捕获经过你的VPC的网络流量(入向和出向),Flow Logs的日志数据保存在Amazon CloudWatch Logs中。
创建了Flow Logs后,你可以在Amazon CloudWatch Logs中查看和检索其数据。
Flow logs可以在以下级别创建:
- VPC级别
- 子网级别
- 网络接口级别
特性
- 对于Peer VPC不能开启Flow Logs功能,除非这个VPC也在你的账户内
- Flow Logs创建后不能更改其配置
VPC Flow Logs并不捕获所有经过VPC的流量,以下流量将不会被捕获:
- 实例访问Amazon DNS服务器(即.2地址)的流量
- Windows进行Windows许可证激活的流量
- 访问实例Metadata的流量(即去往169.254.169.254的流量)
- DHCP流量
- 访问VPC路由器的流量(即.1地址)

VPC终端节点(VPC Endpoints)
什么是Endpoints
在一般的情况下,如果你需要访问S3服务,EC2实例或者DynamoDB的资源,你需要通过Internet公网来访问这些服务。有没有更快速、
更安全的访问方式呢?
**VPC终端节点(VPC Endpoints)**提供了这种可能性。
VPC终端节点能建立VPC和一些AWS服务之间的高速、私密的“专线”。这个专线叫做PrivateLink,使用了这个技术,你无需再使Internet
网关、NAT网关、VPN或AWS Direct Connect连接就可以访问到一些AWS资源
**终端节点(Endpoints)**是虚 拟设备,它是以能够自动水平扩展、高度冗余、高度可用的VPC组件设计而成,你也不需要为它的带宽限制
和故障而有任何担忧。
AWS PrivateLink是专为客户设计用于特定用途的AWS内网,它采用了高度可用并且可扩展的架构(意味着你无需再为PrivateLink的性
能和高可用性做任何额外架构设计).
Endpoints支持类型
接口
接口终端节点支持通过 AWS PrivateLink 连接到服务。这些服务包括一些 AWS 托管服务、其他 AWS 客户和合作伙伴在其自己的 Amazon VPC 中托管的服务(称为终端节点服务)以及支持的 AWS Marketplace 合作伙伴服务。服务的所有者是服务提供者。创建接口端点并使用该服务的主体是服务使用者。
- 针对接口端点是采取 DNS 层级的调整,将相同区域的域名指向 vpc endpoint.
- 接口端点听过子网实现
- 接口端点所绑定的安全组,需要开启HTTPS端口,以允许通过DNS的方式访问
接口类型支持以下服务:
- Amazon CloudWatch Logs
- AWS CodeBuild
- Amazon EC2 API
- Elastic Load Balancing API
- AWS Key Management Service
- Amazon Kinesis Data Streams
- AWS Service Catalog
- Amazon SNS
- AWS Systems Manager
- 其他 AWS 账户托管的终端节点服务
- 支持的 AWS Marketplace 合作伙伴服务
网关
网关终端节点以 Amazon VPC 路由表中的特定 IP 路由为目标,采用前缀列表的形式,用于发往 Amazon DynamoDB 或 Amazon Simple Storage Service (Amazon S3) 的流量。网关终端节点不启用 AWS PrivateLink。
- gateway 类型则是将同区域 S3 的地址添加到路由表,是进行路由层级的调整。
- 通过关联路由表实现
网关类型支持以下服务:
- Amazon S3
- DynamoDB
VPC对等连接(VPC Peering)
什么是VPC Peering
**VPC对等连接(VPC Peering)**是两个VPC之间的连接,通过VPC Peering,你可以使用私有地址让两个VPC之间相互通信,就像它们在同
一个VPC内一样。
你可以在自己的两个VPC之间建立对等连接,也可以在自己的VPC与其他AWS账号的VPC之间建立对等连接,还可以在位于不同区域的
VPC之间建立对等连接