![AWS:用于设置 VPC 的子网与安全组](https://linux22.com/image/706296/AWS%EF%BC%9A%E7%94%A8%E4%BA%8E%E8%AE%BE%E7%BD%AE%20VPC%20%E7%9A%84%E5%AD%90%E7%BD%91%E4%B8%8E%E5%AE%89%E5%85%A8%E7%BB%84.png)
我是 AWS 新手,我在 EC2 上有一个实例,我想将其限制为仅限家庭网络中的 IP。与 VPC 关联的子网和安全组之间有什么区别?据我了解,安全组负责执行 IP 地址权限,但我不太清楚子网的作用是什么。
此外,网络 ACL 如何发挥作用?
https://i.stack.imgur.com/4KYWT.png
我是否在源中指定允许的 IP 地址?
编辑:VPN 信息
经过深思熟虑,我不想将某些外部 IP 地址列入白名单,而是希望仅当使用 VPN 连接时才能访问 EC2 实例。这样,即使是我家庭网络上的计算机也无法访问,除非使用 VPN。这是否要求我在 EC2 上设置一个可以访问私有子网的 OpenVPN 服务器?
此外,EC2 实例需要访问互联网,这是否意味着它位于公共子网下?
谢谢!
答案1
第一个问题 - 安全性
安全组是在实例管理程序上运行的防火墙。网络 ACL 是在网络上运行的防火墙。您可以使用其中一种或两种。理论上,NACL 可以减少主机负载,但可能微不足道。
安全组是有状态的,因此返回流量会自动被允许。NACL 要求指定每个方向的防火墙规则,包括临时端口。因此,安全组更易于使用。
对于您的情况,我建议您添加一条安全组规则,允许从您的 /32 IP 访问您需要的每种协议。IP 位于最右边的列中。
第二个问题-VPN
OpenVPN 不会更改任何内容的 IP 地址,可以将其视为网关。您的计算机连接到 EC2 实例,然后就可以访问 EC2 实例拥有的任何访问权限。如果我们知道您尝试使用 VPN 实现什么目的,我们可能会提供更好的建议。
考虑到您更新后的要求,我可能会使用公共子网中的 EC2 服务器作为 VPN 终端和 NAT 实例,并使用私有子网中的私有实例 EC2。您的 NACL 和安全组将设置为允许通过 NAT 进行传出互联网访问,但拒绝 VPN 实例以外的传入连接。
我不确定单个实例是否可以作为 VPN 终结器和 NAT。我怀疑它可以。
答案2
是的,您可以在“入站规则”选项卡下的源列中添加单个 IP 地址(例如 98.138.253.109/32)或 IP 块(例如 98.138.253.0/24),如屏幕截图所示。
根据您的第二个问题,如果您在 EC2 实例上设置了 OpenVPN,您仍然必须添加入站规则以允许从连接到 EC2 实例的任何位置访问 VPN 端口(UDP 1194)。
话虽如此,你为什么要设置 VPN?只需添加规则以允许尽可能多的网络/IP 连接,我相信这些网络/IP 是有限的。