Keychain абстрагирует бэкенд подписи, однако эксплуатация подписанта в продакшене по-прежнему остаётся вашей ответственностью. Эти практики применимы ко всем бэкендам; см. Выбор бэкенда для подбора подходящего варианта.
Разделяйте горячие и холодные подписанты
Используйте операционный подписант с низким балансом («горячий») для частых автоматизированных транзакций и отдельный подписант с высокой стоимостью («холодный») для казначейских операций. Обеспечьте холодный подписант хранением на основе MPC или облачного HSM и требуйте политики подтверждения перед подписанием. Поскольку интерфейс идентичен, каждая роль может использовать отдельный бэкенд без изменения точек вызова.
Выполняйте ротацию ключей осознанно
В Solana ключ подписи является адресом аккаунта, поэтому ротация ключа создаёт новый адрес. Планируйте ротацию как миграцию: создайте новый ключ, переназначьте соответствующие полномочия (или переведите средства) на новый адрес, затем выведите из использования старый. Используйте отдельные ключи для каждой среды, чтобы ключи devnet никогда не применялись в mainnet.
Предоставляйте доступ с минимальными привилегиями
Ограничьте учётные данные каждого бэкенда минимумом, необходимым для подписания.
Для AWS KMS это kms:Sign и kms:DescribeKey на конкретном ключе;
предпочитайте роли IAM статическим учётным данным. Применяйте тот же принцип к
политикам Vault и ключам API управляемых кошельков.
Планируйте доступность
Удалённые бэкенды зависят от сетевого сервиса. Вызывайте isAvailable() перед
использованием подписанта, применяйте повторные попытки с экспоненциальной
задержкой при временных сбоях и определите резервный путь на случай
недоступности. Keychain применяет HTTPS для удалённых бэкендов и устанавливает
таймаут запроса по умолчанию.
Защита секретов и транспортного уровня
- Все удалённые бэкенды взаимодействуют по HTTPS; конечные точки без HTTPS отклоняются.
- Передавайте API-ключи, токены и учётные данные через менеджер секретов или переменные среды — никогда не указывайте их в коде и не фиксируйте в системе контроля версий.
- Keychain очищает ответы об ошибках, чтобы исключить утечку секретов в журналы; следите за тем, чтобы ваши собственные журналы не содержали учётных данных и ключевого материала в открытом виде.
Мониторинг и аудит подписей
Отслеживайте показатели успешности подписания, задержку и количество сбоев, а также настройте оповещения при резких отклонениях — см. метрики в разделе Готовность к продакшену. Включите аудит-логи на стороне провайдера (KMS, Vault или кастодиан) и сверяйте их с транзакциями, которые отправляет ваше приложение.
Is this page helpful?