Белый список Heroku

У нас есть приложение Heroku Rails, которому требуется доступ к очень большому кластеру Elasticsearch. Мы рассмотрели возможность использования таких сервисов Heroku Elasticsearch, как Bonsai, но они очень быстро растут в цене. Поэтому мы решили использовать сервис AWS Elasticsearch.

Кластер Elasticsearch можно защитить, полностью отключив его от Интернета, используя обратный прокси-сервер или добавив в белый список источники трафика.

Теоретически можно занести в белый список. регион, в котором находится приложение Heroku, путем внесения в белый список всего базового региона AWS. Хотя это все еще большой блок IP-адресов и возможно, что сканеры портов могут запускаться из AWS, это все же улучшение.

Однако список IP-адресов в белый список довольно длинный (см. Ниже). Есть ли лучший способ сделать это?

Подтвердите регион AWS

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

Разберите его

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"

и т. Д.

1
задан 14 June 2017 в 20:13
1 ответ

Не уверен на 100%, понял ли я ваш вопрос, но он кажется похожим на этот вопрос из справки Heroku.

Из их ответа:

IP-адреса в использование Heroku в любой момент времени очень динамично, что означает что опубликованные диапазоны могут охватывать другие IP-адреса, которые в настоящее время используется Heroku. Это означает, что открываться часто нежелательно. ваш брандмауэр для всего региона AWS из соображений безопасности. Если вы хотели сделать это независимо от того, можете ли вы найти опубликованные диапазоны IP-адресов из AWS здесь: http://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html

Для приложений в Common Runtime лучшим подходом было бы использование надстройка для предоставления статического исходящего IP-адреса https://elements.heroku.com/addons/categories/network или положиться на безопасная связь через TLS.

Таким образом, вы можете рассмотреть возможность использования надстройки, которая предоставляет статические IP-адреса.

По моему собственному опыту, я использовал QuotaGuard Static , и я счастливый клиент. Он очень прост в использовании (как и многие вещи в Heroku).

Однако это может оказаться дорогостоящим решением, если вам нужно выполнить много запросов.

2
ответ дан 3 December 2019 в 20:21

Теги

Похожие вопросы