Airlock Database Service проксирует TCP-трафик к базам данных в их нативных протоколах. Пользователи подключаются через airsh db connect, а Airlock проверяет сертификаты и применяет RBAC.

Поддерживаемые self-hosted СУБД

СУБДПротокол AirlockРуководство
PostgreSQLpostgresPostgreSQL
MySQL / MariaDBmysqlMySQL / MariaDB
OpenSearch / ElasticsearchelasticOpenSearch

Общая схема

  1. Database Service подключается к кластеру Airlock (join-токен типа db).
  2. Между Database Service и СУБД настраивается взаимная TLS-аутентификация (mTLS).
  3. Администратор создаёт роли RBAC с правами db_labels, db_names, db_users.
  4. Пользователь выполняет airsh db ls и airsh db connect.

Join-токен для Database Service

airctl tokens add --type=db --format=text > /tmp/db-token

Запуск Database Service (Linux)

sudo airlock db configure create \
  --token=/tmp/db-token \
  --name=example-db \
  --proxy=airlock.example.com:443 \
  --protocol=postgres \
  --uri=postgres.example.com:5432 \
  --output file:///etc/airlock.yaml

sudo systemctl enable --now airlock

Роль для доступа к базам

airctl create <<EOF
kind: role
version: v3
metadata:
  name: db
spec:
  allow:
    db_labels:
      '*': '*'
    db_names:
    - '*'
    db_users:
    - '*'
EOF

airctl users add --roles=access,db alice

Подробнее о политиках: Политики доступа к базам данных.

Подключение пользователя

airsh login --proxy=airlock.example.com --user=alice
airsh db ls
airsh db connect --db-user=postgres --db-name=postgres example-db