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

概述

注意

密钥自动调整需要 Azure CLI 2.42.0 或更高版本

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

此功能可对存储在 Azure Managed HSM 中的客户管理密钥 (CMK) 执行端到端的零人工干预轮换,用于 Azure 服务的静态数据加密。 请参阅特定的 Azure 服务文档,查看该服务是否涵盖端到端轮换。

定价

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

警告

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

所需的权限

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

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

注意

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

密钥轮换策略

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

注意

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

密钥轮换策略设置:

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

警告

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

配置密钥轮换策略

托管 HSM 的 Azure 门户中当前不提供密钥轮换策略配置。 使用Azure CLI配置密钥轮换策略。

示例策略

在创建后的 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": {}
}

按需轮换

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

托管 HSM 的 Azure 门户中当前不提供按需密钥轮换。 使用Azure CLI按需轮换密钥。

资源