Выпуск безопасного ключа с конфиденциальными контейнерами в экземпляре контейнеров Azure (ACI)
Поток безопасного выпуска ключей (SKR) с Azure Key Vault (AKV) с предложениями конфиденциальных контейнеров может реализовываться несколькими способами. Конфиденциальные контейнеры запускают гостевое просвещенное устройство AMD SEV-SNP через ядро Linux, использующее гостевое встроенное ПО с необходимыми исправлениями Hyper-V, которые мы называем прямой загрузкой Linux (DLB). Эта платформа не использует vTPM и HCL на основе конфиденциальных виртуальных машин с поддержкой AMD SEV-SNP. В этом концептуальном документе предполагается, что вы планируете запустить контейнеры в службе поддержки контейнеров Azure, выбрав номер SKU для конфиденциальных вычислений.
- Вспомогательный контейнер на стороне автомобиля, предоставляемый Azure
- Настраиваемая реализация с приложением контейнера
Вспомогательный контейнер side-Car, предоставляемый Azure
Проект открытый код GitHub "конфиденциальные клиентские автомобили" содержит сведения о том, как создать этот контейнер и какие параметры и переменные среды необходимы для подготовки и запуска этого контейнера на стороне автомобиля. Текущая реализация автомобиля на стороне предоставляет различные ИНТЕРФЕЙСы REST API HTTP, которые контейнер основного приложения может использовать для получения ключа из AKV. Интеграция через Microsoft Аттестация Azure (MAA) уже встроена. Инструкции по подготовке для запуска контейнера SKR на стороне автомобиля см. здесь.
Основное приложение контейнера приложения может вызывать конечные точки веб-API на стороне автомобиля, как описано в примере ниже. Параллельные автомобили выполняются в одной группе контейнеров и являются локальной конечной точкой для контейнера приложения. Полные сведения об API см . здесь
Метод key/release
POST ожидает JSON следующего формата:
{
"maa_endpoint": "<maa endpoint>", //https://learn.microsoft.com/en-us/azure/attestation/quickstart-portal#attestation-provider
"akv_endpoint": "<akv endpoint>", //AKV URI
"kid": "<key identifier>" //key name,
"access_token": "optional aad token if the command will run in a resource without proper managed identity assigned"
}
При успешном key/release
выполнении ответ метода POST содержит StatusOK
заголовок и полезные данные следующего формата:
{
"key": "<key in JSON Web Key format>"
}
При ошибке key/release
ответ метода POST содержит StatusForbidden
заголовок и полезные данные следующего формата:
{
"error": "<error message>"
}
Настраиваемая реализация с приложением контейнера
Чтобы выполнить пользовательское приложение контейнера, которое расширяет возможности Azure Key Vault (AKV) — безопасный выпуск ключей и Microsoft Аттестация Azure (MAA), используйте приведенный ниже поток ссылок высокого уровня. Простой подход заключается в проверке текущего кода реализации бокового автомобиля в этом проекте GitHub на стороне автомобиля.
- Шаг 1. Настройка AKV с помощью экспортируемого ключа и присоединение политики выпуска. Дополнительные сведения см. здесь
- Шаг 2. Настройка управляемого удостоверения с идентификатором Microsoft Entra и присоединение к AKV. Дополнительные сведения см. здесь
- Шаг 3. Развертывание приложения контейнера с необходимыми параметрами в ACI путем настройки политики принудительного применения конфиденциальных вычислений. Дополнительные сведения см. здесь
- Шаг 4. На этом шаге приложение должно получить отчет о оборудовании RAW AMD SEV-SNP, выполнив вызов сокета Linux IOCTL. Для выполнения этого действия не требуется какая-либо гостевая библиотека аттестации. Дополнительные сведения о существующей реализации на стороне автомобиля
- Шаг 5. Получение цепочки сертификатов AMD SEV-SNP для группы контейнеров. Эти сертификаты доставляются из конечной точки IMDS узла Azure. Дополнительные сведения см. здесь
- Шаг 6. Отправка отчета о оборудовании SNP RAW и сведений о сертификате в MAA для проверки и возврата утверждений. Дополнительные сведения см. здесь
- Шаг 7. Отправка маркера MAA и маркера управляемого удостоверения, созданного ACI, в AKV для выпуска ключа. Дополнительные сведения см. здесь
При успешном извлечении ключа из AKV можно использовать ключ для расшифровки наборов данных или шифрования данных, исходящих из конфиденциальной среды контейнера.
Ссылки
ACI с развертываниями конфиденциальных контейнеров
AKV SKR с конфиденциальной виртуальной машиной AMD SEV-SNP