Fundamentals of Data Engineering, глава 10: Безопасность и приватность
Главная мысль: безопасность это привычка людей, а не набор бумаг. Самое слабое звено это человек. Главная защита приватности: не собирать данные, которые не нужны.

Авторы рассматривают безопасность в таком порядке: люди, процессы, технологии.
- Считайте, что вы всегда цель атаки. Думайте о худших сценариях (negative thinking).
- Собирайте чувствительные данные только при реальной нужде.
- Если у вас просят credentials, сомневайтесь. Проверьте запрос у коллег. Звонок дешевле, чем ransomware.
- Вы первая линия защиты приватности и этики. Если сомневаетесь в том, как обращаются с данными, скажите об этом.
Процессы
Заголовок раздела «Процессы»| Тема | Суть |
|---|---|
| Security theater и security habit | Политика на сотни страниц ради аудита (SOC-2, ISO 27001) создаёт иллюзию защиты. Нужны простые правила, которые выполняют каждый день |
| Active security | Изучайте реальные атаки. Думайте об уязвимостях и мотивах именно вашей организации |
| Least privilege | Давайте людям и сервисам только нужные права и только на нужное время. Не давайте admin всем |
| Shared responsibility | Облако защищает дата-центр. Вы отвечаете за свои системы. Большинство утечек из-за ошибок настройки |
| Backup | Делайте резервные копии и проверяйте восстановление. Это защита от ransomware |
Least privilege для приватности
Заголовок раздела «Least privilege для приватности»- Используйте доступ на уровне колонок, строк и ячеек.
- Маскируйте PII. Создавайте views только с нужными полями.
- Редкие данные держите за процессом broken glass. Это экстренное согласование, после работы доступ закрывается сразу.
Пример короткой политики
Заголовок раздела «Пример короткой политики»- SSO везде и multifactor authentication.
- Не делиться паролями. Беречься phishing.
- Старые credentials удалять.
- Секреты не хранить в коде. Использовать secrets manager.
- Устройства под управлением (можно стереть удалённо). При screen sharing показывать только нужное окно.
- Обновлять браузер и ОС. Не ставить beta.
Технологии
Заголовок раздела «Технологии»- Patch и обновления. Устаревшее ПО уязвимо. Managed сервисы обновляются сами. Свой код и зависимости обновляйте автоматически или по alerts.
- Encryption at rest. Full-disk на ноутбуках, server-side в хранилищах, шифрование backups.
- Encryption in transit. HTTPS по умолчанию. Избегайте FTP. Следите за ключами. Шифрование не поможет, если bucket открыт всем.
- Network access. Не открывайте S3 bucket, SSH на
0.0.0.0/0или базу всему интернету. Знайте, какие порты открыты, для кого и зачем. Разрешайте только нужные IP. - Zero trust и perimeter. Облако ближе к zero trust: каждое действие требует аутентификации. Air-gapped серверы это жёсткий периметр, но и они уязвимы из-за людей.
- Low-level engineering. Любая библиотека и даже CPU могут быть уязвимостью.
- Internal security research. Каждый инженер знает свои системы лучше всех и должен искать в них слабые места.

Logging, monitoring, alerting
Заголовок раздела «Logging, monitoring, alerting»- Access: кто, что, когда и откуда.
- Resources: CPU, память, диск и I/O.
- Billing: резкий рост счёта может означать чужое использование ресурсов.
- Excess permissions: убирайте права, которыми не пользуются.
- Нужен общий dashboard и план реакции на инциденты, который регулярно репетируют.
Ключевые термины
Заголовок раздела «Ключевые термины»| Термин (EN) | Что значит |
|---|---|
| Security theater | Формальное соблюдение требований без реальной защиты |
| Active security | Активный поиск угроз под вашу организацию |
| Least privilege | Минимум прав, только когда нужно |
| Shared responsibility | Облако и клиент делят ответственность за безопасность |
| Broken glass | Экстренный доступ с согласованием и сроком |
| PII | Персональные данные |
| Zero trust | Каждый запрос проверяется, нет доверия по умолчанию |
| Air gap | Полная изоляция от сетей |
| Secrets manager | Сервис для безопасного хранения секретов |
Что это значит на практике
Заголовок раздела «Что это значит на практике»- Перед приёмом данных спросите: нужно ли это поле. Если нет, не собирайте.
- Выдавайте IAM roles по задаче и на срок. Проверяйте права регулярно.
- Секреты только в secrets manager. Никогда в git.
- Проверьте публичные buckets, открытые порты и
0.0.0.0/0. - Настройте alerts по доступу и по расходам.
- Раз в период проверяйте восстановление из backup.
Вопросы для самопроверки
Заголовок раздела «Вопросы для самопроверки»- Чем security theater отличается от security habit?
- Что такое least privilege и как применять его к сервисным аккаунтам?
- Почему шифрование не решает проблему открытого bucket?
- Какие четыре области нужно мониторить?
Предыдущая: Выдача данных. Следующая: Будущее профессии.