Функция безопасного выпуска ключей с AKV и Конфиденциальными вычислениями Azure (ACC)
Защищенный выпуск ключей (SKR) — это функция управляемого HSM и Premium в Azure Key Vault (AKV). Выпуск безопасного ключа позволяет освободить защищенный ключ HSM из AKV в проверенную доверенной среде выполнения (TEE), например безопасную анклаву, teEs на основе виртуальных машин и т. д. SKR добавляет еще один уровень защиты доступа к ключам расшифровки и шифрования данных, где можно нацеливаться на среду выполнения приложения + TEE с известной конфигурацией получить доступ к материалу ключа. Политики SKR, определенные во время создания экспортируемых ключей, управляют доступом к этим ключам.
Поддержка SKR с предложениями AKV
Общий поток выпуска безопасного ключа с TEE
SKR может выпускать только ключи на основе созданных утверждений microsoft Аттестация Azure (MAA). Существует жесткая интеграция с определением политики SKR с утверждениями MAA.
Ниже приведены шаги для AKV Premium.
Шаг 1. Создание хранилища ключей уровня "Премиум" HSM с поддержкой HSM
Следуйте инструкциям по созданию AKV на основе Az CLI
Убедитесь, что для параметра [-sku] задано значение "Премиум".
Шаг 2. Создание политики выпуска безопасного ключа
Политика выпуска безопасного ключа — это политика выпуска формата JSON, определенная здесь , которая указывает набор утверждений, необходимых в дополнение к авторизации для освобождения ключа. Здесь приведены утверждения на основе MAA, как указано здесь для SGX и здесь для AMD SEV-SNP CVM.
Дополнительные сведения см. на странице конкретных примеров TEE. Дополнительные сведения о грамматике политики SKR см . в статье о политике безопасного выпуска ключей Azure Key Vault.
Перед настройкой политики SKR обязательно запустите приложение TEE через поток удаленной аттестации. Удаленная аттестация не рассматривается в рамках этого руководства.
Пример
{
"version": "1.0.0",
"anyOf": [ // Always starts with "anyOf", meaning you can multiple, even varying rules, per authority.
{
"authority": "https://sharedweu.weu.attest.azure.net",
"allOf": [ // can be replaced by "anyOf", though you cannot nest or combine "anyOf" and "allOf" yet.
{
"claim": "x-ms-isolation-tee.x-ms-attestation-type", // These are the MAA claims.
"equals": "sevsnpvm"
},
{
"claim": "x-ms-isolation-tee.x-ms-compliance-status",
"equals": "azure-compliant-cvm"
}
]
}
]
}
Шаг 3. Создание экспортируемого ключа в AKV с присоединенной политикой SKR
Здесь приведены точные сведения о типе ключа и других атрибутах.
az keyvault key create --exportable true --vault-name "vault name from step 1" --kty RSA-HSM --name "keyname" --policy "jsonpolicyfromstep3 -can be a path to JSON"
Шаг 4. Приложение, работающее в TEE, выполняет удаленную аттестацию
Этот шаг может быть связан с типом TEE, на котором выполняется приложение Intel SGX Enclaves или AMD SEV-SNP на основе конфиденциальных Виртуальные машины (CVM) или конфиденциальных контейнеров, работающих в анклавах CVM с AMD SEV-SNP и т. д.
Следуйте приведенным ниже примерам для различных типов TEE, предлагаемых в Azure:
- Приложение в cvM на основе AMD EV-SNP, выполняющее безопасный выпуск ключей
- Конфиденциальные контейнеры с Экземпляры контейнеров Azure (ACI) с контейнерами на стороне SKR
- Приложения на основе Intel SGX, выполняющие выпуск безопасного ключа — реализация Mystikos решения с открытым исходным кодом
Часто задаваемые вопросы
Можно ли выполнять SKR с предложениями не конфиденциальных вычислений?
№ Политика, подключенная к SKR, понимает только утверждения MAA, связанные с аппаратными TEEs.
Могу ли я принести свой собственный поставщик аттестации или службу и использовать эти утверждения для AKV для проверки и выпуска?
№ AKV понимает и интегрируется только с MAA сегодня.
Можно ли использовать пакеты SDK AKV для выполнения ключа RELEASE?
Да. Последний пакет SDK, интегрированный с api поддержки 7.3 AKV.
Можно ли предоставить общий доступ к некоторым примерам политик выпуска ключей?
Да, подробные примеры по типу TEE перечислены здесь.
Можно ли присоединить тип политики SKR с сертификатами и секретами?
№ В настоящее время нет.
Ссылки
CVM в приложениях AMD SEV-SNP с примером выпуска безопасного ключа
REST API AKV с сведениями об SKR
Грамматика политики выпуска безопасного ключа Azure Key Vault