Обмеження доступу до 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. Поточне рішення

Комунікація наразі відбувається наступним чином

trembita-access-restrictions

При налаштуванні інтеграції з зовнішніми системами, Платформа не знає з яких IP-адрес буде заходити трафік, тому роут bp-webservice-gateway має бути відкритий для всіх. З іншої сторони, ШБО не вміє аутентифікуватись на bp-webservice-gateway, тому роут повинен бути обмежений, так як для SOAP трафіку аутентифікації немає.

5. Технічний дизайн рішення

soap-api-restrictions
Зображення 1. Верхньорівнева діаграма взаємодії на рівні підсистем

Після внесення 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 роутів
soap-api-restrictions-2
Зображення 2. Верхньорівнева діаграма взаємодії на рівні розгортання конфігурації

Додатково OpenShift роут до bp-webservice-gateway стають "path-based" та має наступну конфігурацію:

Компонент

Хост

Шлях

Сервіс

bp-webservice-gateway

bp-webservice-gateway-<registry-name>.<dns-wildcard>

/ws

bp-webservice-gateway

Послідовність конфігурації
Зображення 3. Послідовність конфігурації

Цільовий дизайн має наступний вигляд:

soap-api-restrictions

5.2. Компоненти реєстру та їх призначення в рамках дизайну рішення

Компонент

Службова назва

Призначення / Суть змін

API-шлюз для викликів БП зовнішніми системами

bp-webservice-gateway

Додання анотації / шляху

API-шлюз для читання даних реєстру зовнішніми системами

registry-soap-api

Додання анотації

Веб-інтерфейс управління Платформою та реєстрами

control-plane-console

Зміни в інтерфейсі користувача

Registry-soap-api генерується в компоненті service-generation-utility

6. План розробки

6.2. План розробки

  • Змінити інтерфейс користувача адмін-консолі відповідно до макетів

  • Зберігати внесені IP-адреси в налаштуваннях values.yaml реєстру

  • Обробити внесені IP-адреси на рівні чартів компонентів

7. Міграція даних

Перед оновленням реєстри які вже використовують ШБО Трембіта, треба в values.yaml налаштуваннях прописати IP-адреси Трембіти. Зробити інструкцію по оновленню URL для bp-webservice-gateway в ШБО == Безпека

7.1. Бізнес Дані

Категорія Даних

Опис

Конфіденційність

Цілісність

Доступність

Технічні дані що містять інформацію з обмеженим доступом

Налаштування системи, конфіги, параметри що містять інформацію з обмеженим доступом зміна яких може негативно вплинути на атрибути системи

Середня

Висока

Висока

7.2. Механізми протидії ризикам безпеки та відповідність вимогам безпеки

Усі ризики було усунено в архітектурному дизайні