Когда SaaS-продукт продаётся банкам, больницам или крупным корпорациям, комплаенс перестаёт быть документом и начинает определять устройство системы. Клиенты присылают опросники по безопасности, просят отчёт SOC 2 или сертификат ISO 27001 и вписывают условия обработки данных в договоры. В зависимости от рынка продукту может понадобиться соответствовать ещё и GDPR, PCI DSS или HIPAA.
Ни один из этих стандартов не говорит, какую базу данных или язык использовать. Они описывают результаты: данные защищены, доступ контролируется, изменения проходят ревью, инциденты замечают. Выбранный стек определяет, насколько трудно показывать эти результаты год за годом людям, чья работа состоит в том, чтобы в вас сомневаться.
Что комплаенс на самом деле ограничивает
Если отбросить бумаги, большинство требований сводится к нескольким техническим областям.
- Размещение данных (data residency). Некоторые клиенты или регуляторы требуют, чтобы данные оставались в определённом регионе. GDPR ограничивает передачу персональных данных за пределы Европейской экономической зоны, если не приняты специальные меры защиты, и многие покупатели просто просят хостинг в ЕС, чтобы не поднимать этот вопрос. От этого зависят ваши облачные регионы, а также то, где хранятся ваши резервные копии и логи и где держат свои копии данных почтовый провайдер и инструменты поддержки.
- Журналы аудита. Нужно показать, кто что сделал, когда и откуда: в продукте, в инфраструктуре и в коде. Эти записи должно быть трудно изменить, и храниться они должны определённый срок.
- Контроль доступа. Сотрудники должны получать доступ только к тому, что нужно для их роли, со строгой аутентификацией и записью о каждой выдаче прав. Доступ к данным в продакшене должен быть редким, обоснованным и журналируемым.
- Шифрование. Шифрование данных при передаче и при хранении служит базовым уровнем. Сложнее вопросы о том, кто управляет ключами, как они ротируются и нужны ли некоторым клиентам собственные ключи.
- Хранение и удаление. Одни записи нужно хранить годами, другие удалять по запросу. Право на удаление по GDPR (right to erasure) распространяется на резервные копии, аналитические копии и логи, и именно здесь спотыкается большинство систем.
Прежде чем что-либо выбирать, сопоставьте каждое требование, с которым вы сталкиваетесь, с этими областями. Это сопоставление станет чек-листом, по которому проверяется каждое следующее решение.
Управляемые сервисы или своя эксплуатация
Управляемая база данных, очередь или сервис ключей от крупного облачного провайдера приходят с его собственными сертификатами и моделью разделённой ответственности. Провайдер доказывает физическую безопасность, обновление платформы и сохранность данных. Вы доказываете, как всё настроили и у кого есть доступ.
Для продукта с жёсткими требованиями комплаенса такое разделение обычно говорит в пользу управляемых сервисов. Каждый компонент, который вы эксплуатируете сами, добавляет доказательства, которые придётся предъявить: записи об обновлениях, проверки резервного копирования, сканирования уязвимостей, пересмотры доступа. Небольшая команда может тратить удивительно большую долю времени на то, чтобы доказывать, что за самостоятельно развёрнутой базой данных следят.
Есть и причины эксплуатировать что-то самим. Клиент может требовать развёртывания на своей площадке (on-premises) или в выделенной среде только для него. Нужного управляемого сервиса может не оказаться в требуемом регионе. Для HIPAA провайдер должен подписать соглашение о деловом партнёрстве (business associate agreement), и оно покрывает не каждый сервис из его каталога, поэтому проверьте список до выбора. Для данных платёжных карт обычный совет: вообще не пускать их в свои системы, используя размещённые поля (hosted fields) или токенизацию платёжного провайдера. Это сужает область действия PCI DSS до малой части стека.
По умолчанию выбирайте управляемые сервисы, а эксплуатируйте сами только там, где к этому вынуждает требование.
Выбирайте скучные, хорошо поддерживаемые инструменты
Аудиторам и командам безопасности крупных компаний спокойнее с технологиями, которые они узнают, как и инженерам, которые будут поддерживать систему через пять лет. Для продукта с жёстким комплаенсом скучность становится достоинством.
Полезные вопросы к каждому компоненту:
- Широко ли он используется, активно ли поддерживается и публикует ли уведомления о безопасности?
- Поддерживает ли он нужные вам меры контроля из коробки: шифрование, детальные права доступа, журнал аудита, единый вход (single sign-on)?
- Можно ли нанять людей, которые его знают?
- Публикует ли поставщик, если он есть, собственные отчёты о соответствии?
Распространённая реляционная база данных, распространённые язык и фреймворк с долгой историей в вопросах безопасности и крупный облачный провайдер пройдут большинство этих проверок. Новая база данных с интересной моделью данных может быть правильным выбором для продукта, но в этом контексте ей нужна более веская причина, чем интерес.
Держите число компонентов небольшим. Каждый лишний сервис означает ещё один поток данных для документирования, ещё одного поставщика для оценки и ещё одно место, куда могут утечь персональные данные.