安全组
功能概述
安全组为云主机提供三层网络安全控制,控制TCP/UDP/ICMP等数据包进行有效过滤,对指定网络的指定云主机按照指定的安全规则进行有效控制。
- 安全组规则按数据包的流向分为两种类型:
- 入方向:代表数据包从外部进入云主机。
- 出方向:代表数据包从云主机往外部发出。
- 安全组规则对通信协议支持以下类型:
- ALL:表示涵盖所有协议类型,此时不能指定端口。
- TCP:支持1-65535端口。
- UDP:支持1-65535端口。
- ICMP:默认起始结束端口均为-1,表示支持全部的ICMP协议。
- 安全组规则支持对数据来源的限制,目前源可以设置为CIDR和安全组。
- CIDR作为源:仅允许指定的CIDR才可通过。
- 安全组作为源:仅允许指定的安全组内云主机通过。
- 若两者都设置,只取两者交集。
最佳实践
- 安全组规则动作仅支持允许,即仅支持白名单模式。
- 安全组专注东西向流量,防护某块虚拟网卡。对于南北向流量控制不够灵活,建议使用VPC防火墙、交换机ACL、物理防火墙等功能实现。
- 常见WEB-APP-DB应用场景,可以通过安全组进行管控,比如把DB类云主机加入一个安全组,只允许APP安全组访问,以提高数据安全性。
- 安全组与防火墙功能对比:
对比项 | 安全组 | 防火墙 |
---|---|---|
作用范围 | 虚拟机网卡 | VPC网络或整个VPC |
部署方式 | 分布式 | 集中式 |
部署位置 | 虚拟机所在宿主机 | VPC路由器 |
规则动作 | 仅支持允许 | 自定义允许,拒绝或丢弃 |
优先级 | 按照配置顺序 | 自定义规则优先级 |
规则匹配 | ingress:协议、源IP、源端口、源安全组 egress:协议、目的IP、目的端口、目的安全组 |
源目IP、源目端口、协议(五元组)TCP flag、ICMP Type 报文状态 |
使用场景 | 扁平网络场景 同一个VPC网络内部有隔离需求 专注东西向流量,防护某块虚拟网卡 |
VPC网络场景 专注南北向流量,防护整个网段 |
注意事项
- 安全组可以挂载到多个云主机,它们会共享相同的安全组规则。
- 安全组可以挂载到多个三层网络,它们会共享相同的安全组规则。
- 安全组支持白名单机制,即设置的所有规则均为允许机制,一旦对指定端口设置了允许机制,那么没有被允许的端口就无法通过。
- 新建安全组时,默认配置了两条规则(即:协议类型为ALL的进口规则和出口规则),用于设置组内互通。用户可以删除这两条默认规则,取消组内互通。
- 新建安全组时,如果没有设置任何规则,则默认所有的外部访问均禁止进入安全组内的云主机,安全组内云主机访问外部不受限制。
- 若使用安全组同时使用其他网络服务(如负载均衡、路由表等),需确保其他网络服务所需要的安全组规则已添加至该安全组中。
- 公有网络、扁平网络和VPC网络均支持安全组服务,安全组服务均由安全组网络服务模块提供,使用方法均相同:使用iptables进行云主机的安全控制。
- 安全组实际上是一个分布式防火墙,每次规则变化、加入/删除网卡都会导致多个云主机上的安全组规则被更新。
- 出方向规则中,“源安全组”实际是指“目的安全组”。
- 过多的安全组规则可能会导致网络性能降低、延迟变大、物理机重连超时或者失败。