Статична вихідна 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. Він цей захист не замінює.
Що сказати клієнтам
Section titled “Що сказати клієнтам”Опублікуйте адреси там, де клієнти прочитають їх, не питаючи, і вкажіть:
- Кожну адресу, яка може використовуватися.
- Що список може змінитися і з яким попередженням. Список дозволених, змінений без попередження, — це збій на чужій інфраструктурі.
Це стосується лише вебхуків, які надсилаєте ви. Провайдерам, що надсилають вебхуки до Railhook, потрібна ваша ingress-адреса, а не список дозволених.