Здесь описаны основные понятия и компоненты развёртывания Airlock. Эти термины встречаются при настройке и эксплуатации платформы.
Кластер Airlock
Ключевое понятие архитектуры Airlock — кластер. Кластер состоит из Auth Service и Proxy Service, а также сервисов Airlock, которые управляют доступом к ресурсам инфраструктуры: кластерам Kubernetes, рабочим столам Windows, базам данных и приложениям.
Минимальный кластер включает Auth Service и Proxy Service. В демонстрационной среде оба сервиса могут работать в одном процессе airlock на Linux-хосте.
Подробнее о том, как компоненты взаимодействуют между собой: Взаимодействие компонентов.
Auth Service
Auth Service управляет локальными пользователями и ресурсами конфигурации кластера. Он поддерживает центры сертификации (CA), которые позволяют пользователям и сервисам аутентифицироваться в кластере. Auth Service выдаёт сертификаты клиентам и ведёт журнал аудита.
Auth Service — единственный компонент кластера, которому требуется подключение к бэкенду для хранения состояния кластера и закрытых ключей CA. Сервисы Airlock не хранят состояние и взаимодействуют с Auth Service через gRPC API.
Для высокой доступности можно запустить несколько экземпляров Auth Service.
Подробнее: Аутентификация, Авторизация.
Proxy Service
Proxy Service обеспечивает безопасный доступ к ресурсам инфраструктуры из публичной сети без VPN.
Он устанавливает обратные туннели к Auth Service и сервисам Airlock, которые могут работать в частных сетях. В минимальной конфигурации достаточно открыть в интернет только порт 443, а остальную инфраструктуру держать в частной сети.
Для production можно запустить несколько экземпляров Proxy Service за балансировщиком — это повышает доступность, распределяет нагрузку и позволяет снизить задержку за счёт размещения прокси ближе к пользователям или агентам.
Клиенты также могут подключаться к ресурсам напрямую с сертификатами Airlock, минуя Proxy Service.
Подробнее: Proxy Service.
Сервисы Airlock
Сервис Airlock управляет доступом к ресурсам инфраструктуры. Один процесс airlock может запускать один или несколько сервисов в зависимости от конфигурации.
Application Service
Проксирует HTTP- и TCP-трафик к настраиваемым конечным точкам — внутренним веб-приложениям и другим сервисам.
Database Service
Проксирует TCP-трафик в нативных протоколах популярных СУБД, включая PostgreSQL и MySQL.
Desktop Service
Проксирует трафик Remote Desktop Protocol (RDP) к рабочим столам Windows.
Kubernetes Service
Проксирует HTTP-трафик к API-серверу Kubernetes.
SSH Service
Реализация SSH-сервера, позволяющая выполнять команды на удалённых машинах с встроенным управлением доступом, аудитом и записью сессий.
Агент
Экземпляр сервиса Airlock называется агентом. Для всех сервисов, кроме SSH Service, один агент может обеспечивать доступ к нескольким ресурсам и работать на отдельном хосте от целевых ресурсов. Все агенты должны находиться в той же сети, что и целевые ресурсы.
Ресурсы конфигурации
Ресурс конфигурации — документ, хранящийся в бэкенде Auth Service и задающий параметры кластера. Примеры: роли, локальные пользователи, коннекторы аутентификации.
Роль
Роль — ресурс конфигурации, который предоставляет пользователям Airlock привилегии в кластере. RBAC в Airlock ограничивает доступ по умолчанию: пользователю нужны явные разрешения для доступа к ресурсу или выполнения административных действий.
Пользователи Airlock
Airlock поддерживает два типа пользователей:
- Локальные пользователи — соответствуют ресурсу
user, хранящемуся в бэкенде Auth Service. - Пользователи SSO — хранятся во внешнем провайдере идентификации (GitHub, SAML, OIDC). При аутентификации через SSO Airlock выдаёт сертификат и создаёт временного локального пользователя на срок действия сертификата.
В итоге пользователь Airlock — это субъект сертификата, выданного Auth Service. Auth Service проверяет наличие действительного сертификата Airlock и использует субъект сертификата — имя пользователя и роли — для авторизации.
Коннектор аутентификации
Коннектор аутентификации — ресурс конфигурации, позволяющий пользователям входить в Airlock через внешний провайдер идентификации (SSO).
Доверенные кластеры
Airlock поддерживает отношение доверенного кластера между корневым кластером и одним или несколькими листовыми кластерами, которые доверяют CA корневого кластера. Пользователи, аутентифицированные в корневом кластере, могут получать доступ к ресурсам листового кластера. Корневой и листовые кластеры работают независимо со своими пользователями, ролями и ресурсами; доверие позволяет сопоставлять роли корневого кластера с ролями и разрешениями листового.