AWS 安全组是否适用于实例上进程之间的通信?

AWS 安全组是否适用于实例上进程之间的通信?

入站和出站流量规则是否适用于实例内部进程之间的通信?

例如,我的 MongoDB 实例在端口 27017 上运行,而我的 Node.js 应用程序正在同一服务器上监听端口 80 和 443。如果我只打开了端口 80 和 443 的出站和入站规则,而没有向公众开放 27017 的出站/入站,我的 Node.js 应用程序是否仍能连接到 MongoDB 实例?

如果可能的话,我正在尝试将我的 MongoDB 实例限制为本地连接,以防止通过这种方法进行远程 ssh 连接。

答案1

简短答案:不,他们没有。

长答案:安全组在虚拟 NIC 级别工作,这意味着它们能够控制哪些内容“进入”EC2 实例以及哪些内容“离开”EC2 实例。安全组无法控制操作系统内进程之间的通信。

安全的方式

  1. 创建新的 VPC
  2. 创建一个托管 Node.js 应用程序的公共子网
  3. 创建托管 MongoDB 数据库的私有子网
  4. 附加一个安全组(例如,sg-app托管 Node.js 应用程序的 EC2 实例),允许在端口 80 和 443 上进行入站和出站,源和目标是0.0.0.0/0
  5. 附加一个安全组(例如,sg-db托管 MongoDB 数据库的 EC2 实例允许在端口 27017 上进行入站和出站,源和目标是sg-1[是的,您可以在安全组规则中将安全组指定为源/目标]

相关内容