通过


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

托管 HSM 的访问控制

Azure Key Vault 托管 HSM 是保护加密密钥的云服务。 由于此数据对业务至关重要,因此需要仅允许授权的应用程序和用户访问数据来保护托管硬件安全模块(HSM)。

本文概述了托管 HSM 访问控制模型。 其中介绍了身份验证和授权,并介绍了如何保护对托管 HSM 的访问。 有关实际实现指南,请参阅保护对托管 HSM 的访问

注释

Azure Key Vault 资源提供程序支持两种资源类型: 保管库托管 HSM。 本文中所述的访问控制仅适用于 托管 HSM。 若要详细了解 Key Vault 保管库的访问控制,请参阅 使用 Azure 基于角色的访问控制提供对 Key Vault 密钥、证书和机密的访问权限

访问控制模型

通过两个接口控制对托管 HSM 的访问:

  • 控制面板
  • 数据平面

在控制平面上,您可以管理 HSM 本体。 此平面中的操作包括创建和删除托管 HSM 以及检索托管 HSM 属性。

在数据平面上,你要处理存储在托管 HSM 中的数据。 也就是说,使用 HSM 支持的加密密钥。 可以添加、删除、修改和使用密钥来执行加密作、管理角色分配以控制对密钥的访问、创建完整的 HSM 备份、还原完整备份以及从数据平面接口管理安全域。

若要在任一平面中访问托管 HSM,所有调用方都必须具有适当的身份验证和授权。 身份验证 会建立调用方的身份。 授权 确定调用方可执行哪些作。 调用方可以是Microsoft Entra ID 中定义的 任一安全主体 :用户、组、服务主体或托管标识。

两个平面均使用 Microsoft Entra ID 进行身份验证。 对于授权,它们使用不同的系统:

  • 控制平面使用 Azure 基于角色的访问控制(Azure RBAC),这是基于 Azure 资源管理器构建的授权系统。
  • 数据平面使用托管 HSM 级别的 RBAC(托管 HSM 本地 RBAC),这是在托管 HSM 级别实施并强制执行的授权系统。

创建托管 HSM 时,请求者提供数据平面管理员列表(支持所有 安全主体 )。 只有这些管理员可以访问托管 HSM 数据平面,以执行关键操作和管理数据平面角色分配(托管 HSM 本地 RBAC)。

两个平面的权限模型使用相同的语法,但它们在不同的级别强制执行,角色分配使用不同的范围。 控制层面的 Azure RBAC 由 Azure 资源管理器强制执行,而数据层面的托管 HSM 本地 RBAC 则由托管 HSM 本身强制执行。

重要

向安全主体授予控制平面访问权限不会授予安全主体数据平面访问权限。 例如,具有控制平面访问权限的安全主体不会自动获得密钥或数据平面角色分配的访问权限。 这种隔离是有意为之的,以防止无意扩展影响对存储在托管 HSM 中密钥的访问权限。

但有一个例外:Microsoft Entra 全局管理员角色的成员始终可以将用户添加到托管 HSM 管理员角色以进行恢复,例如,当不再有任何有效的托管 HSM 管理员帐户时。 有关详细信息,请参阅 Microsoft保护全局管理员角色的 Entra ID 最佳做法

例如,订阅管理员(因为他们对订阅中的所有资源具有参与者权限)可以删除其订阅中的托管 HSM。 但是,如果他们没有通过托管 HSM 本地 RBAC 授予的数据平面访问权限,则他们无法访问密钥或管理托管 HSM 中的角色分配,以授予自己或其他人对数据平面的访问权限。

Microsoft Entra 身份验证

在 Azure 订阅中创建托管 HSM 时,托管 HSM 会自动与订阅的 Microsoft Entra 租户相关联。 这两个平面中的所有调用方都必须在此租户中注册并进行身份验证,然后才能访问该托管 HSM。

应用程序在调用任一平面之前使用 Microsoft Entra ID 进行身份验证。 应用程序可以使用任何 受支持的身份验证方法 ,具体取决于应用程序类型。 应用程序通过获取平面中资源的令牌来获取访问权限。 资源是控制平面或数据平面中的终结点,具体取决于 Azure 环境。 应用程序使用令牌并将 REST API 请求发送到托管 HSM 终结点。 若要了解详细信息,请查看整个 身份验证流

使用同一身份验证机制对两个工作层面具有以下优点:

  • 组织可以集中控制对其组织中所有托管 HSM 的访问。
  • 如果用户离开组织,他们将立即失去对组织中所有托管 HSM 的访问权限。
  • 组织可以使用Microsoft Entra ID 中的选项来自定义身份验证,例如启用多重身份验证以实现添加的安全性。

资源端点

