Найкращі практики для виробничого середовища

Keychain абстрагує підписуючий бекенд, однак експлуатація підписувача у виробничому середовищі залишається вашою відповідальністю. Ці практики застосовуються до всіх бекендів; щодо вибору одного з них — дивіться Вибір бекенду.

Розділяйте «гарячі» та «холодні» підписувачі

Використовуйте операційний підписувач із невеликим балансом («гарячий») для частих автоматизованих транзакцій, а також окремий підписувач для значних сум («холодний») — для операцій із казначейськими коштами. Забезпечте «холодний» підписувач MPC-кастодіаном або хмарним HSM і вимагайте політик затвердження перед підписанням. Оскільки інтерфейс однаковий, кожна роль може використовувати різний бекенд без зміни місць викликів.

Виконуйте ротацію ключів свідомо

У Solana підписуючий ключ є адресою облікового запису, тому ротація ключа призводить до нової адреси. Плануйте ротацію як міграцію: створіть новий ключ, перепризначте відповідні повноваження (або перемістіть кошти) на нову адресу, а потім виведіть старий з обігу. Використовуйте окремі ключі для кожного середовища, щоб ключі devnet ніколи не використовувались повторно в mainnet.

Надавайте доступ за принципом найменших привілеїв

Обмежте облікові дані кожного бекенду мінімумом, необхідним для підписання. Для AWS KMS це kms:Sign та kms:DescribeKey на конкретному ключі; надавайте перевагу ролям IAM над статичними обліковими даними. Застосовуйте той самий принцип до політик Vault і ключів API керованих гаманців.

Плануйте забезпечення доступності

Віддалені бекенди залежать від мережевого сервісу. Викликайте isAvailable() перед тим, як покладатися на підписувача, застосовуйте повторні спроби з відступом при тимчасових збоях і визначте резервний шлях на випадок відмов. Keychain забезпечує HTTPS для віддалених бекендів і встановлює стандартний тайм-аут запиту.

Захист секретів і транспорту

  • Усі віддалені бекенди спілкуються через HTTPS; кінцеві точки без HTTPS відхиляються.
  • Надавайте ключі API, токени та облікові дані з менеджера секретів або змінних середовища — ніколи не вставляйте їх у код і не комітьте до системи контролю версій.
  • Keychain очищує відповіді з помилками, щоб уникнути витоку секретів у логи; стежте, щоб ваше власне логування не містило необроблених облікових даних і ключового матеріалу.

Моніторинг і аудит підписання

Відстежуйте показники успішності підписання, затримку та кількість збоїв, і налаштуйте сповіщення про стрибки — дивіться метрики в Production Readiness. Увімкніть аудит-логи на стороні провайдера (KMS, Vault або кастодіан) і звіряйте їх із транзакціями, які надсилає ваш застосунок.

Is this page helpful?