Airlock Database Service проксирует TCP-трафик к базам данных в их нативных протоколах. Пользователи подключаются через airsh db connect, а Airlock проверяет сертификаты и применяет RBAC.
Поддерживаемые self-hosted СУБД
| СУБД | Протокол Airlock | Руководство |
|---|---|---|
| PostgreSQL | postgres | PostgreSQL |
| MySQL / MariaDB | mysql | MySQL / MariaDB |
| OpenSearch / Elasticsearch | elastic | OpenSearch |
Общая схема
- Database Service подключается к кластеру Airlock (join-токен типа
db). - Между Database Service и СУБД настраивается взаимная TLS-аутентификация (mTLS).
- Администратор создаёт роли RBAC с правами
db_labels,db_names,db_users. - Пользователь выполняет
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