安全主体通过终结点访问平面。 两个平面的访问控制独立运行。 若要向应用程序授予访问权限来使用托管 HSM 中的密钥,请使用托管 HSM 本地 RBAC 授予数据平面访问权限。 若要授予用户对托管 HSM 资源的访问权限,可以创建、读取、删除、移动托管 HSM 并编辑其他属性和标记,请使用 Azure RBAC。

下表显示了控制平面和数据平面的终结点。

访问平面 访问端点 Operations 访问控制机制
控制面板 全球:
management.azure.com:443
创建、读取、更新、删除和移动托管 HSM

设置托管 HSM 标签
Azure RBAC
数据平面 全球:
<hsm-name>.managedhsm.azure.net:443
密钥:解密、加密、
解包、包装、验证、签名、获取、列出、更新、创建、导入、删除、备份、还原、清除

数据平面角色管理(托管 HSM 本地 RBAC):列出角色定义、分配角色、删除角色分配、定义自定义角色

备份和还原:备份、还原、检查备份和还原作的状态

安全域:下载并上传安全域
托管 HSM 本地 RBAC

控制平面和 Azure RBAC

在控制平面中,使用 Azure RBAC 来授权调用方可以执行的操作。 在 Azure RBAC 模型中,每个 Azure 订阅都有一个Microsoft Entra ID 的实例。 你可以从此目录授予对用户、组和应用程序的访问权限。 授予访问权限以管理使用 Azure 资源管理器部署模型的订阅资源。 若要授予访问权限,请使用 Azure 门户Azure CLIAzure PowerShellAzure 资源管理器 REST API

在资源组中创建密钥保管库,并使用 Microsoft Entra ID 管理访问权限。 授予用户或组管理资源组中的密钥保管库的能力。 通过分配适当的 Azure 角色,在特定的范围级别授予访问权限。 若要授予对用户管理密钥保管库的访问权限,请将预定义 key vault Contributor 的角色分配给特定范围内的用户。 可以将以下范围级别分配给 Azure 角色:

  • 管理组:在订阅级别分配的 Azure 角色适用于该管理组中的所有订阅。
  • 订阅:在订阅级别分配的 Azure 角色适用于该订阅中的所有资源组和资源。
  • 资源组:在资源组级别分配的 Azure 角色适用于该资源组中的所有资源。
  • 特定资源:为特定资源分配的 Azure 角色适用于该资源。 在这种情况下,资源是特定的密钥保管库。

预定义了多个角色。 如果预定义角色不符合你的需求,则可以定义自己的角色。 有关详细信息,请参阅 Azure RBAC:内置角色

数据平面和托管 HSM 本地 RBAC

通过分配角色授予安全主体执行特定密钥操作的权限。 对于每个角色分配,必须指定该分配适用的角色和范围。 对于托管 HSM 本地 RBAC,有两个范围可用:

  • //keys:HSM 级范围。 在此范围分配角色的安全主体可以对托管 HSM 中的所有对象(密钥)执行在角色中定义的操作。
  • /keys/<key-name>:键级范围。 在此范围内被分配角色的安全主体只能针对指定密钥的所有版本执行该角色中定义的操作。

托管 HSM 本地 RBAC 具有多个内置角色,用于处理不同的访问控制场景。 有关角色及其权限的完整列表,请参阅托管 HSM 的本地 RBAC 内置角色

Microsoft Entra Privileged Identity Management (PIM)

若要增强管理角色的安全性,请使用 Microsoft Entra Privileged Identity Management (PIM)。 PIM 支持实时访问,从而降低长期管理权限的风险。 它还提供角色分配的可见性,并对提升的访问权限强制实施审批工作流。

职责分离和访问控制

这是一种安全最佳做法,可在团队角色之间分离职责,并仅授予特定作业功能所需的最低访问权限。 此原则有助于防止未经授权的访问,并限制意外或恶意作的潜在影响。

为托管 HSM 实现访问控制时,请考虑建立以下常见功能角色:

  • 安全团队:需要权限来管理 HSM、控制密钥生命周期和配置访问控制设置。
  • 应用程序开发人员:需要对密钥的引用,而无需直接访问 HSM。
  • 服务/代码:需要权限才能执行特定的加密作,同时受限于更广泛的密钥管理功能。
  • 审核员:需要监视和日志访问功能,但无权修改 HSM 设置或密钥。

这些概念角色应只授予执行其职责所需的特定权限。 实现职责分离需要同时进行控制平面 (Azure RBAC) 和数据平面(托管 HSM 本地 RBAC)的角色分配。

有关使用特定示例和 Azure CLI 命令实现职责分离的详细教程,请参阅 安全访问托管 HSM

后续步骤