共用方式為

在Azure托管 HSM 上启用多区域复制

多区域复制允许将托管 HSM 池从一个Azure区域(称为主要区域)扩展到另一个Azure区域(称为扩展区域)。 仅支持对单个附加区域进行扩展。 配置后,这两个区域都处于活动状态,能够处理请求,并且通过自动复制共享相同的密钥材料、角色和权限。 离应用程序最近的可用区域接收并满足请求,最大程度地提高读取吞吐量和延迟。 虽然区域中断很少发生,但多区域复制可增强任务关键型加密密钥的可用性(如果一个区域不可用)。 启用多区域复制后,主池和扩展池的 SLA 组合增加到 99.99。 有关 SLA 的详细信息,请访问 SLA for Azure Key Vault Managed HSM

体系结构

托管 HSM 多区域复制的体系架构图。

在托管 HSM 上启用多区域复制时,会在扩展区域中创建第二个托管 HSM 池,其中包含三个负载均衡 HSM 分区。 向流量管理器全局 DNS 终结点<hsm-name>.managedhsm.chinacloudapi.cn发出请求时,最近的可用区域会接收并满足请求。 虽然鉴于 HSM 在整个区域中的分布,每个区域单独维护区域高可用性,但流量管理器可确保即使一个区域中托管 HSM 的所有分区都由于灾难而不可用,扩展区域中的托管 HSM 池仍为请求提供服务。

复制延迟

在完全复制这两个区域之前,对托管 HSM 执行的任何写入操作(例如创建或更新密钥、创建或更新角色定义或者创建或更新角色分配)最多可能需要 6 分钟才能完成。 在此时间窗口内,无法保证书面材料已在各区域之间完成复制。 因此,最好在创建或更新密钥与使用密钥之间等待 6 分钟,从而确保密钥材料已在区域之间完全复制。 这同样适用于角色分配和角色定义。

故障转移行为

如果在多区域托管 HSM 中,由于某个区域的中断导致其不可用,而另一个区域开始为所有请求提供服务,此时会发生故障转移。 中断可能仅限于您的 HSM 池、整个托管 HSM 服务或整个 Azure 区域。 在故障转移期间,您可能会注意到行为发生了变化,这取决于受影响的区域。

受影响的区域 读取权限 允许写入
扩展区域
主要区域

如果主要区域或扩展区域出现故障,仍可以执行读取和写入操作。

  • 读取操作:获取密钥、列出密钥、运行加密操作和列出角色分配。
  • 写入操作:创建或更新密钥、角色分配和角色定义。

故障转移时间

在后台,DNS 解析处理将请求重定向到主要区域或扩展区域。

如果这两个区域都处于活动状态,流量管理器会将传入请求解析为与请求源地理位置最接近或网络延迟最低的位置。 DNS 记录配置为默认的 TTL 为 5 秒。

如果某个区域向流量管理器报告不正常状态,未来的请求会转向其他可用的区域。 缓存 DNS 查询的客户端可能会遇到较长的故障转移时间。 但是,任何客户端缓存过期后,未来的请求应路由到可用区域。

计费

多区域复制到扩展区域会导致计费翻倍 (x2),因为新的 HSM 池会在扩展区域中消耗。 有关详细信息,请参阅 Azure 托管 HSM 定价

软删除行为

托管 HSM 软删除功能允许恢复删除的 HSM 和密钥,但在已启用多区域复制的场景中,存在细微差别,即在主要 HSM 上执行软删除之前,必须先删除辅助 HSM。 此外,从主要 HSM 中移除扩展区域时,将清除已移除区域中的 HSM,而不是进入软删除状态,并且已清除的 HSM 的计费将立即结束。 如果需要,你可以从主区域扩展到新的扩展区域。

Azure Private Link功能允许通过虚拟网络中的专用终结点访问托管 HSM 服务。 可以在主要区域的托管 HSM 上配置专用终结点,就像不使用多区域复制功能时一样。 对于扩展区域中的托管 HSM,建议在主要区域中的托管 HSM 复制到扩展区域中的托管 HSM 后,创建另一个专用终结点和专用 DNS 区域,这样可以将客户端请求重定向到距离客户端位置最近的托管 HSM。

