目录
2. Security group和Network ACLs的区别
1. Network ACLs概述
网络访问控制列表 (ACL) 是 VPC 的一个可选安全层,可用作防火墙来控制进出一个或多个子网的流量。
- ACLs是无状态的,这意味着允许入站流量的响应、返回的数据流都必须被出站、入站规则明确允许。
- VPC中的每个子网都必须与一个网络ACL相关联。如果没有明确地将子网与网络ACL相关联,则子网将自动与默认网络ACL关联。默认网络ACL的内容为允许所有入站和出站的流量, 也就是允许所有流量流进和流出与其关联的子网。
- 可以创建自定义网络 ACL 并将其与子网相关联。但要注意的是,默认情况下,每个自定义网络 ACL 都拒绝所有入站和出站流量,直至添加规则。
2. Security group和Network ACLs的区别
- 安全组在实例级别运行,网络ACL在子网级别运行。加入子网1关联了一个网络ACL,而这个子网1中可能有数百台EC2实例,那么对于这个网络ACL规则的调整,是会影响关联的子网1中所有的EC2实例。
- 安全组仅支持配置允许规则,在安全组无法配置拒绝规则。例如配置显式拒绝某个IP地址访问EC2实例,这个安全组做不到;而ACL支持允许规则和拒绝规则。
- 安全组是有状态的,返回的数据流会被自动允许,而ACL是无状态的,返回数据流必须被规则明确允许,就是说使用ACL配置了允许进站的规则必须要有相应允许出站的规则。
- 安全组会在决定是否允许数据流前评估所有规则,ACL会按照规则的数字,顺序处理所有规则。
- 安全组只有在与实例关联的情况下,规则才会被应用到实例,而ACL自动应用于与之关联的子网的所有实例。
3. ACL实践测试
3.1 默认网络ACL
1) 从EC2的安全这里找到安全组。
2) 确保有这个ICMP协议的入站规则。
3) 然后就可以在本地ping这台EC2了。
3.2 ACL显式拒绝
1) 拒绝所有入站流量。
从EC2的联网这里找到VPC ID,直接进去ACL添加一条规则。
添加编号90的规则,然后就会ping就会被拒绝。
2) 拒绝特定IP
假设我本地ip是223.73.206.52,然后设定为ACL的源,那么ping也会失败。
但当我们用除了这个ip的其他ip就可以ping了。
3.3 自定义ACL
创建了自定义ACL,默认的情况下,自定义的ACL是拒绝所有入站和出站流量的,直到添加相应的规则。
1) 添加自定义ACL(test-acl),并且绑定到子网。
2) 选中并关联原本的子网ID,EC2的子网ID可以在这里找到。
值得注意的是,这里test-acl关联这个子网,原来的acl就会被解绑。
3) 绑定之后是ping不通的。
4) 添加入站和出站的ICMP规则之后就可以了。