🛡 Безопасное управление ключами
При работе с ИИ и внешними сервисами защита ваших API ключей и ключей пользователей становится приоритетом №1.
🛠 Архитектура защиты (на примере Supabase)
Никогда не сохраняйте секретные ключи напрямую в базу данных или на фронтенд.
1. Использование Edge Functions
Вместо того чтобы делать запросы к внешним API из приложения, вызывайте свою Edge Function.
- Фронтенд шлет запрос с JWT-токеном пользователя.
- Функция проверяет права доступа (Auth).
- Функция извлекает ключ из Vault (секретных переменных окружения).
2. Шифрование “на лету”
Если вам нужно хранить ключи пользователей:
- Пользователь вводит ключ в форму.
- Edge Function получает ключ и шифрует его вашим Мастер-ключом (хранится в Vault).
- Зашифрованный ключ сохраняется в базу данных.
- При использовании: Функция достает зашифрованный ключ → расшифровывает на сервере → делает запрос к API.
3. Row Level Security (RLS)
Всегда настраивайте политики так, чтобы пользователь мог видеть только свои зашифрованные подключения:
(auth.uid() = user_id)Смотрите также: Настройка RLS в Supabase