CIDR: Обмеження доступу до Платформних та реєстрових компонентів

🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію.

1. Загальні функціональні можливості

Задля безпечного доступу до компонентів кластера OpenShift 4.x, можна обмежувати доступ до компонентів, що використовуються на Платформі.

Виділяють три основних типи компонентів у системі:
  • Платформні

  • Реєстрові

  • Інфраструктурні

Платформа реалізує функціональність блокування доступу до кожного маршруту (route) на рівні HAProxy[1].

Обмежити доступ до маршрутів технічно означає дозволити його лише для обраних IP-адрес за допомогою правил безкласової маршрутизації CIDR[2].

Дозволені (whitelist) IP-адреси необхідно обов’язково вказувати разом із маскою підмережі.

Іншими словами, адміністратор може вказати як одну IP-адресу (192.168.1.1/32), так і цілу підмережу, яка містить пул із багатьох IP-адрес (наприклад, пул із 510 доступних адрес — 192.168.0.0/23).

Детальніше про маски підмережі та IPv4-адресацію ви можете переглянути за посиланням.

2. Обмеження доступу до компонентів реєстру

2.1. Додавання CIDR при створенні реєстру

При створенні реєстру Адміністратором, інтерфейс Control Plane надає можливість вказати IP-адреси, з яких буде дозволено доступ до реєстрових компонентів.

Адміністратор має можливість задавати список IP-адрес окремо для Кабінету посадової особи, або отримувача послуг, та окремо для адміністративних компонентів.

Кожен компонент має містити публічну IP-адресу кластера. Keycloak, своєю чергою, має містити всі CIDR з інших операційних зон, або бути доступним усім, якщо Кабінет отримувача послуг не має обмежень.
Для того, щоб налаштувати CIDR для компонентів реєстру, виконайте наступні кроки:
  1. Увійдіть до адміністративної панелі керування платформою та реєстрами Control Plane, використовуючи попередньо отримані логін та пароль.

    update cluster mgmt 01
    Зображення 1. Сторінка входу до адміністративної панелі
  2. Відкрийте меню Реєстри та створіть новий реєстр, натиснувши відповідну кнопку.

    Детальніше про створення реєстрів ви можете переглянути за посиланням:

    cp registry deploy 1
    Зображення 2. Розділ керування реєстрами
  3. Пройдіть усіма кроками створення реєстру та зупиніться на секції Обмеження доступу.

    cp create registry 8
    Зображення 3. Інтерфейс додавання CIDR

    Тут ви можете додавати CIDR для Кабінетів користувача та адміністративних компонентів.

  4. Натисніть + (Додати). У новому вікні введіть IP-адреси та маски підмережі, до яких вони належать. Далі натисніть Підтвердити.

    Допустимі символи "0-9", "/", ".". Приклад: 172.16.0.0/12.
    cp cidr 2
    Зображення 4. Внесення IP-адрес(и) та маски підмережі

    Якщо вказані IP-адреси та маска не відповідають формату a.b.c.d/х, то адміністратор отримає системну помилку:

    Перевірте формат IP-адреси

    cp cidr 3
  5. Додайте необхідну кількість CIDR. Результат додавання може виглядати так:

    cp cidr 4 1
    Зображення 5. Результат додавання CIDR
  6. Натисніть Далі, щоб завершити створення реєстру.

    В результаті формується запит на внесення змін до конфігурації реєстру, переглянути який можна у секції Запити на оновлення.

    Детальніше про перегляд та підтвердження запитів у Control Plane ви можете ознайомитися на сторінці Підтвердження запитів на внесення змін до реєстру
    cp cidr 8
  7. Відкрийте сформований запит, натиснувши іконку перегляду — 👁.

  8. У новому вікні зіставте 2 версії змін, переконайтеся, що внесені вами дані вірні та натисніть Підтвердити.

    cp cidr 8 1
    Запропоновані зміни вносяться до конфігурації файлу deploy-templates/values.yaml у разі підтвердження.

Введені IP-адреси додаються до конфігурації у файлі values.yaml у наступному форматі:

