2

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

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

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

4

4 回答 4

2

如果 EC2 实例位于同一区域,您可以创建一个安全组,该安全组仅允许来自该安全组中其他计算机的流量通过特定端口号(例如 8888)进入。将所有机器添加到该组。然后,您可以添加另一个 Web 服务器实例来侦听该端口,并知道请求只能来自您的计算机。

于 2013-03-26T00:19:08.743 回答
2

每当您有两个或更多 EC2 实例需要相互通信时,最佳实践是在VPC中预置您的实例。有效地将 AWS 云网络的一个角落分割为您自己的私人用途(类似于 VLAN)。这很容易解决您的问题,因为请求将来自您指定的任何私有地址范围。

于 2013-03-26T01:28:57.243 回答
1

实际上,只需查看请求是否来自EC2 保留的任何 AWS公共 IP 地址范围。与检查 192.168.xx 基本相同

希望有帮助!

于 2013-03-25T22:04:47.413 回答
1

在您的应用程序中,您可以简单地专门限制对其他实例的 IP 的访问。

使用AWS Unified CLI 工具和可选的(但推荐的)jq工具,您可以执行以下操作:

aws ec2 describe-instances \
    | jq ".Reservations[].Instances[].NetworkInterfaces[].IpAddress"

这将为您提供与您的 AWS 账户关联的所有 EC2 实例的所有 IP 地址的列表。

于 2013-03-26T06:47:45.660 回答