🛡 Безопасное управление ключами

При работе с ИИ и внешними сервисами защита ваших API ключей и ключей пользователей становится приоритетом №1.

🛠 Архитектура защиты (на примере Supabase)

Никогда не сохраняйте секретные ключи напрямую в базу данных или на фронтенд.

1. Использование Edge Functions

Вместо того чтобы делать запросы к внешним API из приложения, вызывайте свою Edge Function.

  • Фронтенд шлет запрос с JWT-токеном пользователя.
  • Функция проверяет права доступа (Auth).
  • Функция извлекает ключ из Vault (секретных переменных окружения).

2. Шифрование “на лету”

Если вам нужно хранить ключи пользователей:

  1. Пользователь вводит ключ в форму.
  2. Edge Function получает ключ и шифрует его вашим Мастер-ключом (хранится в Vault).
  3. Зашифрованный ключ сохраняется в базу данных.
  4. При использовании: Функция достает зашифрованный ключ расшифровывает на сервере делает запрос к API.

3. Row Level Security (RLS)

Всегда настраивайте политики так, чтобы пользователь мог видеть только свои зашифрованные подключения:

(auth.uid() = user_id)

Смотрите также: Настройка RLS в Supabase