Назад | Перейти на главную страницу

Как обойти белый список IP-адресов при использовании стороннего API?

Мы используем службу, API которой отклоняет запросы, если исходный IP-адрес не был ранее внесен в белый список. Они дают нам только 3 слота, что является проблемой, потому что у нас более 3 машин, которым необходимо использовать API.

Каков наиболее распространенный способ решения этой проблемы?

Примечание: Я не пытаюсь что-либо сделать против Условий использования стороннего API. Мы используем ResellerClub и я связался с ними, чтобы попросить больше слотов, но они ответили:

Я прошу вас любезно направить ваши серверы на несколько наборов IP-адресов.

Отсюда этот вопрос.


Мысли:

Наша архитектура: Мы используем AWS, и наши экземпляры в VPC работают за ELB. Мы часто запускаем новые экземпляры, не зная заранее IP-адреса. У нас одинаковое программное обеспечение на всех машинах. На машинах работает CoreOS, а наше приложение работает в контейнерах Docker.

Достаточно распространенная инфраструктура - это инфраструктура, в которой ни один из реальных серверов приложений не имеет общедоступных IPv4-адресов, они будут находиться в диапазоне частной сети RFC 1918 за балансировщиком нагрузки, и любой исходящий запрос, который они делают, будет либо:

  • маршрутизируется через шлюз NAT, создавая видимость единого исходного IP-адреса
  • должен выполняться через прокси-сервер, который соединяет частный диапазон IP-адресов и большую часть Интернета.

Я думал, что опубликую обновление, так как проект теперь успешно завершен с использованием экземпляра NAT.

Следует ли мне обратить внимание на использование «экземпляра NAT»? Выглядит сложно - разве нет более простого решения?

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

Официальные инструкции по настройке экземпляра NAT от AWS работали хорошо: http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html . Мы использовали AMI, предоставляемый Amazon для загрузки инстанса NAT. Пройдя через этот процесс, я понял, насколько это «отраслевой стандарт», может быть, даже «лучшая практика».

Недостатки:

  1. Экземпляр NAT становится единственной точкой отказа. Поскольку весь внешний трафик, исходящий с наших веб-серверов, проходит через него, в случае сбоя экземпляры не смогут подключиться к Интернету для получения обновлений программного обеспечения, вызова внешних API-интерфейсов (например, платежных шлюзов), и мы не сможем подключиться к SSH. экземпляры.
  2. Использование дополнительной машины стоит денег и требует большего обслуживания. (t2.small не очень дорого, а стандартный AMI не требует модификации, поэтому не требует большого обслуживания).
  3. У экземпляров будет более медленное внешнее сетевое соединение. (Я пока не заметил разницы).
  4. Мы не можем напрямую подключиться к экземплярам по SSH, нам нужно пройти через экземпляр NAT (с помощью агента SSH). Звучит хуже, чем есть на самом деле. Если вы потратите несколько минут на редактирование .ssh/config и читайте дальше "ProxyCommand"вы можете сделать вещи на 100% прозрачными, чтобы просто ssh server1 работает.
  5. Мы больше не можем тестировать конкретный сервер в кластере, используя его общедоступный IP-адрес (или имея DNS-запись для конкретной машины). Это то, что можно быстро преодолеть. Обходной путь, если вам действительно нужно убедиться, что вы попали в одну машину, - это создать новый ELB и поместить в пул экземпляров только ту машину, на которую вы хотите настроить таргетинг.