我能想到的一个解决方案是跟踪我的ELB的IP地址池并将它们在服务器上列出一些文件给客户端?也许这很麻烦,但我很难找到关于这方面经验的信息或文章,尽管我无法想象它是一种罕见的情况.
是否有任何常用方法可以为人们提供ELB使用的IP地址池?或者这是荒谬的,他们只需要使用一些可以将DNS地址列入白名单的解决方案?
解决方法
Is there any common method to provide people the pool of IP addresses
my ELB uses?
是的,ELB是基于EC2构建的,AWS在特定区域使用a list of all public IP ranges.假设您的ELB可以使用的每个IP都属于其所在地区的公布范围,应该是安全的.
这些IP范围如有更改,恕不另行通知,但AWS维护的JSON格式为current list,可用于自动维护白名单.
另一方面,这是多余的,因为DNS的整个要点是提供与主机名相关联的IP的当前列表.
Or is that ridiculous and they’d just have to use some solution which
can whitelist DNS addresses?
他们不能将主机名列入白名单并不完全是荒谬的,因为任何支持这种情况的防火墙解决方案都必须在运行时将DNS主机名解析为IP,然后尊重TTL以使该列表保持最新,或者在第7层并检查主机HTTP头字段.
有点不寻常的是他们想要列出出站连接的白名单,想要列入入站连接的白名单更常见(例如当你试图访问他们的API时),在这种情况下你可以分配你的实例. ELB是EIP所以当您的应用程序服务器启动出站连接时,它们具有静态IP(尽管这样做会妨碍自动扩展).
一般而言,ELB并不是每个人的灵丹妙药,它为90%的用例提供了显着的好处(例如透明缩放),而牺牲了少数潜在用户.如果您真的需要为负载均衡器提供静态IP,那么OpsWorks makes orchestrating HAProxy几乎一样容易.