应用程序安全组
使用应用程序安全组可将网络安全性配置为应用程序结构的固有扩展,从而可以基于这些组将虚拟机分组以及定义网络安全策略。 可以大量重复使用安全策略,而无需手动维护显式 IP 地址。 平台会处理显式 IP 地址和多个规则集存在的复杂性,让你专注于业务逻辑。 若要更好地理解应用程序安全组,请考虑以下示例:
在上图中,NIC1 和 NIC2 是 AsgWeb 应用程序安全组的成员。 NIC3 是 AsgLogic 应用程序安全组的成员。 NIC4 是 AsgDb 应用程序安全组的成员。 虽然此示例中的每个网络接口只是一个网络安全组的成员,但一个网络接口可以是多个应用程序安全组的成员,具体取决于 Azure 限制。 这些网络接口都没有关联的网络安全组。 NSG1 关联到两个子网,包含以下规则:
Allow-HTTP-Inbound-Internet
若要让流量从 Internet 流到 Web 服务器,此规则是必需的。 由于 DenyAllInbound 默认安全规则拒绝了来自 Internet 的入站流量,因此 AsgLogic 或 AsgDb 应用程序安全组无需使用额外的规则。
优先级 | 源 | 源端口 | 目标 | 目标端口 | 协议 | 访问 |
---|---|---|---|---|---|---|
100 | Internet | * | AsgWeb | 80 | TCP | 允许 |
Deny-Database-All
由于 AllowVNetInBound 默认安全规则允许在同一虚拟网络中的资源之间进行的所有通信,因此需要使用此规则来拒绝来自所有资源的流量。
优先级 | 源 | 源端口 | 目标 | 目标端口 | 协议 | 访问 |
---|---|---|---|---|---|---|
120 | * | * | AsgDb | 1433 | 任意 | 拒绝 |
Allow-Database-BusinessLogic
此规则允许从 AsgLogic 应用程序安全组到 AsgDb 应用程序安全组的流量。 此规则的优先级高于 Deny-Database-All 规则的优先级。 因此,此规则在 Deny-Database-All 规则之前处理,这样系统就会允许来自 AsgLogic 应用程序安全组的流量,而阻止所有其他流量。
优先级 | 源 | 源端口 | 目标 | 目标端口 | 协议 | 访问 |
---|---|---|---|---|---|---|
110 | AsgLogic | * | AsgDb | 1433 | TCP | Allow |
作为应用程序安全组成员的网络接口会应用将其指定为源或目标的规则。 规则不会影响其他网络接口。 如果网络接口不是应用程序安全组的成员,则即时网络安全组与子网相关联,规则也不会应用于网络接口。
应用程序安全组具有以下约束:
可以在一个订阅中配置的应用程序安全组存在数量限制,并且存在与应用程序安全组相关的其他限制。 有关详细信息,请参阅 Azure 限制。
分配给应用程序安全组的所有网络接口都必须存在于分配给应用程序安全组的第一个网络接口所在的虚拟网络中。 例如,如果分配给名为 AsgWeb 的应用程序安全组的第一个网络接口位于名为 VNet1 的虚拟网络中,则分配给 ASGWeb 的所有后续网络接口都必须存在于 VNet1 中。 不能向同一应用程序安全组添加来自不同虚拟网络的网络接口。
如果在安全规则中将应用程序安全组指定为源和目标,则两个应用程序安全组中的网络接口必须存在于同一虚拟网络中。
- 例如,如果 AsgLogic 具有来自 VNet1 的网络接口,而 AsgDb 具有来自 VNet2 的网络接口。 在这种情况下,无法在规则中将 AsgLogic 分配为源,也无法将 AsgDb 分配为目标。 源和目标应用程序安全组中的所有网络接口需存在于同一虚拟网络中。
提示
为了尽量减少所需的安全规则数和需要更改规则的情况,请尽可能使用服务标记或应用程序安全组来规划所需的应用程序安全组并创建规则,而不要使用单个 IP 地址或 IP 地址范围。
后续步骤
- 连接如何创建网络安全组。