我们有一个Heroku应用程序,需要访问一个非常大的Elasticsearch集群。我们已经考虑过使用Heroku Elasticsearch服务,比如盆景,但它们的价格增长很快。因此,我们决定使用AWS Elasticsearch服务。
Elasticsearch集群可以通过完全远离互联网、使用反向代理或白名单来保护其流量来源。
理论上,通过白名单整个基础AWS区域,可以将Heroku应用程序所在的区域白名单。虽然这仍然是一个庞大的it块,并且端口扫描器可以在AWS中运行,但它仍然是一个改进。
然而,到白名单的IP列表相当长(见下文)。有更好的方法吗?
curl -n -X GET https://api.heroku.com/regions/eu -H "Accept:
application/vnd.heroku+json; version=3"
{
"country":"Ireland",
"created_at":"2013-09-19T01:29:12Z",
"description":"Europe",
"id":"ed30241c-ed8c-4bb6-9714-61953675d0b4",
"locale":"Dublin",
"name":"eu",
"private_capable":false,
"provider":{
"name":"amazon-web-services",
"region":"eu-west-1"
},
"updated_at":"2016-08-09T22:03:28Z"
}https://ip-ranges.amazonaws.com/ip-ranges.json
jq '.prefixes[] | select(.region=="eu-west-1")' < ip-ranges.json许多条目:
{
"ip_prefix": "52.218.0.0/17",
"region": "eu-west-1",
"service": "S3"
}
{
"ip_prefix": "54.231.128.0/19",
"region": "eu-west-1",
"service": "S3"
}
{
"ip_prefix": "34.240.0.0/13",
"region": "eu-west-1",
"service": "EC2"
}
{
"ip_prefix": "34.248.0.0/13",
"region": "eu-west-1",
"service": "EC2"等
发布于 2018-12-07 11:48:26
不是100%确定我是否理解你的问题,但它似乎类似于来自Heroku帮助的这个问题。
根据他们的答复:
Heroku在任何给定时间使用的IP都是高度动态的,这意味着发布的范围可能包括Heroku目前没有使用的其他IP地址。这意味着,出于安全原因,向整个AWS区域开放防火墙通常是不可取的。如果您想这样做,不管您在这里可以找到AWS发布的IP范围:http://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html用于公共运行时中的应用程序,更好的方法应该是使用加载项来提供静态的出站IP地址https://elements.heroku.com/addons/categories/network,或者依赖于通过TLS进行安全通信。
因此,您可以考虑使用提供静态IP的外接程序。
根据我自己的经验,我一直在使用QuotaGuard静态,我是一个快乐的客户。它非常容易使用(就像Heroku中的许多东西)。
但是,如果您需要运行大量查询,那么它可能是一个昂贵的解决方案。
https://serverfault.com/questions/855670
复制相似问题