Шифрование данных at rest, то есть «в покое», — это когда мы шифруем всё, что реально лежит на носителе: диск, SSD, том виртуалки, объектное или блочное хранилище. Идея довольно приземлённая: даже если кто-то утащит диск, снимет снапшот, выкопает бэкап из какого-то старого NAS — прочитать содержимое без ключа он не должен.
Самые частые болевые точки — кража или утилизация железа, старые образы дисков в облаке, забытые бэкапы. Именно там обычно всплывают неожиданные утечки. Поэтому шифрование в покое давно превратилось из «хорошо бы иметь» в обязательный чекбокс: и для внутренней безопасности, и для соответствия требованиям вроде GDPR, HIPAA, ISO 27001, PCI DSS и прочих.
Что обычно шифруют #
- Файловые системы и разделы — ext4, XFS, NTFS и т.п., целиком или частично;
- Блочные тома — LVM, iSCSI, SAN/LUN, облачные диски;
- Сами базы данных — PostgreSQL, MySQL, MongoDB, Oracle и им подобные;
- Облачные ресурсы — диски в AWS EBS, Azure Disk, Google Persistent Disk;
- Бэкапы и архивы — чем бы ни делали, Restic, Borg, Veeam, Velero и т.д.
Технологии шифрования at rest #
Инструментов тут много, у каждого свой контекст и уровень:
- LUKS/dm-crypt — стандартный вариант для Linux-серверов и виртуалок, работает на уровне файловой системы или блочного устройства;
- BitLocker — мир Windows: сервера, рабочие станции, полный диск под ключ;
- AWS KMS + EBS Encryption — шифрование дисков и S3 с управлением ключами через KMS;
- Azure Disk Encryption — шифрование томов VM с привязкой к Key Vault;
- Google CME/KMS — шифрование Persistent Disk и Cloud Storage с ключами, которыми вы управляете сами.
Практически все крупные облака умеют: создаёшь диск или StorageClass — сразу включаешь флаг шифрования, и дальше оно живёт само по себе.
Пример: зашифрованный EBS-диск в AWS через Terraform #
resource "aws_ebs_volume" "secure_volume" {
availability_zone = "us-east-1a"
size = 50
encrypted = true
kms_key_id = aws_kms_key.my_key.arn
}
В этом кусочке EBS-том создаётся уже зашифрованным и сразу привязан к вашему KMS-ключу, а не к дефолтному.
Зачем вообще заморачиваться шифрованием at rest #
- Снизить риск утечки, если кто-то добрался до железа, снапшотов или частей инфраструктуры, которые вы не ожидали потерять;
- Не провалиться на проверках по стандартам и сертификации;
- Нормально защитить важные вещи: логи, аккаунты, журналы аудита и прочие чувствительные данные;
- Спокойно хранить бэкапы и снапшоты хоть в другом облаке, хоть на стороннем хранилище;
- Разделять данные между клиентами в мультиарендных системах — SaaS, общие облачные платформы и т.п.
Особенности и рабочие советы #
- Разводите ключи по средам: отдельные KMS/Key Vault для staging и production — экономит нервы;
- Ключи и данные не должны жить рядом: одно дело диск, другое — система, которая держит ключи (separation of duties);
- Включайте автоматическую ротацию ключей, чтобы не вспоминать про это спустя пару лет;
- Логируйте всё, что происходит с ключами и операциями расшифровки — потом этим логам будете очень рады;
- Не ограничивайтесь только at rest: вместе с шифрованием in transit получаете нормальную сквозную защиту.
В итоге шифрование данных в покое — это базовый слой архитектуры безопасности, особенно когда у вас облака, контейнеры, микросервисы и автоматизация через CI/CD. Оно спасает не только от внешних атак, но и от внутренних проблем: ошибки людей, странные действия админов или их компрометация.
