[Системное администрирование, IT-инфраструктура, Виртуализация, Облачные сервисы] Шифрование виртуальных машин в облаке с помощью vSphere Virtual Machine Encryption
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Привет, Хабр! Я Александр Воронцов, технический специалист Cloud4Y. В этой статье расскажу про vSphere Virtual Machine Encryption. Здесь не будет описания опыта внедрения. Это, скорее, обзор технологии и её неочевидных нюансов и особенностей, не описанных в документации. Я постараюсь дать ответы на вопросы, которые могут возникнуть у специалиста в процессе изучения. Демонстрацию буду проводить на тестовом стенде vSphere 6.7 U3, Cloud Director 10.2
vSphere VM Encryption — механизм шифрования виртуальных машин, который впервые появился в VMware vSphere 6.5. Официальная документация по VM Encryption по ссылке. VM Encryption требует VMware vSphere 6.5 и новее и KMS (кластера KMS) с поддержкой протокола KMIP v1.1. VMware не предоставляет KMS, его требуется приобрести отдельно у другого вендора. В vSphere 7.0 U2 добавили Native Key Provider, который можно использовать вместо внешнего KMS для VM Encryption. В данной статье его не рассматриваю.ТерминыKMS — Key Management Server - Сервер управления ключами.KMIP — Key Management Interoperability Protocol - протокол совместным управлением ключами. По этому протоколу происходит взаимодействие между vCenter и KMS сервером.vTPM — Virtual Trusted Platform Module - виртуальный аналог TPM, криптографический модуль, предназначенный для хранения ключей. Может использоваться в паре с Windows Bitlocker.Какие задачи решает VM EncryptionVM Encryption позволяет хранить файлы виртуальной машины (файл конфигурации, файлы виртуальных дисков, снапшоты и т. п.) в зашифрованном виде на СХД, не прибегая к средствам шифрования самой СХД. VM Encryption позволяет облачному провайдеру дополнительно защитить свою инфраструктуру (напр. зашифровать служебные VM), а также предоставлять своим клиентам опциональную возможность шифрования клиентских VM с управлением шифрованием через VMware Cloud Director.VM Encryption позволяет клиенту облачного провайдера зашифровать свои VM в облаке, а также использовать vTPM (Virtual Trusted Platfom Module) в связке, например c Windows BitLocker. Как это работаетУ VMware есть видео, которое демонстрирует работы механизма vSphere Virtual Machine Encryption.Извините, данный ресурс не поддреживается. :( В механизме VM Encryption используется два ключа симметричного шифрования:1. Data Encryption Key (дал. DEK). Этот ключ генерирует ESXi хост. Таким ключом зашифрованы файлы конфигурации и файлы виртуальных дисков виртуальной машины. Для файлов конфигурации VM DEK хранится в *.vmx в зашифрованном виде, для файлов виртуальных дисков - в *.vmdk файле в зашифрованном виде.
2. Key Encryption Key (дал. KEK). Этот ключ генерирует KMS. Таким ключом зашифрован DEK. Этот ключ хранится в базе данных KMS и в оперативной памяти ESXi хоста, на котором зарегистрирована VM.Давайте рассмотрим процессы, который происходят при работе VM Encryption.Этапы инициализации шифрования:
- vCenter запрашивает KEK у KMS. KMS генерирует KEK, сохраняет его в своей базе данных, и передает его vCenter. vCenter передаёт KEK всем ESXi в vSphere High Avalibility кластере. ESXi хранят KEK в оперативной памяти и никогда не записывают его на диск.
- ESXi, получив KEK, генерирует DEK, зашифровывает DEK с помощью KEK и записывает зашифрованный DEK в конфигурационный файл VM.
- ESXi выполняет процесс шифрования файлов VM с помощью DEK.
Этапы включения зашифрованной VM:
- ESXi получает команду на запуск зашифрованной VM, проверяет в своей ОЗУ наличие KEK для расшифровки VM. Если KEK нет в ОЗУ ESXi, KEK запрашивается у vCenter, а vCenter запрашивает KEK у KMS.
- KMS передаёт KEK vCenter, а vCenter передаёт KEK ESXi хосту.
- ESXi хост запускает VM.
Этапы миграции vMotion зашифрованной VM:При миграции vMotion KMS сервер не используется. Encrypted vMotion можно использовать и без VM Encryption.
- ESXi получает команду на миграцию VM на другой ESXi хост. Если миграция выполняется в другой ESXi кластер, то на этом шаге vCenter запросит KEK у KMS и передаст его на ESXi назначения.
- ESXi источника запрашивает "одноразовый ключ" у vCenter. vCenter генерирует ключ и передаёт его хостам источника и назначения миграции.
- ESXi источника зашифровывает "одноразовым ключом" ОЗУ виртуальной машины и расшифрованный DEK и передаёт их на хост назначения с помощью vMotion
- ESXi назначения расшифровывает "одноразовым ключом" полученные данные и VM продолжает работу на ESXi назначения.
Как настроить VM EncryptionПоскольку есть множество KMS серверов с поддержкой KMIP (у VMware даже есть документ, описывающий "сертифицированные KMS"), я не буду рассматривать конкретную реализацию KMS, выбор и настройку также обойду стороной. В моей тестовой среде уже есть кластер KMS из трёх нод, в котором каждая нода реплицирует данные с другими нодами. Если у вас нет KMS, можете взять любой из списка "сертифицированных". Бесплатных решений в этом списке нет, если требуется что-то такое, смотрите в сторонуPyKMIP. Кластер на PyKMIP построить нельзя, но с vCenter он работает. Проверял.Для кластера KMS не требуется Load Balancer. Все ноды кластера равнозначны, содержат одинаковую базу данных и vCenter может запросить ключ у любой ноды KMS, а KMS, который выдал ключ, реплицирует этот ключ на другие ноды.Установка доверительных отношений между vCenter и KMSДавайте подключим наши vCenter к кластеру KMS. Процедуру подключения необходимо повторить на каждом vCenter.
Создаём новый кластер, указываем адрес нашей первой ноды и порт 5696 (стандартный порт KMIP). В моем случае логин и пароль указывать не требуется, но это может зависеть от реализации KMS.
Говорим vCenter доверять KMS.
На следующем шаге нам нужно, чтобы KMS доверял vCenter. Нажимаем MAKE KMS TRUST VCENTER.
На выбор есть несколько вариантов установки доверия KMS к vCenter. В случае с нашим кластером используется способ загрузки в vCenter ключевой пары KMS.
Указываем пару публичного и приватного ключей, сгенерированных KMS сервером. Эта пара ключей генерируется специально для настройки доверительных отношений между KMS и KMIP клиентом.
После установки доверия KMS к vCenter, кластер KMS будет доверять этому vCenter. Добавляем в vCenter остальные ноды KMS (загрузка пары ключей этих нод не потребуется) и на этом настройка KMS завершена.
Создание Storage Policy с шифрованиемСледующим шагом будет создание Storage Policy, использующей шифрование.VM Encryption позволяет хранить VM с шифрованием и без шифрования на одной СХД. У нас уже есть Storage Policy vcd-default-policy. Создадим аналогичную vcd-default-encrypted-policy и включим шифрование в параметрах Host based services.
Как управлять шифрованием из vSphere ClientКогда KMS и Storage Policy настроены, можно применить Storage Policy с шифрованием к VM. Включаем шифрование в настройках VM, выбирая vcd-default-encrypted-policy. На примере Linux машины это выглядит так.
Применяем настройки, и в Tasks виртуальной машины видим прогресс выполнения первичного шифрования.
Шифрование конфигурационных файлов VM без шифрования дисковМы можем зашифровать конфигурационные файлы VM, не шифруя файлы виртуальных дисков VM. Для этого нам нужно включить шифрование VM, а затем переопределить Storage Policy для виртуальных дисков. В результате такой настройки в vSphere Client мы увидим:VM configuration files are encrypted.No hard disks are encrypted.
Мы можем использовать такой сценарий для подключения vTPM и используя Bitlocker в Windows VM. Про vTPM и Bitlocker расскажу дальше.ПримечаниеИз vSphere невозможно выгрузить VM (в ova или ovf), использующую VM Encryption.Дополнительные возможности для WindowsVirtualization Based SecurityДля Windows 10, Windows Server 2016 и новее мы можем использовать Virtualization Based Security. Включение VBS принудительно установит механизм загрузки в UEFI и включит Secure Boot. Если VM использовала BIOS, она, скорее всего, не загрузится после включения.
Про VBS можно прочитать в документации Microsoft или блоге VMware. VBS недостаточно включить в настройках виртуальной машины, его необходимо настроить в гостевой ОС. Процедура настройки описана здесьи в документации Microsoft. Virtual Trusted Platform ModuleДля Windows 10 и Windows Server 2016 и новее, включив шифрование конфигурационных файлов VM и используя для загрузки UEFI (Secure boot можно не включать), в настройках VM становится доступна установка vTPM.
Данные vTPM хранятся в файле *.nvram в зашифрованном виде. В гостевой ОС vTPM определяется как обычный физический TPM 2.0.
vTPM в Windows определяется как обычный TPM 2.0BitlockerС vTPM мы можем использовать Windows Bitlocker без ввода пароля при загрузке Windows. Windows будет загружаться автоматически и разблокировать диски с помощью ключей в vTPM. Если такую VM вынести за пределы площадки облачного провайдера, (или, если vTPM будет изменён, а такое происходит даже при восстановлении бэкапа VM, кроме восстановления поверх) то Bitlocker будет требовать ввести ключ восстановления Bitlocker. Перенести ключи из vTPM невозможно (такой кейс не описан в документации и простых способов извлечения ключей из vTPM я не вижу).После ввода ключа восстановление Bitlocker диск останется зашифрован и начнёт использовать новый vTPM, т.е., в случае изменения vTPM, ключ восстановления Bitlocker нужно будет ввести только 1 раз.Кейс использования vTPM + Bitlocker может быть компромиссом между удобством (VM включается автоматически без ввода пароля Bitlocker) и безопасностью данных (данные зашифрованы средствами гостевой ОС).Как управлять шифрованием VM из VMware Cloud Director. Взгляд со стороны клиента облачного провайдераЧерез панель управления VMware Cloud Director 10.1 и новее есть возможность выбрать Storage Policy, использующую шифрование. Можно изменять как VM default policy, и в этом случае, изменится политика всех дисков VM, у которых Storage policy не задана явно (задана как VM default policy), а также изменится политика хранения конфигурационных файлов VM.
Также можно задавать Storage Policy индивидуально для каждого диска.
Необходимо придерживаться правила, чтоб все диски VM были или зашифрованы, или были без шифрования. При попытке использования дисков с шифрованием и без шифрования на одной виртуальной машине VMware Cloud Director не позволит это сделать.
При зашифрованных конфигурационных файлах виртуальной машины мы увидим напротив VM Storage Policy надпись (Encrypted). При зашифрованных дисках надпись (Encrypted) будет отображаться напротив каждого виртуального диска.
vTPM без шифрования диска средствами VM Encryption.Чтобы подключить vTPM, конфигурационные файлы VM нужно зашифровать (также, должен быть включен Secure Boot и использовать Windows в качестве гостевой ОС). Если использовать Bitlocker, то шифрование дисков VM средствами VM Encryption приведёт к двойному шифрованию и может негативно сказаться на производительности. Чтобы зашифровать конфигурационные файлы и не шифровать диски VM,необходимо назначить VM Storage Policy c шифрованием, а для дисков использовать Storage Policy без шифрования.
Подключить vTPM из интерфейса VMware Cloud Director нельзя, но это возможно сделать через vSphere Client силами инженеров облачного провайдера.ПримечаниеЧерез VMware Cloud Director невозможно выгрузить VM , использующую VM Encryption.Недокументированная фичаvTPM для *nix системСуществует недокументированный способ подключить vTPM для *nix, или для Windows, использующей BIOS. Этим способом можно подключить vTPM к любой виртуальной машине.Для этого нужно подключить vTPM, используя PowerCLI. Установим PowerCLI и выполним скрипт через PowerShell.Установка PowerCLIВыполните через PowerShell Install-Module -Name VMware.PowerCLI
Import-Module VMware.PowerCLI # Для PowerShell Core используйте Import-Module VMware.VimAutomation.Core
Connect-VIServer -Server <vCenter FQDN> -User <username@domain> -Password <password> # Учетные данные от vCenter
$VMName = "Ubuntu1804_UEFI" # Имя VM, в которую нужно добавить vTPM
$spec = New-Object VMware.Vim.VirtualMachineConfigSpec
$spec.DeviceChange = New-Object VMware.Vim.VirtualDeviceConfigSpec[] (1)
$spec.DeviceChange[0] = New-Object VMware.Vim.VirtualDeviceConfigSpec
$spec.DeviceChange[0].Device = New-Object VMware.Vim.VirtualTPM
$spec.DeviceChange[0].Device.DeviceInfo = New-Object VMware.Vim.Description
$spec.DeviceChange[0].Device.DeviceInfo.Summary = 'Trusted Platform Module'
$spec.DeviceChange[0].Device.DeviceInfo.Label = 'Trusted Platform Module'
$spec.DeviceChange[0].Device.Key = -1
$spec.DeviceChange[0].Operation = 'add'
$_this = Get-VM $VMname | Get-View
$_this.ReconfigVM_Task($spec)
После выполнения скрипта мы увидим, что конфигурационные файлы VM зашифрованы, но диск использует Storage Policy без шифрования.
vTPM на Linux VMТакже отобразится подключенный vTPM.
vTPM на Linux VMПроверим работу vTPM в Ubuntu 1804.На Ubuntu установим пакеты:apt install clevis clevis-tpm2Проверим наличие TPMtest -c /dev/tpm0 && echo OK || echo FAIL
Проверим работу TPMecho 'Test vTPM' | clevis encrypt tpm2 '{}' > test.jwecat test.jwe | clevis decrypt tpm2
vTPM работает. Теперь мы можем настроить шифрование диска, используя ключи из vTPM, например, по этой статье.ПримечаниеЭто недокументированная фича. Используйте на свой страх и риск.Как делать резервные копии зашифрованных VMЯ провёл тестирования резервного копирования и восстановления с помощью Veeam Backup & Replication 10. Использовал один сервер бэкапа и две виртуальные машины Veeam Proxy в режиме Virtual Appliance. Тестировал бэкап из vDC VMware Cloud Director.Для того, чтобы Virtual Appliance прокси мог делать бэкап зашифрованной VM, он сам должен являться зашифрованной VM. Подробнее в документации VEEAM.Провёл 35 тестов. Во всех тестах использовал Windows Server 2019 EN c 1 диском на 40ГБ. Рассматривал 6 вариаций конфигурации VM:
- VM с BIOS;
- VM с UEFI;
- VM с UEFI и включенным Secure Boot;
- VM с UEFI, включенным Secure Boot и включенным Virtualization Based Security ;
- VM с UEFI, включенным Secure Boot, включенным Virtualization Based Security, установленным vTPM и настроенным BitLocker в гостевой ОС;
- VM с BIOS, бэкап которой выполнялся на Storage Policy без шифрования, затем было включено шифрования и бэкап выполнялся уже зашифрованной VM (Кейс, где шифрование будет включено на VM, бэкап которой уже выполнялся до включения шифрования).Для каждой VM протестировал 2 варианта бэкапа и 3 варианта восстановления.
В таблице ниже привожу результаты тестирования. Полный бэкапИнкрементальный бэкапВосстановление поверх (Quick Rollback)Восстановление в другой vDCВосстановление в другой vDC в другом сайте vSphereБэкап после восстановления1. BIOS ОКОКОКОКОКОК2. UEFI ОКОКОКОКОКОК3. UEFI + Secure Boot ОКОКОКОКОКОК4. UEFI + Secure Boot + VBS ОКОКОКОКОКОК5. UEFI + Secure Boot + VBS + vTPM + BitLocker ОКОКОКОК, но BitLocker требует ключ восстановления. ОК, но BitLocker требует ключ восстановления. ОК6. BIOS. Бэкап Не выполнялсяОКОКОКОКОКVEEAM "забирает" с ESXi уже расшифрованную VM. Если используется шифрование диска только VM Encryption, бэкап будет расшифрованным. Если диск зашифрован средствами гостевой ОС, то Veeam, ожидаемо, не может его расшифровать.ОтказоустойчивостьЧто будет, если упадёт кластер KMSОчевидно, что ничего хорошего. В окне конфигурации Key Management Servers в vCenter будет такая картина.
Падение KMS не повлияет на уже запущенные VM, которые продолжать работать (и их можно будет выключать, включать, мигрировать на другие хосты) до тех пор, пока в ОЗУ ESXi хранятся KEK, ранее полученные у KMS. KEK будут храниться в памяти до перезагрузки ESXi хоста.При попытке включить VM Encryption при неработающем KMS пойдут ошибки генерации ключа.
Что произойдёт при перезагрузке ESXi хоста.Хост будет требовать включить шифрование вручную
VM, будучи зарегистрированной на хосте, который не хранит в ОЗУ KEK для этой VM (например, если ESXi хост был перезагружен или был добавлен в кластер после первичной инициализации шифрования), будет требовать разблокировать её, передав KEK на ESXi хост.
ВыводыЯ думаю, что для клиентов облачного провайдера, наиболее оптимальным кейсом использования vSphere VM Encryption может быть использования vTPM в связке с шифрованием средствами гостевой ОС.Облачный провайдер может использовать любой из вариантов шифрования, доступного с VM Encryption, для увеличения уровня безопасности своей внутренней инфраструктуры.
===========
Источник:
habr.com
===========
Похожие новости:
- [Системное администрирование, *nix, Сетевые технологии, DevOps] Сеть контейнеров — это не сложно (перевод)
- [Информационная безопасность, Виртуализация, Облачные сервисы] VMware предупредила о критических уязвимостях в удаленном исполнении кода в vCenter
- [Анализ и проектирование систем, IT-инфраструктура, IPTV] Программные зонды Elecard Boro – Мониторинг IPTV
- [Системное администрирование, Сетевые технологии, Облачные сервисы, Сетевое оборудование] Коммутаторы ядра сети — что это такое, для чего нужны и как выглядят
- [Информационная безопасность] Островок свободы или зарегулированная отрасль: каким стал интернет и как сделать его безопаснее
- [Microsoft Azure, Облачные сервисы] Как мы построили гибридное облако и сняли с ручника разработку
- [Системное администрирование, *nix, DevOps, Kubernetes] Kubernetes-in-Kubernetes и ферма серверов с загрузкой по PXE
- [Облачные сервисы] Электронный медицинский документооборот — последняя миля
- [Облачные сервисы, IT-компании, Kubernetes] Kubernetes как сервис — изучение рынка
- [Open source, Системное администрирование, PostgreSQL, IT-инфраструктура] Мониторинг 95+ метрик PostgreSQL с помощью плагина Zabbix Agent 2
Теги для поиска: #_sistemnoe_administrirovanie (Системное администрирование), #_itinfrastruktura (IT-инфраструктура), #_virtualizatsija (Виртуализация), #_oblachnye_servisy (Облачные сервисы), #_vsphere, #_virtual_machine_encryption, #_shifrovanie (шифрование), #_blog_kompanii_cloud4y (
Блог компании Cloud4Y
), #_sistemnoe_administrirovanie (
Системное администрирование
), #_itinfrastruktura (
IT-инфраструктура
), #_virtualizatsija (
Виртуализация
), #_oblachnye_servisy (
Облачные сервисы
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 18:54
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Привет, Хабр! Я Александр Воронцов, технический специалист Cloud4Y. В этой статье расскажу про vSphere Virtual Machine Encryption. Здесь не будет описания опыта внедрения. Это, скорее, обзор технологии и её неочевидных нюансов и особенностей, не описанных в документации. Я постараюсь дать ответы на вопросы, которые могут возникнуть у специалиста в процессе изучения. Демонстрацию буду проводить на тестовом стенде vSphere 6.7 U3, Cloud Director 10.2 vSphere VM Encryption — механизм шифрования виртуальных машин, который впервые появился в VMware vSphere 6.5. Официальная документация по VM Encryption по ссылке. VM Encryption требует VMware vSphere 6.5 и новее и KMS (кластера KMS) с поддержкой протокола KMIP v1.1. VMware не предоставляет KMS, его требуется приобрести отдельно у другого вендора. В vSphere 7.0 U2 добавили Native Key Provider, который можно использовать вместо внешнего KMS для VM Encryption. В данной статье его не рассматриваю.ТерминыKMS — Key Management Server - Сервер управления ключами.KMIP — Key Management Interoperability Protocol - протокол совместным управлением ключами. По этому протоколу происходит взаимодействие между vCenter и KMS сервером.vTPM — Virtual Trusted Platform Module - виртуальный аналог TPM, криптографический модуль, предназначенный для хранения ключей. Может использоваться в паре с Windows Bitlocker.Какие задачи решает VM EncryptionVM Encryption позволяет хранить файлы виртуальной машины (файл конфигурации, файлы виртуальных дисков, снапшоты и т. п.) в зашифрованном виде на СХД, не прибегая к средствам шифрования самой СХД. VM Encryption позволяет облачному провайдеру дополнительно защитить свою инфраструктуру (напр. зашифровать служебные VM), а также предоставлять своим клиентам опциональную возможность шифрования клиентских VM с управлением шифрованием через VMware Cloud Director.VM Encryption позволяет клиенту облачного провайдера зашифровать свои VM в облаке, а также использовать vTPM (Virtual Trusted Platfom Module) в связке, например c Windows BitLocker. Как это работаетУ VMware есть видео, которое демонстрирует работы механизма vSphere Virtual Machine Encryption.Извините, данный ресурс не поддреживается. :( В механизме VM Encryption используется два ключа симметричного шифрования:1. Data Encryption Key (дал. DEK). Этот ключ генерирует ESXi хост. Таким ключом зашифрованы файлы конфигурации и файлы виртуальных дисков виртуальной машины. Для файлов конфигурации VM DEK хранится в *.vmx в зашифрованном виде, для файлов виртуальных дисков - в *.vmdk файле в зашифрованном виде. 2. Key Encryption Key (дал. KEK). Этот ключ генерирует KMS. Таким ключом зашифрован DEK. Этот ключ хранится в базе данных KMS и в оперативной памяти ESXi хоста, на котором зарегистрирована VM.Давайте рассмотрим процессы, который происходят при работе VM Encryption.Этапы инициализации шифрования:
Создаём новый кластер, указываем адрес нашей первой ноды и порт 5696 (стандартный порт KMIP). В моем случае логин и пароль указывать не требуется, но это может зависеть от реализации KMS. Говорим vCenter доверять KMS. На следующем шаге нам нужно, чтобы KMS доверял vCenter. Нажимаем MAKE KMS TRUST VCENTER. На выбор есть несколько вариантов установки доверия KMS к vCenter. В случае с нашим кластером используется способ загрузки в vCenter ключевой пары KMS. Указываем пару публичного и приватного ключей, сгенерированных KMS сервером. Эта пара ключей генерируется специально для настройки доверительных отношений между KMS и KMIP клиентом. После установки доверия KMS к vCenter, кластер KMS будет доверять этому vCenter. Добавляем в vCenter остальные ноды KMS (загрузка пары ключей этих нод не потребуется) и на этом настройка KMS завершена. Создание Storage Policy с шифрованиемСледующим шагом будет создание Storage Policy, использующей шифрование.VM Encryption позволяет хранить VM с шифрованием и без шифрования на одной СХД. У нас уже есть Storage Policy vcd-default-policy. Создадим аналогичную vcd-default-encrypted-policy и включим шифрование в параметрах Host based services. Как управлять шифрованием из vSphere ClientКогда KMS и Storage Policy настроены, можно применить Storage Policy с шифрованием к VM. Включаем шифрование в настройках VM, выбирая vcd-default-encrypted-policy. На примере Linux машины это выглядит так. Применяем настройки, и в Tasks виртуальной машины видим прогресс выполнения первичного шифрования. Шифрование конфигурационных файлов VM без шифрования дисковМы можем зашифровать конфигурационные файлы VM, не шифруя файлы виртуальных дисков VM. Для этого нам нужно включить шифрование VM, а затем переопределить Storage Policy для виртуальных дисков. В результате такой настройки в vSphere Client мы увидим:VM configuration files are encrypted.No hard disks are encrypted. Мы можем использовать такой сценарий для подключения vTPM и используя Bitlocker в Windows VM. Про vTPM и Bitlocker расскажу дальше.ПримечаниеИз vSphere невозможно выгрузить VM (в ova или ovf), использующую VM Encryption.Дополнительные возможности для WindowsVirtualization Based SecurityДля Windows 10, Windows Server 2016 и новее мы можем использовать Virtualization Based Security. Включение VBS принудительно установит механизм загрузки в UEFI и включит Secure Boot. Если VM использовала BIOS, она, скорее всего, не загрузится после включения. Про VBS можно прочитать в документации Microsoft или блоге VMware. VBS недостаточно включить в настройках виртуальной машины, его необходимо настроить в гостевой ОС. Процедура настройки описана здесьи в документации Microsoft. Virtual Trusted Platform ModuleДля Windows 10 и Windows Server 2016 и новее, включив шифрование конфигурационных файлов VM и используя для загрузки UEFI (Secure boot можно не включать), в настройках VM становится доступна установка vTPM. Данные vTPM хранятся в файле *.nvram в зашифрованном виде. В гостевой ОС vTPM определяется как обычный физический TPM 2.0. vTPM в Windows определяется как обычный TPM 2.0BitlockerС vTPM мы можем использовать Windows Bitlocker без ввода пароля при загрузке Windows. Windows будет загружаться автоматически и разблокировать диски с помощью ключей в vTPM. Если такую VM вынести за пределы площадки облачного провайдера, (или, если vTPM будет изменён, а такое происходит даже при восстановлении бэкапа VM, кроме восстановления поверх) то Bitlocker будет требовать ввести ключ восстановления Bitlocker. Перенести ключи из vTPM невозможно (такой кейс не описан в документации и простых способов извлечения ключей из vTPM я не вижу).После ввода ключа восстановление Bitlocker диск останется зашифрован и начнёт использовать новый vTPM, т.е., в случае изменения vTPM, ключ восстановления Bitlocker нужно будет ввести только 1 раз.Кейс использования vTPM + Bitlocker может быть компромиссом между удобством (VM включается автоматически без ввода пароля Bitlocker) и безопасностью данных (данные зашифрованы средствами гостевой ОС).Как управлять шифрованием VM из VMware Cloud Director. Взгляд со стороны клиента облачного провайдераЧерез панель управления VMware Cloud Director 10.1 и новее есть возможность выбрать Storage Policy, использующую шифрование. Можно изменять как VM default policy, и в этом случае, изменится политика всех дисков VM, у которых Storage policy не задана явно (задана как VM default policy), а также изменится политика хранения конфигурационных файлов VM. Также можно задавать Storage Policy индивидуально для каждого диска. Необходимо придерживаться правила, чтоб все диски VM были или зашифрованы, или были без шифрования. При попытке использования дисков с шифрованием и без шифрования на одной виртуальной машине VMware Cloud Director не позволит это сделать. При зашифрованных конфигурационных файлах виртуальной машины мы увидим напротив VM Storage Policy надпись (Encrypted). При зашифрованных дисках надпись (Encrypted) будет отображаться напротив каждого виртуального диска. vTPM без шифрования диска средствами VM Encryption.Чтобы подключить vTPM, конфигурационные файлы VM нужно зашифровать (также, должен быть включен Secure Boot и использовать Windows в качестве гостевой ОС). Если использовать Bitlocker, то шифрование дисков VM средствами VM Encryption приведёт к двойному шифрованию и может негативно сказаться на производительности. Чтобы зашифровать конфигурационные файлы и не шифровать диски VM,необходимо назначить VM Storage Policy c шифрованием, а для дисков использовать Storage Policy без шифрования. Подключить vTPM из интерфейса VMware Cloud Director нельзя, но это возможно сделать через vSphere Client силами инженеров облачного провайдера.ПримечаниеЧерез VMware Cloud Director невозможно выгрузить VM , использующую VM Encryption.Недокументированная фичаvTPM для *nix системСуществует недокументированный способ подключить vTPM для *nix, или для Windows, использующей BIOS. Этим способом можно подключить vTPM к любой виртуальной машине.Для этого нужно подключить vTPM, используя PowerCLI. Установим PowerCLI и выполним скрипт через PowerShell.Установка PowerCLIВыполните через PowerShell Install-Module -Name VMware.PowerCLI Import-Module VMware.PowerCLI # Для PowerShell Core используйте Import-Module VMware.VimAutomation.Core
Connect-VIServer -Server <vCenter FQDN> -User <username@domain> -Password <password> # Учетные данные от vCenter $VMName = "Ubuntu1804_UEFI" # Имя VM, в которую нужно добавить vTPM $spec = New-Object VMware.Vim.VirtualMachineConfigSpec $spec.DeviceChange = New-Object VMware.Vim.VirtualDeviceConfigSpec[] (1) $spec.DeviceChange[0] = New-Object VMware.Vim.VirtualDeviceConfigSpec $spec.DeviceChange[0].Device = New-Object VMware.Vim.VirtualTPM $spec.DeviceChange[0].Device.DeviceInfo = New-Object VMware.Vim.Description $spec.DeviceChange[0].Device.DeviceInfo.Summary = 'Trusted Platform Module' $spec.DeviceChange[0].Device.DeviceInfo.Label = 'Trusted Platform Module' $spec.DeviceChange[0].Device.Key = -1 $spec.DeviceChange[0].Operation = 'add' $_this = Get-VM $VMname | Get-View $_this.ReconfigVM_Task($spec) vTPM на Linux VMТакже отобразится подключенный vTPM. vTPM на Linux VMПроверим работу vTPM в Ubuntu 1804.На Ubuntu установим пакеты:apt install clevis clevis-tpm2Проверим наличие TPMtest -c /dev/tpm0 && echo OK || echo FAIL Проверим работу TPMecho 'Test vTPM' | clevis encrypt tpm2 '{}' > test.jwecat test.jwe | clevis decrypt tpm2 vTPM работает. Теперь мы можем настроить шифрование диска, используя ключи из vTPM, например, по этой статье.ПримечаниеЭто недокументированная фича. Используйте на свой страх и риск.Как делать резервные копии зашифрованных VMЯ провёл тестирования резервного копирования и восстановления с помощью Veeam Backup & Replication 10. Использовал один сервер бэкапа и две виртуальные машины Veeam Proxy в режиме Virtual Appliance. Тестировал бэкап из vDC VMware Cloud Director.Для того, чтобы Virtual Appliance прокси мог делать бэкап зашифрованной VM, он сам должен являться зашифрованной VM. Подробнее в документации VEEAM.Провёл 35 тестов. Во всех тестах использовал Windows Server 2019 EN c 1 диском на 40ГБ. Рассматривал 6 вариаций конфигурации VM:
Падение KMS не повлияет на уже запущенные VM, которые продолжать работать (и их можно будет выключать, включать, мигрировать на другие хосты) до тех пор, пока в ОЗУ ESXi хранятся KEK, ранее полученные у KMS. KEK будут храниться в памяти до перезагрузки ESXi хоста.При попытке включить VM Encryption при неработающем KMS пойдут ошибки генерации ключа. Что произойдёт при перезагрузке ESXi хоста.Хост будет требовать включить шифрование вручную VM, будучи зарегистрированной на хосте, который не хранит в ОЗУ KEK для этой VM (например, если ESXi хост был перезагружен или был добавлен в кластер после первичной инициализации шифрования), будет требовать разблокировать её, передав KEK на ESXi хост. ВыводыЯ думаю, что для клиентов облачного провайдера, наиболее оптимальным кейсом использования vSphere VM Encryption может быть использования vTPM в связке с шифрованием средствами гостевой ОС.Облачный провайдер может использовать любой из вариантов шифрования, доступного с VM Encryption, для увеличения уровня безопасности своей внутренней инфраструктуры. =========== Источник: habr.com =========== Похожие новости:
Блог компании Cloud4Y ), #_sistemnoe_administrirovanie ( Системное администрирование ), #_itinfrastruktura ( IT-инфраструктура ), #_virtualizatsija ( Виртуализация ), #_oblachnye_servisy ( Облачные сервисы ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 18:54
Часовой пояс: UTC + 5