这里是一些场景示例:托管 HSM 位于主要区域(英国南部)中,另一个托管 HSM 位于扩展区域(中国中东部)中。

  • 当主要区域和扩展区域中的托管 HSM 在启用专用终结点后运作时,客户端请求将被重定向至离客户端位置最近的托管 HSM。 客户端请求会转到最近区域的专用终结点,然后由流量管理器定向到同一区域的托管 HSM。

    阐明第一个托管 HSM 多区域场景的关系图。

  • 当多区域复制场景中的一个托管 HSM(例如英国南部)在启用了专用终结点的情况下不可用时,客户端请求将被重定向到可用的托管 HSM(中国中东部)。 来自英国南部的客户端请求将先转到英国南部的专用终结点,然后由流量管理器定向到美国中西部托管 HSM。

    图解说明第二个托管 HSM 多区域场景。

  • 在主要区域和扩展区域中管理的 HSM,但在主要区域或扩展区域中仅配置了一个专用终结点。 对于来自不同虚拟网络 (VNET1) 的客户端通过不同虚拟网络 (VNET2) 中的专用终结点连接到托管 HSM,需要在两个虚拟网络之间建立 VNET 对等互连。 可以为在创建专用终结点期间创建的专用 DNS 区域添加虚拟网络链接。

    阐明第三个托管 HSM 多区域场景的关系图。

在此图中,专用终结点仅在英国南部区域创建,同时有两个托管 HSM 正在运行,一个在英国南部,另一个在中国中东部。 来自这两个客户端的请求会转到英国南部托管 HSM,因为请求通过专用终结点路由,在这种情况下,专用终结点位置位于英国南部。

展示第四个托管 HSM 多区域场景的图表。

在此图中,专用终结点仅在英国南部区域创建,仅中国东部的托管 HSM 可用,英国南部的托管 HSM 不可用。 在这种情况下,请求将通过英国南部的专用终结点重定向到中国中东部的托管 HSM,因为流量管理器检测到英国南部的托管 HSM 不可用。

阐明第五个托管 HSM 多区域场景的关系图。

Azure CLI命令

如果正在新建托管 HSM 池,然后扩展到扩展区域,请在扩展之前参考这些说明。 如果从现有的托管 HSM 池进行扩展,请使用以下说明将 HSM 池扩展到扩展区域。

注意

这些命令需要Azure CLI版本 2.48.1 或更高版本。 若要安装最新版本,请参阅 如何安装 Azure CLI

将主要 HSM 扩展到扩展区域

要将托管 HSM 池扩展到另一个区域,请运行以下命令,从而自动在扩展区域中创建一个新的 HSM。

az keyvault region add --hsm-name "<hsm-name>" --region "<region>"

注意

<hsm-name> 是主 HSM 池名称;<region> 是要将其扩展到的扩展区域。

重要

在启动扩展到新区域后,在扩展区域池完全预配之前,不要对主要 HSM 执行任何操作。 这对于网络更改(例如配置专用终结点或更新防火墙规则)尤其重要。 在扩展池准备就绪之前执行这些作可能会导致区域之间的配置不一致。

若要验证扩展区域池是否已完全预配,请运行:

az keyvault region list --hsm-name <hsm-name>

确认扩展区域显示在输出中,并且其预配状态为成功,然后再继续执行任何其他 HSM操作。

从主要 HSM 中删除扩展区域

删除扩展 HSM 后,将清除其他区域中的 HSM 分区。 必须先删除所有次要托管 HSM,才能对主要托管 HSM 执行软删除或清除操作。 使用此命令只能删除次要项。 只能使用软删除清除命令删除主项

az keyvault region remove --hsm-name <hsm-name> --region <region>

列出所有区域

az keyvault region list --hsm-name <hsm-name>

后续步骤