Перейти до вмісту

Статична вихідна IP-адреса

Клієнти, чиї приймачі стоять за брандмауером, питають, з якої IP-адреси приходять ваші вебхуки. Ця сторінка показує, як дати їм фіксовану адресу.

У Railhook немає такого налаштування. HTTP-клієнт worker не має параметра forward-проксі й не читає HTTP_PROXY чи HTTPS_PROXY. Розв’яжіть задачу рівнем нижче: worker — єдиний компонент, що надсилає доставки, тож фіксація вихідної адреси worker фіксує її для кожного вебхука, який ви надсилаєте.

worker → your network's outbound address → your customer's endpoint
this is the address they allowlist

За замовчуванням ця адреса — те, що випадково використовує ваша інфраструктура: публічна IP-адреса вузла, спільний пул NAT, адреса, яка змінюється при заміні вузла. Жодну з них не можна внести до списку дозволених.

Варіант 1: NAT-шлюз зі статичною IP-адресою

Section titled “Варіант 1: NAT-шлюз зі статичною IP-адресою”

Поставте підмережу worker за керованим NAT-шлюзом зі статичною адресою. Тоді кожне вихідне з’єднання використовує цю адресу. Почніть із цього: налаштування Railhook не потрібні, а заміна вузла нічого не ламає.

Середовище Сервіс Що прикріпити
AWS NAT Gateway Elastic IP, у таблиці маршрутів приватної підмережі вузлів worker
Google Cloud Cloud NAT Зарезервовану статичну зовнішню IP-адресу
Azure NAT Gateway Статичну публічну IP-адресу
Інші провайдери, bare metal Хост-шлюз Плаваючу IP-адресу, з маршрутом worker за замовчуванням через неї

Варіант 2: окремий пул вузлів

Section titled “Варіант 2: окремий пул вузлів”

Якщо фіксовану адресу має використовувати лише трафік вебхуків, запускайте worker на вузлах за NAT, а інші навантаження — деінде. Так трафік панелі, резервні копії й завантаження образів не займають адресу, яка може бути дорогою чи обмеженою за частотою.

Варіант 3: вихідний шлюз

Section titled “Варіант 3: вихідний шлюз”

Якщо ви вже використовуєте service mesh або вихідний шлюз, як-от egress gateway Istio чи Cilium, спрямуйте трафік worker через нього. Перенаправлення відбувається нижче застосунку, тому воно й працює без налаштування Railhook.

Вихідний шлюз — також добре місце, щоб журналювати або обмежувати, куди йдуть доставки. Він доповнює власний захист Railhook від SSRF, який перевіряє кожен URL доставки до побудови запиту й відхиляє приватні адреси, якщо їх не дозволяє WEBHOOK_ALLOW_PRIVATE_IPS або WEBHOOK_ALLOWED_HOSTS. Він цей захист не замінює.

Опублікуйте адреси там, де клієнти прочитають їх, не питаючи, і вкажіть:

  1. Кожну адресу, яка може використовуватися.
  2. Що список може змінитися і з яким попередженням. Список дозволених, змінений без попередження, — це збій на чужій інфраструктурі.

Це стосується лише вебхуків, які надсилаєте ви. Провайдерам, що надсилають вебхуки до Railhook, потрібна ваша ingress-адреса, а не список дозволених.