Более 5350 заметок о виртуализации, виртуальных машинах VMware, Microsoft и Xen, а также Kubernetes
VM Guru / News / Шифрование виртуальных машин в VMware vSphere 6.5 — как это работает?
Шифрование виртуальных машин в VMware vSphere 6.5 — как это работает?
Реклама:
Не так давно мы писали о новых возможностях платформы виртуализации VMware vSphere 6.5, где впервые появилась так давно запрашиваемая администраторами функция шифрования, как содержимого виртуальных дисков, так и шифрования горячих миграций vMotion.
Устроено это шифрование ВМ на базе алгоритма AES-NI, а управление ключами происходит по стандарту KMIP 1.1. Когда операция ввода-вывода приходит на диск виртуальной машины — она сразу же шифруется «на лету», что обеспечивает полную безопасность при попытке несанкционированного доступа к данным.
Шифруются не только виртуальные диски, но и конфигурационные файлы VMX, файлы снапшотов и все прочие файловые объекты, относящиеся к виртуальной машине.
Шифрование объектов ВМ идет за ее пределами, таким образом гостевая ОС не имеет доступа к ключам шифрования. Шифрованные виртуальные машины всегда перемещаются между хостами ESXi средствами также шифрованного vMotion.
Чтобы начать шифровать виртуальную машину, нужно назначить ей соответствующую политику хранения (Storage Policy):
Как работает VM Encryption в VMware vSphere 6.5:
Пользователь назначает политику VM Encryption на уровне виртуальной машины.
Для машины генерируется случайный ключ и шифруется ключом из key manager (KMS Key).
При включении ВМ сервер vCenter получает ключ из Key Manager, посылает его в VM encryption Module на сервере ESXi, что разлочивает ключ в гипервизоре.
Далее все операции ввода-вывода идут через encryption module, шифруя все входящие и исходящие SCSI-команды прозрачно для гостевой ОС.
Все это совместимо со сторонними системами управления ключами (и требует одну из них), которые построены на стандарте KMIP версии 1.1 или выше:
Для того, чтобы расшифровать виртуальную машину и хранить далее ее в обычном формате, нужно просто поставить дефолтную политику хранения (Datastore default).
Также будет специальный командлет PowerCLI , который может шифровать/расшифровывать ВМ, а также определять, какие из них в данный момент зашифрованы.
vCenter в системе шифрования работает только как клиент. Для управления ключами используется Key Management Server (KMS).
В механизме управления привилегиями теперь появилась роль No Cryptography Administrator. Если ее назначить, то стандартному администратору будут запрещены следующие привилегии:
Manage key servers
Manage keys
Manage encryption policies
Console access to encrypted VMs
Upload/download encrypted VMs
В качестве KMS можно использовать любые внешние системы, работающие по стандарту KMIP:
При использовании шифрования ВМ нужно учитывать следующие моменты:
Да, вам понадобится система управления ключами (внешний Key Management Server)
Не поддерживаются возможности SAN Backup.
Если для обычного метода бэкапа сделать резервную копию — она будет нешифрованной, если восстановить — то все будет в соответствии с политикой целевого хранилища (то есть, ВМ может оказаться незашифрованной после восстановления).
Сам сервер vCenter не может быть зашифрован — иначе его просто было бы нельзя включить.
Также не поддерживаются следующие возможности:
Suspend/resume
Шифрование ВМ со снапшотами и создание снапшотов для шифрованных ВМ
Serial/Parallel port
Content library
vSphere Replication
Для vMotion шифрование включается на уровне отдельной ВМ, а для передачи данных в момент синхронизации используются 256-битные ключи шифрования.
Есть 3 политики для шифрованного vMotion:
Disabled — отключено.
Opportunistic — шифрование только в случае, если это поддерживает источник и целевой хост ESXi, в противном случае vMotion будет нешифрованным.
Required — обязательно будет использоваться.
Перенос машин между хостами осуществляется путем обмена одноразовыми ключами, которые генерируются и обслуживаются сервером vCenter (не KMS).
В целом, шифрование виртуальных машин и миграций vMotion — штука классная, но помните, что вам потребуется для организации этого процесса внешний KMS-сервер.
Чтобы оставлять комментарии, вы должны быть зарегистрированы на сайте.
Зал Славы Рекламодателя
Все сайты о виртуализации:
Вебинары VMC о виртуализации:
Постер VMware vSphere PowerCLI 6.3:
Постер VMware ESXi 5.1:
Постер VMware Hands-on Labs 2015:
Постер VMware Platform Services Controller 6.0:
Постер VMware vCloud Networking:
Постер VMware NSX (референсный):
Постер VMware vCloud SDK:
Постер VMware vCloud Suite:
Постер VMware vCenter Server Appliance:
Порты и соединения VMware vSphere 6:
Порты и соединения VMware Horizon 7:
Порты и соединения VMware NSX:
Управление памятью в VMware vSphere 5:
Как работает кластер VMware High Availability:
Постер VMware vSphere 5.5 ESXTOP (обзорный):
Постер Veeam Backup & Replication v8 for VMware:
Постер Microsoft Windows Server 2012 Hyper-V R2:
Шифрование образов дисков виртуальных машин
Одной из задач, решаемых в рамках обеспечения безопасности работы с виртуализацией, является шифрование образов дисков виртуальных машин.
Хотя шифрование дисков не защитит запущенные виртуальные машины, администратор может зашифровать образы дисков выключенных виртуальных машин и требовать пароль или ключ для запуска виртуальной машины, использующей эти диски. Без шифрования дисков можно легко извлечь данные из файла образа диска.
Qemu поддерживает несколько типов образов дисков. «Родным» и наиболее гибким типом является qcow2, который поддерживает сжатие, шифрование и создание снапшотов виртуальных машин. Наиболее простым — raw, который проще всего конвертировать в другие типы для разных средств виртуализации (VirtualBox, VMware, Hyper-V). Для того, чтобы не привязываться к конкретному типу образов, используем стандартные средства шифрования для Linux-систем (LUKS).
Шифрование всего раздела жесткого диска, на котором хранятся файлы образов дисков виртуальных машин, производится с использованием драйвера уровня ядра dm-crypt и утилиты cryptsetup для шифрования обычных разделов диска или логических разделов LVM. Хранилище файлов образов дисков LVM предоставляет большую гибкость в управлении (например изменение размера раздела), чем использование простых разделов диска.
В качестве операционной системы под Qemu+KVM будем использовать RHEL-Server-6.2 x86_64. Для создания зашифрованного логического раздела требуется:
установить на хосте пакет cryptsetup-luks;
убедиться, что в системе есть минимум 10Гб свободного пространства;
создать новый логический раздел, например:
# lvcreate -L 10G -n guest01-crypt VolGroup
Logical volume «guest01-crypt» created
зашифровать созданный раздел, используя команду cryptsetup luksFormat. Эта команда предложит ввести пароль, который будет использоваться для расшифровки раздела:
Enter LUKS passphrase for /dev/VolGroup/guest01-crypt:
key slot 0 unlocked.
устройство можно использовать. Для получения полной информации об устройстве можно использовать команду dmsetup info:
# dmsetup info guest01-img
После этих действий с созданным устройством можно обращаться, как с обычным блочным устройством. После закрытия раздела или перезагрузки системы, потребуется снова открыть его для использования.
Перенос существующего образа диска (rhel6) в новое зашифрованное устройство (/dev/VolGroup/guest01-crypt) можно произвести следующим образом:
выключите виртуальную машину;
# virsh shutdown rhel6
проверьте, что машина перестала функционировать:
проверьте текущее местоположение образа диска. Для этого можно использовать команду virsh dumpxml:
# virsh dumpxml rhel6
используйте команду qemu-img info для получения информации о формате и размере файла;
# qemu-img info /var/lib/libvirt/images/rhel6.img
file format: qcow2
virtual size: 10G (10737418240 bytes)
перенесите копию диска в созданное устройство, используя утилиту dd:
используя команду virsh edit измените конфигурацию виртуальной машины в соответствии с измененным местоположением образа диска:
Запустите виртуальную машину командой virsh start:
# virsh start rhel6
Domain rhel6 started
При создании новой виртуальной машины, которая должна использовать защищенное хранилище с образами дисков, требуется указать libvirt, где будет находиться образ диска. Например, при использовании команды virt-install, потребуется сначала открыть предварительно созданный раздел командой cryptsetup luksOpen, после чего создавать виртуальную машину:
Для безопасного хранения образов дисков виртуальных машин администратор должен быть контролировать, что после выключения неиспользуемой виртуальной машины, все разделы, в которых хранятся образы дисков виртуальных машин, будут закрыты. Перед будущем запуском виртуальной машины раздел требуется снова открывать.
Для полного правильного выключения виртуальной машины требуется:
выключить виртуальную машину командой virsh shutdown:
# virsh shutdown rhel6
Domain rhel6 is being shutdown
проверить, что не осталось работающих виртуальных машин, использующих образы дисков, которые будут закрыты: