安全组 充当实例的虚拟防火墙以控制入站和出站流量。安全组在实例级别运行,而不是子网级别。因此,在您的 VPC 的子网中的每项实例都可以归属于不同的安全组。如果您在启动时没有指定具体的安全组,实例会自动归属到 VPC 的默认安全组。
对于每个安全组,您可以添加规则以控制到实例的入站数据流,以及另外一套单独规则以控制出站数据流。
以下是 VPC 安全组的基本特征:
VPC 会自动带有默认的安全组。如果您在启动主机实例时未指定其他安全组,则您在 VPC 内启动的实例会自动与默认安全组关联。
默认安全组允许安全组内实例互相通信,并允许所有出站访问。
您可以更改默认安全组的规则。
默认安全组不能删除。
您可以添加或删除安全组规则。分为入站数据流(进入)或出站数据流(离开)的两个方向的规则。您可以授予访问特定 CIDR 范围的权限。
以下是安全组规则的基本组成部分:
出站或者入站规则
协议类型(IP,TCP,UDP,ICMP)
入站源 CIDR(IP/MASK) 和目的端口范围(适用于TCP,UDP),(icmp_type,icmp_code , 适用于 ICMP协议)
出站目的CIDR(IP/MASK) 和目的端口范围(适用于TCP,UDP),(icmp_type,icmp_code , 适用于 ICMP协议)
Note:
如果您的主机(主机 A)发起到主机 B 的流量并使用 TCP、UDP 或 ICMP 之外的协议,则实例的防火墙将仅跟踪 IP 地址和协议编号以便允许来自主机 B 的响应流量。如果在原始请求或响应的 600 秒以内,主机 B 在单独的请求中发起到您的实例的流量,则无论入站安全组规则如何,您的实例都将接受该请求,因为该流量将被视为响应流量。如果您想阻止这些响应的流量,您可以使用您的子网的网络 ACL -网络 ACL 是无状态的,因此不会自动允许响应流量。
当您添加或删除一项规则时,您的修改会自动应用到所有与该安全组相关的实例。
您添加的规则类型可能取决于该实例的用途。下表介绍 Web 服务器的安全组的示例规则。Web 服务器可接收 HTTP 和 HTTPS 流量以及将 SQL 或 MySQL 流量发送到数据库服务器。
Inbound | |||
---|---|---|---|
Source | Protocol | Port Range | Comments |
0.0.0.0/0 | TCP | 80 | 允许来自任何地方的入站 HTTP 访问 |
0.0.0.0/0 | TCP | 443 | 允许来自任何地方的入站 HTTPS 访问 |
您网络的公有 IP 地址范围 | TCP | 22 | 允许从您的网络对 Linux 实例进行入站 SSH 访问(通过 Internet 网关) |
您网络的公有 IP 地址范围 | TCP | 3389 | 允许从您的网络对 Windows 实例进行入站 RDP 访问(通过 Internet 网关) |
Outbound | |||
Source | Protocol | Port Range | Comments |
数据库服务器的IP地址 | TCP | 1433 | 允许 Microsoft SQL Server 出站访问指定安全组中的实例 |
MySQL 数据库服务器的IP地址 | TCP | 3306 | 允许 MySQL 出站访问指定安全组中的实例 |