Обмеження доступу до SOAP інтерфейсів з ШБО Трембіта
Як адміністратор реєстру, я хочу обмежувати доступ до SOAP API інтерфейсів, що використовуються ШБО Трембіта
1. Загальний опис
Реєстрові компоненти bp-webservice-gateway та registry-soap-api не мають механізму аутентифікації та авторизації та призначені для виклику тільки через ШБО Трембіта. Для безпечного використання SOAP API інтерфейсів, адміністратору необхідно надати можливість дозволяти комунікацію тільки з обмеженого переліку IP-адрес.
Ролі користувачів
-
Технічний адміністратор реєстру
2. Функціональні сценарії
-
Обмеження доступу до SOAP API реалізованих у двох сервісах bp-webservice-gateway та registry-soap-api
3. Загальні принципи та положення
-
На інтерфейсі створення та редагування реєстру адмін-консолі є розділ "ШБО Трембіта"
-
Присутня можливість вказати перелік IP-адрес ШБО Трембіта, з яких буде дозволений доступ до bp-webservice-gateway та registry-soap-api
-
Зі всіх інших IP-адрес доступ до роутів bp-webservice-gateway та registry-soap-api обмежений
-
Дозволено введення тільки IP-адрес, а не підмереж (CIDR)
-
Кількість IP-адрес обмежена 10
-
Внесені IP-адреси повинні перевірятись на що це дійсно валідна IP-адреса без маски підмережі на рівні адмін-консолі та Jenkins-пайплайна
-
Технічний адміністратор відповідальний за коректність налаштувань та що за внесеними адресами дійсно Трембіта
-
Якщо перелік
ipList
не містить жодної IP-адреси, то доступу до SOAP API немає взагалі (роут не створюється)
4. Поточне рішення
Комунікація наразі відбувається наступним чином
При налаштуванні інтеграції з зовнішніми системами, Платформа не знає з яких IP-адрес буде заходити трафік, тому роут bp-webservice-gateway
має бути відкритий для всіх. З іншої сторони, ШБО не вміє аутентифікуватись на bp-webservice-gateway
, тому роут
повинен бути обмежений, так як для SOAP трафіку аутентифікації немає.
5. Технічний дизайн рішення
Після внесення IP-адрес в інтерфейсі адмін-консолі, система додає їх в перелік values.yaml в наступному вигляді:
trembita:
ipList:
- 8.8.8.8
- 8.8.4.4
registries:
dracs-registry:
.....
В результаті конфігурації компонентів підсистеми зовнішніх інтеграцій анотація
metadata:
annotations:
haproxy.router.openshift.io/ip_whitelist: 8.8.8.8/32 8.8.4.4/32
додається до OpenShift роутів компонентів bp-webservice-gateway та registry-soap-api.
Анотація додається тільки до OpenShift роутів |
Додатково OpenShift роут до bp-webservice-gateway стають "path-based" та має наступну конфігурацію:
Компонент |
Хост |
Шлях |
Сервіс |
bp-webservice-gateway |
bp-webservice-gateway-<registry-name>.<dns-wildcard> |
/ws |
bp-webservice-gateway |
Цільовий дизайн має наступний вигляд:
5.1. Орієнтовні макети дизайну адмін-консолі
Актуальні макети можна знайти за посиланням
5.2. Компоненти реєстру та їх призначення в рамках дизайну рішення
Компонент |
Службова назва |
Призначення / Суть змін |
API-шлюз для викликів БП зовнішніми системами |
bp-webservice-gateway |
Додання анотації / шляху |
API-шлюз для читання даних реєстру зовнішніми системами |
registry-soap-api |
Додання анотації |
Веб-інтерфейс управління Платформою та реєстрами |
control-plane-console |
Зміни в інтерфейсі користувача |
Registry-soap-api генерується в компоненті service-generation-utility |
6. План розробки
6.1. Технічні експертизи
-
BE
-
DevOps
6.2. План розробки
-
Змінити інтерфейс користувача адмін-консолі відповідно до макетів
-
Зберігати внесені IP-адреси в налаштуваннях values.yaml реєстру
-
Обробити внесені IP-адреси на рівні чартів компонентів
7. Міграція даних
Перед оновленням реєстри які вже використовують ШБО Трембіта, треба в values.yaml
налаштуваннях прописати IP-адреси Трембіти.
Зробити інструкцію по оновленню URL для bp-webservice-gateway
в ШБО
== Безпека
7.1. Бізнес Дані
Категорія Даних |
Опис |
Конфіденційність |
Цілісність |
Доступність |
Технічні дані що містять інформацію з обмеженим доступом |
Налаштування системи, конфіги, параметри що містять інформацію з обмеженим доступом зміна яких може негативно вплинути на атрибути системи |
Середня |
Висока |
Висока |
7.2. Механізми протидії ризикам безпеки та відповідність вимогам безпеки
Усі ризики було усунено в архітектурному дизайні |