检测http请求是否来自我们帐户中的EC2实例

时间:2013-03-25 22:02:05

标签: amazon-web-services

我们有一个通过网络服务进行通信的应用。我们需要区分来自系统外部的请求和来自我们AWS账户中另一个EC2框的请求。

理想的解决方案是查看原始IP地址并检测它是在网络内部还是外部。在我们的办公室,我们需要做的就是查找192.168.x.x的请求。不过,我的猜测是亚马逊并不是那么简单。

如何判断http请求是否来自我帐户中的EC2实例?

4 个答案:

答案 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地址列表。