📜  Amazon Web Services – 安全组与 NACL(1)

📅  最后修改于: 2023-12-03 15:13:18.961000             🧑  作者: Mango

Amazon Web Services - 安全组与 NACL

Amazon Web Services (AWS) 是一个流行的云计算服务,提供许多不同的服务,包括计算、存储、数据库、网络和安全等服务。其中,网络和安全服务是特别重要的一部分,因为它们帮助组织保护其云基础架构和数据。在AWS中,安全组和网络访问控制列表(NACL)是两种重要的安全特性。

安全组

安全组是一个虚拟的防火墙,它可以控制一个或多个EC2实例的入站和出站流量。每个安全组规则只能允许或拒绝与特定端口和协议相关联的流量。在AWS中,每个实例必须至少关联一个安全组,而安全组可以关联到多个实例。安全组规则是有状态的,可以自动允许返回流量。

以下是一个示例安全组,该安全组允许HTTP、SSH和HTTPS访问:

|         | Type   | Protocol | Port Range | Source          |
|---------|--------|----------|------------|-----------------|
| Rule 1  | HTTP   | TCP      | 80         | 0.0.0.0/0, ::/0  |
| Rule 2  | SSH    | TCP      | 22         | 10.0.0.0/16      |
| Rule 3  | HTTPS  | TCP      | 443        | 0.0.0.0/0, ::/0  |
  • 第一条规则允许从任何来源的IP地址的TCP流量访问端口80。这是允许来自互联网的HTTP流量的典型配置。
  • 第二条规则允许从范围为10.0.0.0/16的IP地址的TCP流量访问端口22。这是允许来自公司内部网络的SSH访问的典型配置。
  • 第三条规则允许从任何来源的IP地址的TCP流量访问端口443。这是允许来自互联网的HTTPS流量的典型配置。

需要注意的是,在默认情况下,所有出站流量都是允许的。如果您需要限制出站流量,您可以创建一个自定义的出站规则,将所有出站流量限制为特定的端口和协议。

NACL

网络访问控制列表(NACL)是AWS中另一个重要的安全特性,它可以控制子网中的入站和出站流量。NACL是基于子网级别而不是实例级别的,因此对于同一子网中的所有实例都适用相同的规则。与安全组不同,NACL规则是有顺序的,从顶部向下顺序处理规则。

以下是一个示例NACL,该NACL允许HTTP、SSH和HTTPS访问:

| Inbound        | Rule Number | Protocol | Port Range | Source          | Allow/Deny |
|----------------|-------------|----------|------------|-----------------|------------|
| Rule 100       | TCP (6)     | 80        | 0.0.0.0/0      | ALLOW          |
| Rule 110       | TCP (6)     | 22        | 0.0.0.0/0      | ALLOW          |
| Rule 120       | TCP (6)     | 443       | 0.0.0.0/0      | ALLOW          |
| Rule 130       | ALL (-1)    | ALL (-1) | 0.0.0.0/0      | DENY           |
| Outbound       | Rule Number | Protocol | Port Range | Destination     | Allow/Deny |
|----------------|-------------|----------|------------|-----------------|------------|
| Rule 100       | ALL (-1)    | ALL (-1) | 0.0.0.0/0      | ALLOW          |
  • 第一部分(入站规则)中的三个规则允许HTTP、SSH和HTTPS访问,而第四个规则则拒绝所有其他类型的流量。需要注意的是,所有的入站规则都必须满足,否则流量将被拒绝。
  • 第二部分(出站规则)中的一条规则允许所有类型的流量出站,因此不需要其他规则。

需要注意的是,NACL的规则不是有状态的,因此如果要允许返回流量,必须为返回流量创建相应的规则。

安全组和NACL的比较

安全组和NACL都可以用于控制流量的入站和出站,但它们具有不同的适用场景和功能。

  • 安全组适用于EC2实例级别,而NACL适用于子网级别。
  • 安全组规则是有状态的,NACL规则不是有状态的。
  • 安全组的规则是无序的,NACL规则是有序的。
  • 安全组适用于目标实例,而NACL适用于源和目标子网。

在设计AWS基础架构时,建议优先使用安全组,除非需要限制子网级别的流量时,才使用NACL。

总结

安全组和NACL都是很重要的AWS安全特性,可以用于限制流量的入站和出站。安全组适用于实例级别,规则是有状态且无序的;而NACL适用于子网级别,规则是无状态且有序的。在实际使用时,应根据需要灵活选择这两种安全特性,以确保AWS基础架构的安全性。