Сетевые настройки#
Существуют различные способы атак и защиты в сети, которые учитывают в корпоративных инфраструктурах. Некоторые из них следует учитывать при настройке узлов контроллера.
Использование специальных каналов связи#
В контурах сети, где накладываются особые ограничения на связь с внешним миром, используют такие каналы связи, которые обеспечивают минимальный размер периметра возможных атак.
Особенности ограничений#
Специальный канал связи типично включает следующие ограничения (примеры приведены применительно к Astra Automation):
Разрешается подключение только к определенным серверам.
Разрешается подключение только по определенному протоколу, например, по SSH.
Подключение разрешено определенному пользователю.
Реализация такого канала для контроллера требует учета следующих особенностей:
Сервисы контроллера работают с привилегиями пользователя awx.
Синхронизация проектов контроллера с Private Automation Hub или другими реестрами происходит с использованием той системной среды исполнения (EE), которая добавляется к контроллеру в процессе его установки. Системная среда исполнения использует по умолчанию образ
aa-base-ee
, версия которого может изменяться вместе с версией контроллера.Примечание
Добавление какой-либо другой EE в настройках проекта влияет только на исполнение playbook, но не на синхронизацию проектов с репозиториями.
Пример настройки#
Предположим, что выход в интернет по SSH должен происходить через прокси-сервер с адресом 10.111.222.1 по порту 2022. Для установления связи через прокси используется универсальная утилита ncat.
Примечание
Это внешняя утилита, которая должна выполняться внутри EE, однако она не установлена там по умолчанию.
Для использования утилиты ncat
необходимо создать собственный образ EE и использовать его в качестве системного.
Соответственно процесс состоит из следующих шагов:
Создайте собственный образ EE, включающий утилиту
ncat
, с помощью Ansible Builder.Обеспечьте использование собственного образа EE в качестве системного при развертывании платформы. Для этого воспользуйтесь дополнительной переменной Ansible
control_plane_execution_environment
, значением которой должен быть URL требуемого образа EE, например:./aa-setup -- -e control_plane_execution_environment=registry.astralinux.ru/aa/aa-base-ee:<version>
Для подключения контроллера к внешнему серверу по SSH выполните следующие настройки в контроллере:
В каталоге
/var/lib/awx/.ssh/
создайте файлconfig
со следующим содержимым:Host <address> ProxyCommand ncat --proxy 10.111.222.1:2022 %h %p PreferredAuthentications publickey IdentityFile /var/lib/awx/.ssh/id_key
Особенности настройки:
Подключение к прокси происходит с помощью утилиты
ncat
.IdentityFile
ссылается на приватный ключ, публичная часть которого должна быть расположена на сервере, указанном в параметреHost
.
Обеспечьте подключение к EE тех компонентов, которые в нем отсутствуют. Это необходимо выполнить через графический интерфейс контроллера.
Путь навигации: Настройки (Settings) > Настройки заданий (Jobs) > Пути доступа к изолированным заданиям (Paths to expose to isolated jobs).
Дополните список монтирования следующими парами:
"/var/lib/awx/.ssh/config:/root/.ssh/config:ro", "/var/lib/awx/.ssh/id_key:/root/.ssh/id_key:ro".
В этом примере в EE попадут следующие недостающие компоненты:
файл настроек SSH
config
,приватный ключ
id_key
.
С использованием приведенных настроек контроллер будет иметь доступ к Automation Hub через указанный прокси-сервер для получения необходимого инфраструктурного кода.