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

在 Azure 托管 HSM 中配置密钥自动轮换

概述

注意

密钥自动轮换需要 Azure CLI 2.42.0 或更高版本

托管 HSM 中的自动密钥轮换允许用户将托管 HSM 配置为按指定的频率自动生成新的密钥版本。 可以设置轮换策略来为每个密钥配置轮换,并选择性地按需轮换密钥。 我们的建议是至少每两年轮换一次加密密钥,以满足加密最佳做法。 有关其他指导和建议,请参阅 NIST SP 800-57 第 1 部分

借助此功能,可以使用 Azure 托管 HSM 中存储的客户管理的密钥 (CMK) 启用端到端零接触轮换,实现 Azure 服务的静态加密。 请参阅特定的 Azure 服务文档,了解该服务是否涵盖端到端轮换。

定价

托管 HSM 密钥轮换不收取额外的费用。 有关托管 HSM 定价的详细信息,请参阅 Azure 密钥保管库定价页

警告

托管 HSM 对每个密钥的版本数限制为 100 个。 在自动或手动轮换过程中创建的密钥版本数将计入此限制。

所需的权限

需要拥有特定的密钥管理权限才能轮换密钥或设置密钥轮换策略。 可以分配“托管 HSM 加密用户”角色以获取管理轮换策略和按需轮换所需的足够权限。

有关如何在托管 HSM 上配置本地 RBAC 权限的详细信息,请参阅:托管 HSM 角色管理

注意

需要拥有“密钥写入”权限才能设置轮换策略。 需要拥有“轮换”权限才能按需轮换密钥。 “托管 HSM 加密用户”内置角色拥有这两项权限

密钥轮换策略

密钥轮换策略允许用户配置轮换间隔以及设置已轮换密钥的过期间隔。 必须先设置该间隔,然后才能按需轮换密钥。

注意

托管 HSM 不支持事件网格通知

密钥轮换策略设置:

  • 过期时间:密钥过期间隔(最少 28 天)。 此项用于设置新轮换的密钥的过期日期(例如,将新密钥设置为在轮换 30 天后过期)。
  • 轮换类型:
    • 创建后在给定的时间自动续订
    • 在到期前在给定时间自动续订。 必须针对密钥设置“过期日期”才会触发此事件。

警告

自动轮换策略不能强制要求按照比每 28 天一次更频繁的间隔创建新密钥版本。 对于基于创建的轮换策略,这意味着 timeAfterCreate 的最小值为 P28D。 对于基于过期的轮换策略,timeBeforeExpiry 的最大值取决于 expiryTime。 例如,如果 expiryTimeP56D,则 timeBeforeExpiry 最大可为 P28D

配置密钥轮换策略

Azure CLI

编写密钥轮换策略并将其保存到文件。 使用 ISO8601 持续时间格式指定时间间隔。 下一部分提供了一些示例策略。 使用以下命令将该策略应用于密钥。

az keyvault key rotation-policy update --hsm-name <hsm-name> --name <key-name> --value </path/to/policy.json>

示例策略

在创建后的 18 个月轮换密钥,并将新密钥设置为在两年后过期。

{
  "lifetimeActions": [
    {
      "trigger": {
        "timeAfterCreate": "P18M",
        "timeBeforeExpiry": null
      },
      "action": {
        "type": "Rotate"
      }
    }
  ],
  "attributes": {
    "expiryTime": "P2Y"
  }
}

在过期前的 28 天轮换密钥,并将新密钥设置为在一年后过期。

{
  "lifetimeActions": [
    {
      "trigger": {
        "timeAfterCreate": null,
        "timeBeforeExpiry": "P28D"
      },
      "action": {
        "type": "Rotate"
      }
    }
  ],
  "attributes": {
    "expiryTime": "P1Y"
  }
}

删除密钥轮换策略(通过设置空白策略)

{
  "lifetimeActions": [],
  "attributes": {}
}

按需轮换

为密钥设置轮换策略后,还可以按需轮换密钥。 必须先设置密钥轮换策略。

Azure CLI

az keyvault key rotate --hsm-name <hsm-name> --name <key-name>

资源