Azure Key Vault 托管 HSM 是一项保护加密密钥的云服务。 因为此数据是敏感数据和业务关键数据,所以需要保护对托管硬件安全模块 (HSM),只允许得到授权的应用程序和用户访问数据。
本文简要介绍了托管 HSM 访问控制模型。 其中介绍了身份验证和授权,以及如何保护对托管 HSM 的访问。 有关实际实施指南,请参阅 如何对您的托管 HSM 进行安全访问。
注意
Azure 密钥保管库资源提供程序支持两种资源类型:保管库和托管 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 环境。 应用程序使用该令牌并向托管 HSM 终结点发送 REST API 请求。 若要了解详细信息,请查看整个身份验证流。
对这两种平面使用单一身份验证机制具有多个优点:
- 组织可集中控制对其组织中的所有托管 HSM 的访问。
- 离职的用户会立即失去对组织中所有托管 HSM 的访问权限。
- 组织可以使用Microsoft Entra ID 中的选项来自定义身份验证,例如启用多重身份验证以实现添加的安全性。
资源终结点
安全主体通过终结点访问平面。 两个平面的访问控制独立运行。 若要向应用程序授予访问权限来使用托管 HSM 中的密钥,请使用托管 HSM 本地 RBAC 授予数据平面访问权限。 若要向用户授予访问托管 HSM 资源的权限来创建、读取、删除、移动托管 HSM 并编辑其他属性和标记,请使用 Azure RBAC。
下表显示了控制平面和数据平面的终结点。
访问平面 | 访问终结点 | 操作 | 访问控制机制 |
---|---|---|---|
控制面板 |
全球:management.chinacloudapi.cn:443 |
创建、读取、更新、删除和移动托管 HSM 设置托管 HSM 标记 |
Azure RBAC |
数据平面 |
全球:<hsm-name>.managedhsm.chinacloudapi.cn:443 |
密钥:解密、加密、 解包、包装、验证、签名、获取、列出、更新、创建、导入、删除、备份、还原、清除 数据平面角色管理(托管 HSM 本地 RBAC):列出角色定义、分配角色、删除角色分配、定义自定义角色 备份和还原:备份、还原、检查备份和还原操作的状态 安全域:下载和上传安全域 |
托管 HSM 本地 RBAC |
控制平面和 Azure RBAC
在控制平面中,您可以使用 Azure RBAC 来授权调用方能够执行的操作。 在 Azure RBAC 模型中,每个 Azure 订阅都有一个 Microsoft Entra ID 实例。 可以从此目录向用户、组和应用程序授予访问权限。 授予访问权限以管理使用 Azure 资源管理器部署模型的订阅资源。 若要授予访问权限,请使用 Azure 门户、Azure CLI、Azure PowerShell 或 Azure 资源管理器 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。
后续步骤
- 有关面向管理员的入门教程,请参阅什么是托管 HSM?。
- 有关管理角色的详细信息,请参阅托管 HSM 本地 RBAC。
- 若要详细了解托管 HSM 的使用情况日志记录,请参阅托管 HSM 日志记录。
- 有关访问控制的实际实现指南,请参阅 安全访问托管 HSM。