Оригинальная тематическая иллюстрация: Оригинальная тематическая схема ChainView BTC866 · ChainView BTC866 Editorial · CC BY 4.0
Разнести функции
Узел, читающий публичные данные, и сервис подписи выполняют разные задачи. Приватный ключ необязательно должен жить рядом с RPC. Нарисуйте компоненты, потоки и полномочия. Разделите публичный интерфейс, административный API и запросы подписи; не открывайте ненужные порты. Общая учётная запись расширяет последствия утечки и мешает понять, кто совершил действие.
Ограничить полномочия
Предпочитайте временные учётные данные для ролей постоянным административным ключам в коде. Разделите чтение, развёртывание и использование ключа по средам и активам. Секретам не место в образе контейнера или журнале. Неизвлекаемый ключ всё ещё может использоваться злоумышленником с захваченным правом вызова. Защита хранения и запрет нежелательной подписи — разные задачи.
Наблюдать доступ
Разрешите управление только нужным путём и по возможности отделите подпись от публичного веб-сервера. Проверьте правила на реальном трафике. Записывайте субъект, тип запроса, результат и время, исключая секреты. Согласуйте часы и срок хранения журналов. Наблюдайте не только неудачные входы, но и необычные успешные запросы, рост объёма и изменение полномочий.
Проверить ротацию
Новый ключ ещё не завершает замену: нужно обновить клиентов и отозвать старые права. Секрет API и ключ актива имеют разные последствия смены; второй может требовать перевода средств. Проверьте, не восстанавливает ли резервная копия старый доступ. После инцидента устраните путь утечки до выдачи новых удостоверений и повторно сверьте список разрешений.



