Здесь описаны основные понятия и компоненты развёртывания 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 корневого кластера. Пользователи, аутентифицированные в корневом кластере, могут получать доступ к ресурсам листового кластера. Корневой и листовые кластеры работают независимо со своими пользователями, ролями и ресурсами; доверие позволяет сопоставлять роли корневого кластера с ролями и разрешениями листового.