Ограничение административного доступа по IP-адресу
Компонент ip_limiter в сервисе keystone фильтрует запросы по IP-адресу.
Доступ с административными правами предоставляется только с IP-адресов из списка разрешенных подсетей.
Сервис keystone предоставляет два вида API, для каждого из которых действует отдельный ip_limiter и отдельный набор настроек:
-
API для получения или перевыпуска токена. Используется при входе по логину и паролю, при перевыпуске имеющегося токена или при входе через IAM.
Если у пользователя установлен признак
is_admin, войти можно только с IP-адреса из списка разрешенных подсетей. От этогоip_limiterзависит вход в Портал администратора и работа интегрируемых систем, которые входят по логину и паролю. -
Остальные API, включая проверку токена. Используются для обработки запросов с действующим токеном.
Если в токене есть роль
admin, запрос выполняется только с IP-адреса из списка разрешенных подсетей. Проверка выполняется на уровне middleware. Названия соответствующих настроек имеют инфикс_middleware_. От этогоip_limiterзависят все остальные административные операции, выполняемые по токену.
Параметр keystone_ip_limiter_admin_ip_list_additional содержит список подсетей, из которых открыт доступ для входа на Портал администратора или для интеграции с внешними системами.
Значение параметра задается при установке VK Private Cloud.
...keystone_ip_limiter_admin_ip_list_additional:- 10.10.30.0/24- 100.70.16.0/22...
Помимо списка разрешенных подсетей, ip_limiter поддерживает дополнительные настройки:
-
helm_keystone_ip_limiter_enabled— фильтрация по IP-адресу при получении и перевыпуске токена:true— фильтрация включена (по умолчанию);false— фильтрация отключена.
-
helm_keystone_ip_limiter_middleware_enabled— фильтрация по IP-адресу при обработке запросов с действующим токеном:true— фильтрация включена (по умолчанию);false— фильтрация отключена.
-
helm_keystone_ip_limiter_middleware_validate_forbidden_ip— блокировка доступа с IP-адресов, не входящих в список разрешенных, при обработке запросов с действующим токеном:true— блокировка включена (по умолчанию);false— блокировка отключена. Доступ разрешен с любого IP-адреса, а информация о попытках входа с IP-адресов, не входящих в список разрешенных, записывается в лог.
Список разрешенных подсетей и дополнительные настройки ip_limiter можно изменить на уже развернутой инсталляции VK Private Cloud.
Чтобы изменить настройки ip_limiter:
-
Подключитесь к деплой-ноде по SSH (подробнее — в разделе Подключение к деплой-ноде).
-
Откройте для редактирования нужный файл:
/opt/vkcloud/inventory/vkcloud/group_vars/vkcloud/vars.yml— для изменения списка разрешенных подсетей (keystone_ip_limiter_admin_ip_list_additional)./opt/vkcloud/inventory/vkcloud/group_vars/vkcloud_kube/keystone.yml— для изменения дополнительных настроек (helm_keystone_ip_limiter_enabled,helm_keystone_ip_limiter_middleware_enabled,helm_keystone_ip_limiter_middleware_validate_forbidden_ip).
-
Измените значения нужных параметров.
-
Сохраните изменения в файле.
-
Перезапустите плейбук для сервиса
keystone:$ cd /opt/vkcloud/inventory/vkcloud/$ ansible-playbook -i vkcloud.yml -e env=vkcloud ../ansible-openstack/playbooks/helm-keystone.yml