我们有一个通过网络服务进行通信的应用。我们需要区分来自系统外部的请求和来自我们AWS账户中另一个EC2框的请求。
理想的解决方案是查看原始IP地址并检测它是在网络内部还是外部。在我们的办公室,我们需要做的就是查找192.168.x.x的请求。不过,我的猜测是亚马逊并不是那么简单。
如何判断http请求是否来自我帐户中的EC2实例?
答案 0 :(得分:2)
如果EC2实例位于同一区域,则可以创建一个安全组,该安全组允许流量仅从该安全组中的其他计算机进入特定端口号(例如,8888)。将所有计算机添加到该组。然后,您可以添加另一个Web服务器实例来侦听该端口,并知道请求只能来自您的计算机。
答案 1 :(得分:2)
如果您有两个或更多需要相互通信的EC2实例,最佳做法是在VPC内配置您的实例。有效地划分AWS云网络的一角,供您自己的私人使用(类似于VLAN)。这很容易解决您的问题,因为请求将来自您指定的任何私有地址范围。
答案 2 :(得分:1)
实际上,只需查看请求是否来自EC2保留的任何AWS public IP address ranges。基本上与检查192.168.x.x
相同希望有所帮助!
答案 3 :(得分:1)
在您的应用中,您可以简单地限制对其他实例的IP的访问。
使用AWS Unified CLI Tools和可选(但推荐)jq工具,您可以执行以下操作:
aws ec2 describe-instances \
| jq ".Reservations[].Instances[].NetworkInterfaces[].IpAddress"
这将为您提供与您的AWS账户关联的所有EC2实例的所有IP地址列表。