你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 AKV 和 Azure 机密计算(ACC)的安全密钥发布功能

安全密钥发布(SKR)是 Azure 密钥库(AKV)托管 HSM 和高级版产品/服务的功能。 安全密钥发布允许将受 HSM 保护的密钥从 AKV 释放到经过证明的受信任执行环境(T企业版),例如安全 enclave、基于 VM 的 T企业版s 等。SKR 为数据解密/加密密钥添加了另一层访问保护,可以在其中将应用程序 + T企业版运行时环境与已知配置一起访问密钥材料。 创建可导出密钥时定义的 SKR 策略控制对这些密钥的访问。

对 AKV 产品/服务的 SKR 支持

使用 T 的总体安全密钥发布流企业版

SKR 只能基于 Microsoft Azure 证明 (MAA) 生成的声明释放密钥。 与 MAA 声明的 SKR 策略定义紧密集成。

Diagram of Secure Key Release Flow.

以下步骤适用于 AKV 高级版。

步骤 1:创建支持密钥库 高级版 HSM

按照此处的详细信息创建基于 Az CLI 的 AKV

请确保将 [--sku] 的值设置为“premium”。

步骤 2:创建安全密钥发布策略

安全密钥发布策略是此处定义的 json 格式发布策略,它指定除了授权发布密钥之外所需的一组声明。 此处的声明是基于 MAA 的声明,此处针对 SGX 和 AMD 标准版V-SNP CVM 引用。

有关更多详细信息,请访问 T企业版特定示例页。 有关 SKR 策略语法的详细信息,请参阅 Azure 密钥库安全密钥发布策略语法

在设置 SKR 策略之前,请确保通过远程证明流运行 T企业版 应用程序。 本教程未介绍远程证明。

示例

{
    "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:使用附加的 SKR 策略在 AKV 中创建可导出密钥

可在此处找到键类型和其他属性的确切详细信息。

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:在 T 中运行的应用程序企业版执行远程证明

此步骤可以企业版特定于运行应用程序 Intel SGX Enclave 或 AMD 标准版V-SNP 的机密虚拟机(CVM)或使用 AMD 标准版V-SNP 等在 CVM Enclave 中运行的机密容器的类型。

请遵循以下参考示例,获取 Azure 中各种 T企业版 类型产品/服务:

常见问题(FAQ)

是否可以使用非机密计算产品/服务执行 SKR?

不是。 附加到 SKR 的策略仅了解与基于硬件的 T企业版 关联的 MAA 声明。

是否可以自带证明提供程序或服务,并使用 AKV 的这些声明来验证和发布?

不是。 AKV 目前仅了解 MAA 并与之集成。

是否可以使用 AKV SDK 执行密钥 RELEA标准版?

是的。 与 7.3 AKV API 支持密钥 RELEA 集成的最新 SDK标准版。

是否可以共享密钥发布策略的一些示例?

可以,此处列出了 T企业版 类型的详细示例。

是否可以附加包含证书和机密的策略的 SKR 类型?

不是。 目前没有。

参考

SKR 策略示例

包含机密容器的 Azure 容器实例使用容器端汽车安全密钥发布

AMD 上的 CVM 标准版V-SNP 应用程序与安全密钥发布示例

包含 SKR 详细信息的 AKV REST API

Azure 密钥库安全密钥发布策略语法

AKV SDK