+ .Додавання дозволених IP-адрес та підмереж до конфігурації реєстру у values.yaml

global:
  whiteListIP:
    adminRoutes: "192.168.1.64/26 172.16.0.192/27"
    officerPortal: "192.168.1.240/29"
    citizenPortal: "0.0.0.0/0"
  1. Дочекайтеся, доки Jenkins виконає збірку MASTER-Build-<registry-name>. Це може зайняти декілька хвилин.

2.2. Додавання або видалення CIDR при редагуванні реєстру

При редагуванні вже наявного реєстру, адміністратор також може задати або видалити IP-адреси, з яких буде дозволено доступ до реєстрових компонентів. Інтерфейс адміністрування платформи оновлює внесені IP-адреси у файлі values.yaml в конфігураційному репозиторії реєстру.

Детальніше про редагування реєстрів ви можете переглянути за посиланням:

Інтерфейс додавання та принцип роботи із CIDR є однаковим як при створенні реєстру, так і при редагуванні (див. розділ Додавання CIDR при створенні реєстру цього документа).

За необхідності, при редагуванні реєстру ви можете видалити наявні CIDR зі списку. Для цього перейдіть до розділу Обмеження доступу, натисніть 🗑 (іконку видалення) CIDR та підтвердьте свої дії.

cp cidr 4

3. Обмеження доступу до платформних, інфраструктурних та інших компонентів

У розділі Керування Платформою адміністратор може задати CIDR для обмеження зовнішнього доступу для платформних та інфраструктурних компонентів (роутів). Інтерфейс адміністрування платформи створює запит на зміну (MR) в файлі values.yaml. Після затвердження адміністратором, пайплайн Master-Build-cluster-mgmt виконує оновлення та додавання необхідних анотацій.

CIDR внесені адміністратором для реєстру повинні також бути додані для платформних компонентів автоматично.
  1. Відкрийте меню Керування Платформою.

  2. У правому верхньому куті сторінки натисніть Редагувати.

    update cluster mgmt 1

  3. На сторінці, що відкрилася, знайдіть секцію Перелік дозволених CIDR.

    cp cidr 5
  4. Натисніть + (Додати). У новому вікні введіть IP-адреси та маски підмережі, до яких вони належать. Далі натисніть Підтвердити.

    Допустимі символи "0-9", "/", ".". Приклад: 172.16.0.0/12.
  5. Введіть необхідну кількість CIDR та натисніть Підтвердити.

    cp cidr 6
    Зображення 6. Внесення IP-адрес(и) та маски підмережі

    В результаті формується запит на внесення змін до конфігурації Платформи, переглянути який можна у секції Запити на оновлення.

    Детальніше про перегляд та підтвердження запитів у Control Plane ви можете ознайомитися на сторінці Підтвердження запитів на внесення змін до реєстру
    cp cidr 7
  6. Відкрийте сформований запит, натиснувши іконку перегляду — 👁.

  7. У новому вікні зіставте 2 версії змін, переконайтеся, що внесені вами дані вірні та натисніть Підтвердити.

    cp cidr 7 1
    Запропоновані зміни вносяться до конфігурації файлу deploy-templates/values.yaml у разі підтвердження.

    Введені IP-адреси додаються до конфігурації Платформи у файлі values.yaml у наступному форматі:

    Приклад 1. Додавання дозволених IP-адрес та підмереж та до конфігурації Платформи у values.yaml
    global:
      whiteListIP:
        adminRoutes: "192.168.1.64/26 172.16.0.192/27"
  8. Дочекайтеся, доки Jenkins виконає збірку Master-Build-cluster-mgmt. Це може зайняти декілька хвилин.


1. HAProxy — це сервіс балансування навантаження, який є проксі-сервером. В рамках OpenShift-кластера маршрутизатор приймає URL-маршрут, пов’язаний із застосунком, і надсилає запити до відповідного модуля, щоб повернути дані користувачеві, який їх запитує.
2. CIDR — метод IP-адресації, що дозволяє гнучко керувати простором IP-адрес з використанням безкласової адресації.