Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Для некоторых сложных сценариев необходимо настроить безопасные ключи загрузки. Настройка ключей UEFI безопасной загрузки позволяет изменять ключи единого расширяемого интерфейса встроенного ПО (UEFI) — PK, KEK, DB, DBX — в образе для виртуальной машины с поддержкой безопасной загрузки Azure (виртуальная машина) (доверенный запуск и конфиденциальная виртуальная машина). С помощью этой функции ключи UEFI можно полностью заменить или добавить в базы данных ключей по умолчанию.
При развертывании безопасной загрузки виртуальной машины Azure подписи всех загрузочных компонентов, таких как UEFI, shim/bootloader, ядро и модули ядра или драйверы, проверяются во время загрузки. Проверка завершается ошибкой, если подписи загрузочного компонента не соответствуют ключу в доверенных базах данных ключей, а виртуальная машина не загружается. Эта ошибка может произойти, если: компонент подписан ключом, не найденным в доверенных базах данных ключей, ключ подписи указан в отозванной базе данных ключей или компонент не указан. С помощью пользовательских ключей UEFI безопасной загрузки необходимые подписи можно предоставить для успешной загрузки виртуальной машины.
Настройка ключа UEFI предлагается через ресурсы коллекции вычислений Azure . Если вы используете образ Marketplace для создания доверенной виртуальной машины запуска, необходимо сначала создать ресурсы коллекции вычислений Azure с помощью образа Marketplace для изменения ключей UEFI.
Примечание.
Настройка ключей UEFI предназначена для передовых клиентов, знакомых с внутренней работой технологии безопасной загрузки.
Предпосылки
Для настройки ключей UEFI необходимы следующие ресурсы коллекции вычислений Azure:
В настоящее время настройка ключа UEFI доступна только через REST API.
Необходимо подключить ресурс версии образа виртуальной машины к ресурсу определения образа виртуальной машины с типом безопасности, установленным для TrustedLaunchSupported или TrustedLaunchAndConfidentialVmSupported. Подробные инструкции по созданию ресурса определения изображения см. в разделе "Создание определения изображения" и версии образа. Чтобы создать ресурс определения образа виртуальной машины, необходимо также создать ресурс галереи. Вы можете выбрать портал Azure, PowerShell, CLI или REST API для создания ресурсов определения коллекции и изображений.
Шаблон ARM
Универсальный шаблон ARM предоставляется в качестве примера для создания ресурса версии образа. Для настройки ключей UEFI также необходимо включить блок профиля безопасности в ресурс версии образа. Каждый сценарий в разделе "Сценарии" содержит сведения о том, что происходит внутри блока securityProfile .
{
"apiVersion": "2022-03-03",
"type": "Microsoft.Compute/galleries/images/versions",
"dependsOn": [
"[concat('Microsoft.Compute/galleries/', parameters('galleryName'), '/images/', parameters('imageDefinitionName'))]"
],
"name": "[concat(parameters('galleryName'), '/', parameters('imageDefinitionName'), '/', parameters('versionName'))]",
"location": "[parameters('location')]",
"properties": {
"publishingProfile": {
"replicaCount": "[parameters('defaultReplicaCount')]",
"targetRegions": "[parameters('regionReplications')]",
"excludeFromLatest": "[parameters('excludedFromLatest')]",
"replicationMode": "[parameters('replicationMode')]"
},
"storageProfile": {
"source": {
"id": "[parameters('sourceVmId')]"
}
},
"safetyProfile": {
"allowDeletionOfReplicatedLocations": "[parameters('allowDeletionOfReplicatedLocations')]"
},
"securityProfile": {}
},
"tags": {}
}
Сценарии
В этом разделе содержатся инструкции по настройке ключей UEFI для распространенных сценариев.
Сценарий 1. Замена всех ключей UEFI
В этом сценарии вы полностью замените все ключи по умолчанию (PK, KEK, DB, DB, DBX), доступные на виртуальной машине доверенного запуска.
- Создайте сертификаты и (или) ключи для каждого или PK, KEK, DB и DBX. Дополнительные инструкции по различным операционным системам см. в разделе " Полезные ссылки ".
- Создание новой версии образа. Используйте следующий блок шаблона ARM securityProfile вместе с универсальным шаблоном ARM для создания версии образа. Замените значения JSON в
Base64 formatted certificate
иBase64 formatted sha256 hash
на реальные значения.
"securityProfile": {
"uefiSettings": {
"signatureTemplateNames": [
"NoSignatureTemplate"
],
"additionalSignatures": {
"pk": {
"type": "x509",
"value": [
"Base64 formatted certificate"
]
},
"kek": [
{
"type": "x509",
"value": [
"Base64 formatted certificate"
]
}
],
"db": [
{
"type": "x509",
"value": [
"Base64 formatted certificate",
"Base64 formatted certificate"
]
}
],
"dbx": [
{
"type": "x509",
"value": [
"Base64 formatted certificate",
"Base64 formatted certificate"
]
},
{
"type": "sha256",
"value": [
"Base64 formatted sha256 hash",
"Base64 formatted sha256 hash"
]
}
]
}
}
}
- Создайте виртуальную машину доверенного запуска с помощью портала Azure, PowerShell, CLI или REST API с тем же исходным образом, что и созданный с помощью ресурсов коллекции вычислений Azure.
- После того как виртуальная машина доверенного запуска находится в состоянии выполнения , убедитесь, что пользовательские ключи UEFI находятся в базах данных ключей UEFI.
Сценарий 2. Добавление ключей к базе данных и DBX в шаблон подписи
В этом сценарии вы добавите ключи базы данных и DBX к значениям по умолчанию, доступным в виртуальной машине доверенного запуска.
- Создайте сертификаты и/или ключи для каждой или БД и DBX. Дополнительные инструкции по различным операционным системам см. в разделе " Полезные ссылки ".
- Создание новой версии образа. Используйте следующий блок шаблона ARM securityProfile вместе с универсальным шаблоном ARM для создания версии образа. Замените значения JSON
Base64 formatted certificate
иBase64 formatted sha256 hash
реальными значениями.
"securityProfile": {
"uefiSettings": {
"signatureTemplateNames": [
"MicrosoftUefiCertificateAuthorityTemplate"
],
"additionalSignatures": {
"db": [
{
"type": "x509",
"value": [
"Base64 formatted certificate",
"Base64 formatted certificate"
]
}
],
"dbx": [
{
"type": "sha256",
"value": [
"Base64 formatted sha256 hash",
"Base64 formatted sha256 hash"
]
}
]
}
}
}
- Создайте виртуальную машину доверенного запуска с помощью портала Azure, PowerShell, CLI или REST API с тем же исходным образом, что и созданный с помощью ресурсов коллекции вычислений Azure.
- После того как виртуальная машина доверенного запуска находится в состоянии выполнения , убедитесь, что пользовательские ключи UEFI находятся в базах данных ключей UEFI.
Сценарий 3. Применение нескольких шаблонов подписей
В этом сценарии вы заменяете шаблоны подписей по умолчанию и внедряете несколько шаблонов подписей (UEFI, Windows) в виртуальную машину доверенного запуска.
- Создание новой версии образа. Используйте следующий блок шаблона ARM securityProfile с универсальным шаблоном ARM для создания новой версии образа.
"securityProfile": {
"uefiSettings": {
"signatureTemplateNames": [
"MicrosoftUefiCertificateAuthorityTemplate",
"MicrosoftWindowsTemplate"
]
}
}
- Создайте виртуальную машину доверенного запуска с помощью портала Azure, PowerShell, CLI или REST API с тем же исходным образом, что и созданный с помощью ресурсов коллекции вычислений Azure.
- После того как виртуальная машина доверенного запуска находится в состоянии выполнения , убедитесь, что пользовательские ключи UEFI находятся в базах данных ключей UEFI.
Проверка ключей в базах данных UEFI
Чтобы проверить ключи, хранящиеся в базах данных UEFI, используйте следующие команды в командной строке (SSH) на нужной виртуальной машине.
// For key(s) added to db
$ mokutil --db
// For keys(s) added to dbx
$ mokutil --dbx
Убедитесь, что отображаемые ключи предоставляются версией образа.
Соображения
- Поддерживаются облака и регионы
- Для общедоступного облака поддерживаются все регионы, кроме следующих регионов: Восточная Австрия, Центральная часть Бельгии, Центральная часть Чили, Центральная часть Индонезии, северо-запад Израиля, Jio India Central, Jio India West, юг Малайзии, запад Малайзии, Центральная часть Мексики, Центральная часть Катара, Центральная часть США 2, юго-восточная часть США, юго-восточная часть США 3, Западная часть Швейцарии, Северный Тайвань, северо-западная часть Тайваня, Западная часть Великобритании и Западная Индия
- Облачные сервисы USGov и Китая в настоящее время не поддерживаются
Полезные ссылки
- Как преобразовать сертификаты Base64: кодировка сертификатов Base64
- Преобразование сертификата X.509 в Base64: открытый ключ сертификата X.509 в Base64
- Как подписать вещи для безопасной загрузки: Ubuntu, Redhat, Debian, Oracle