示例:控制对子网中的实例的访问 - Amazon Virtual Private Cloud

示例:控制对子网中的实例的访问

在本示例中,子网中的任意两个实例可相互通信,并可从受信任的远程计算机访问它们。远程计算机可能是本地网络中的计算机,也可能是其他子网或 VPC 中的实例。您可以使用它连接到实例以执行管理任务。安全组规则和网络 ACL 规则允许从远程计算机 (172.31.1.2/32) 的 IP 地址进行访问。来自 Internet 或其他网络的所有其他流量会被拒绝。该方案让您能够灵活地更改实例的安全组或安全组规则,并使用网络 ACL 作为备份防御层。

使用安全组和 NACL

下面是要与实例关联的示例安全组。安全组是有状态的。因此,您不需要允许对入站流量做出响应的规则。

协议类型 协议 端口范围 注释
所有流量 All All sg-1234567890abcdef0 与此安全组关联的所有实例都可以相互通信。
SSH TCP 22 172.31.1.2/32 允许远程计算机进行入站 SSH 访问。
协议类型 协议 端口范围 目的地 注释
所有流量 All All sg-1234567890abcdef0 与此安全组关联的所有实例都可以相互通信。

下面是要与实例的子网关联的示例网络 ACL。网络 ACL 规则应用到子网中的所有实例。网络 ACL 没有任何状态。因此,您需要允许对入站流量做出响应的规则。

规则 # 类型 协议 端口范围 允许/拒绝 注释
100 SSH TCP 22 172.31.1.2/32 允许 允许远程计算机的入站流量。
* 所有流量 All 全部 0.0.0.0/0 拒绝 拒绝所有其他入站流量。
规则 # 类型 协议 端口范围 目的地 允许/拒绝 注释
100 自定义 TCP TCP 1024-65535 172.31.1.2/32 允许 允许到远程计算机的出站响应。
* 所有流量 All 全部 0.0.0.0/0 拒绝 拒绝所有其他出站流量。

如果您不小心设置了过于宽松的安全组规则,此示例中的网络 ACL 规则仍继续生效,只允许来自指定 IP 地址的访问。例如,下面的安全组包含允许从任何 IP 地址进行入站 SSH 访问的规则。但是,如果您将此安全组与使用网络 ACL 的子网中的实例关联起来,则只有子网内的其他实例以及远程计算机才能访问该实例,因为网络 ACL 规则会拒绝对子网的其他入站流量。

类型 协议 端口范围 注释
所有流量 All All sg-1234567890abcdef0 与此安全组关联的所有实例都可以相互通信。
SSH TCP 22 0.0.0.0/0 允许来自任意 IP 地址的 SSH 访问。
类型 协议 端口范围 目的地 注释
所有流量 All 全部 0.0.0.0/0 允许所有出站流量。