Руководство описывает подключение self-hosted MySQL или MariaDB к Airlock через Database Service.
Предварительные требования
- Экземпляр MySQL или MariaDB.
- Хост для Database Service.
- Доступ к
airctl.
Шаг 1. Join-токен
airctl tokens add --type=db --format=text > /tmp/tokenШаг 2. Сертификаты для mTLS
airctl auth sign --format=db --host=db.example.com --out=server --ttl=2190hСкопируйте server.cas, server.crt, server.key на хост с MySQL/MariaDB.
Шаг 3. Настройка MySQL
В mysql.cnf:
[mysqld]
require_secure_transport=ON
ssl-ca=/path/to/server.cas
ssl-cert=/path/to/server.crt
ssl-key=/path/to/server.keyШаг 4. Настройка MariaDB
В mysql.cnf:
[mariadb]
require_secure_transport=ON
ssl-ca=/path/to/server.cas
ssl-cert=/path/to/server.crt
ssl-key=/path/to/server.keyПользователь базы данных
Создайте пользователя с аутентификацией по сертификату:
CREATE USER 'alice'@'%' REQUIRE SUBJECT '/CN=alice';
GRANT ALL ON `mydb`.* TO 'alice'@'%';Для существующего пользователя:
ALTER USER 'alice'@'%' REQUIRE SUBJECT '/CN=alice';Airlock аутентифицирует пользователей по сертификатам; пароль для таких учётных записей не используется.
Шаг 5. Database Service и пользователь Airlock
airctl users add --roles=access,db alice
sudo airlock db configure create \
--token=/tmp/token \
--name=example-mysql \
--proxy=airlock.example.com:443 \
--protocol=mysql \
--uri=mysql.example.com:3306 \
--output file:///etc/airlock.yaml
sudo systemctl enable --now airlockШаг 6. Подключение
airsh login --proxy=airlock.example.com --user=alice
airsh db ls
airsh db connect --db-user=root --db-name=mysql example-mysqlДля подключения нужен клиент mysql или mariadb в PATH.
airsh db logout example-mysql