首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Heroku怀特莱

Heroku怀特莱
EN

Server Fault用户
提问于 2017-06-14 07:05:41
回答 1查看 2.2K关注 0票数 1

我们有一个Heroku应用程序,需要访问一个非常大的Elasticsearch集群。我们已经考虑过使用Heroku Elasticsearch服务,比如盆景,但它们的价格增长很快。因此,我们决定使用AWS Elasticsearch服务。

Elasticsearch集群可以通过完全远离互联网、使用反向代理或白名单来保护其流量来源。

理论上,通过白名单整个基础AWS区域,可以将Heroku应用程序所在的区域白名单。虽然这仍然是一个庞大的it块,并且端口扫描器可以在AWS中运行,但它仍然是一个改进。

然而,到白名单的IP列表相当长(见下文)。有更好的方法吗?

确认AWS区域

代码语言:javascript
复制
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"
}

下载AWS区域文件

https://ip-ranges.amazonaws.com/ip-ranges.json

Parse it

代码语言:javascript
复制
jq '.prefixes[] | select(.region=="eu-west-1")' < ip-ranges.json

许多条目:

代码语言:javascript
复制
{
  "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"

EN

回答 1

Server Fault用户

发布于 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中的许多东西)。

但是,如果您需要运行大量查询,那么它可能是一个昂贵的解决方案。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/855670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档