Настройка API-ключей для торговых роботов
Автоматическая торговля начинается с безопасного подключения к торговому контуру. API-ключ связывает программу с разрешёнными операциями и позволяет передавать запросы без использования основного пароля от кабинета. Для робота это удобно, но требует чёткого разграничения прав и защищённого хранения секрета.
Компания eTrade.kz развивает интернет-торговые терминалы, мобильное приложение MTrade и системы обмена данными для участников рынка. Если ваш робот работает с инфраструктурой eTrade, сначала подтвердите, что нужный интерфейс и выпуск ключей доступны для вашего счёта и сценария подключения.
Сначала проверьте требования оператора, затем выпустите отдельный ключ для тестовой среды и только после успешной проверки подключайте рабочий контур. Названия полей и адреса серверов нужно сверять с документацией конкретной версии интерфейса, поскольку конфигурация может меняться.
Подготовка до получения доступа
Определите, где именно выдаётся ключ: в личном кабинете брокера, клиентском терминале или через техническую поддержку оператора рынка. Не перенимайте параметры из случайных примеров: адрес сервера, формат подписи и набор операций должны соответствовать вашему активному подключению.
Проверьте, разрешена ли работа через API, открыт ли нужный тариф и требуется ли отдельное техническое соглашение. Для тестов используйте демонстрационный счёт, если он предусмотрен. Продуктовые страницы, загрузки и материалы поддержки eTrade.kz помогут сверить версию терминала; сведения о самой компании находятся в разделе о компании.
Перед созданием ключа выберите среду и место запуска робота: собственный сервер, контейнер или рабочая станция. Это поможет задать допустимые адреса и не разрешать доступ шире, чем требуется стратегии.
Создание и проверка параметров ключа
В разделе управления API выберите создание ключа для нужного счёта. Укажите понятное назначение и среду. Если действия выполняет техническая поддержка, передайте ей сведения о счёте и требуемых операциях, не отправляя сам секрет.
Когда интерфейс показывает новое значение, сохраните его в защищённом хранилище сразу, не отправляя по электронной почте и не оставляя в заметках. Если сервис показывает секрет только один раз, не закрывайте страницу до завершения переноса. В некоторых системах выдаётся пара идентификатора и секрета: сохраните оба значения.
В карточке ключа проверьте назначение и параметры до передачи роботу. Особое внимание уделите следующим полям:
- Назначение: метка должна указывать робота и среду без персональных данных.
- Права: оставьте только необходимые операции, например чтение данных без возможности вывода средств.
- Срок действия и статус: заранее запланируйте продление либо перевыпуск.
- Ограничения сети: укажите адреса IP рабочих узлов, если сервис поддерживает фильтрацию.
Защита секретного значения
API-ключ следует считать паролем, даже если сервис называет его идентификатором. В рабочем коде используйте ссылку на настройку, не помещая секрет в строку подключения. Значение должно поступать из переменной окружения, менеджера секретов или защищённого конфигурационного файла.
Не добавляйте файл с ключом в систему контроля версий и не переносите настройки между машинами через архивы общего доступа. Передавайте секрет по HTTPS, ограничивайте права пользователей и рабочей станции, а журналы настраивайте так, чтобы заголовки авторизации и полные ключи не попадали в записи.
- Храните значение в переменной окружения или зашифрованном хранилище.
- Исключайте локальный файл с ключом из репозитория и резервных копий.
- Ограничивайте доступ к сервису по адресам IP и учётным данным.
- Редактируйте журналы, сохраняя идентификатор ключа, но скрывая его значение.
Если ключ мог быть раскрыт, сначала отзовите его, затем проверьте журналы доступа и работу торговых сценариев. Для оценки внешних угроз и обновления сетевых правил полезен материал об актуализации правил защиты.
Подключение робота и тестирование
В настройках алгоритма задайте адрес сервера, идентификатор приложения, секрет и тайм-аут. Все значения получайте из конфигурации среды. Проверьте также название метода авторизации, формат подписи и версию API, если оператор предоставляет несколько вариантов подключения.
Сначала убедитесь, что робот получает данные о счёте и рынке, а тестовый запрос проходит авторизацию. Затем выполните минимальную контрольную операцию и сверьте её результат с данными терминала. Полноценный размер позиции выбирайте только после проверки на демонстрационном счёте.
Обработайте отказы авторизации, превышение лимитов и временные сбои. Настраивайте повторы с ограничением частоты и не отправляйте заявку повторно без проверки её статуса. Если интерфейс поддерживает идентификаторы операций, используйте их для защиты от дублирования.
Контроль и отзыв доступа
В рабочем режиме наблюдайте за количеством отказов, задержками и необычными торговыми запросами. Настройте оповещения о срабатывании ограничений сети, истечении срока действия и попытках входа с неразрешённых адресов. Регулярно сверяйте перечень активных ключей с перечнем используемых роботами.
Установите график перевыпуска доступа в соответствии с рекомендациями оператора. Сначала создайте новый ключ, проверьте подключение в тестовой среде, переведите рабочую стратегию и только после этого отзовите прежний. Такой порядок сохраняет работоспособность автоматизации без одновременного использования двух секретов.
При подозрении на утечку немедленно отключите ключ, измените связанные учётные данные и изучите историю запросов. Если компания использует eDoc, заявку на выпуск, согласование и отзыв доступа можно зафиксировать в электронном документообороте. Значения ключей и другие секреты в eDoc не помещают.
Создайте отдельный ключ для тестового контура, задайте минимальные права и белый список адресов, затем проведите одну контрольную сделку и настройте оповещения об отказах авторизации. После проверки перенесите подключение в рабочую среду и закрепите регулярный перевыпуск доступа.