为 Azure 信息保护自带密钥 (BYOK) 详细信息

Note

您是在寻找 Microsoft Purview 信息保护(原 Microsoft 信息保护,MIP)吗?

Azure 信息保护加载项 已停用 ,并替换为内置于 Microsoft 365 应用和服务中的标签。 详细了解 其他 Azure 信息保护组件的支持状态

具有 Azure 信息保护订阅的组织可以选择为其租户配置自己的密钥,来代替 Microsoft 生成的默认密钥。 此配置通常称为“创建自己的密钥”(BYOK)。

BYOK 和 使用情况日志记录 与 Azure 信息保护使用的 Azure Rights Management 服务集成的应用程序能够无缝协作。

支持的应用程序包括:

  • 云服务,如 Microsoft SharePoint 或 Microsoft 365

  • 运行通过 RMS 连接器使用 Azure Rights Management 服务的 Exchange 和 SharePoint 应用程序的本地服务

  • 客户端应用程序,如 Office 2024 和 Office 2021。

Tip

如果需要,请使用其他本地密钥将其他安全性应用于特定文档。 有关详细信息,请参阅 双密钥加密 (DKE) 保护 (仅限统一标记客户端)。

Azure Key Vault 密钥存储

客户生成的密钥必须存储在 Azure Key Vault 中,以便 BYOK 保护。

Note

在 Azure Key Vault 中使用受 HSM 保护的密钥需要 Azure Key Vault 高级服务层级,这会产生额外的每月订阅费用。

共享密钥保管库和订阅

建议为租户 密钥使用专用密钥保管库 。 专用密钥保管库有助于确保其他服务的调用不会超出 服务限制 。 超出存储租户密钥的密钥保管库的使用上限可能会导致 Azure Rights Management 服务的响应时间被限制。

由于不同的服务具有不同的密钥管理要求,Microsoft还建议为密钥保管库使用 专用 Azure 订阅 。 专用 Azure 订阅:

  • 帮助防止配置错误

  • 当不同的服务具有不同的管理员时,更安全

若要与其他使用 Azure Key Vault 的服务共享 Azure 订阅,请确保订阅共享一组常见的管理员。 确认使用订阅的所有管理员都充分了解他们可以访问的每个密钥,这意味着他们不太可能错误配置密钥。

示例:当管理 Azure 信息保护租户密钥的管理员同时负责管理 Office 365 客户密钥和 CRM 在线密钥时,使用共享的 Azure 订阅。 如果这些服务的密钥管理员不同,我们建议使用专用订阅。

使用 Azure Key Vault 的好处

Azure Key Vault 为许多使用加密的基于云的和本地服务提供了集中且一致的密钥管理解决方案。

除了管理密钥之外,Azure Key Vault 还为安全管理员提供相同的管理体验,用于存储、访问和管理证书和机密(例如密码)用于使用加密的其他服务和应用程序。

将租户密钥存储在 Azure Key Vault 中具有以下优势:

Advantage Description
内置接口 Azure Key Vault 支持许多用于密钥管理的内置接口,包括 PowerShell、CLI、REST API 和 Azure 门户。

其他服务和工具已与 Key Vault 集成,用于针对特定任务(例如监视)的优化功能。

例如,使用 Operations Management Suite Log Analytics 分析关键使用情况日志,在满足指定条件时设置警报,等等。
角色分离 Azure Key Vault 提供角色分离作为公认的安全最佳做法。

角色分离可确保 Azure 信息保护管理员可以专注于其最高优先级,包括管理数据分类和保护,以及针对特定安全或合规性要求的加密密钥和策略。
主密钥位置 Azure Key Vault 在多种地域均可使用,并支持需符合主密钥存储位置限制的组织。

有关详细信息,请参阅 Azure 站点上的 “产品可用区域 ”页。
隔离的安全域 Azure Key Vault 在其数据中心(例如北美、EMEA(欧洲、中东和非洲)和亚洲等区域使用单独的安全域。

Azure Key Vault 还使用不同的 Azure 实例。
统一体验 Azure Key Vault 还允许安全管理员为使用加密的其他服务存储、访问和管理证书和机密,例如密码。

对租户密钥使用 Azure Key Vault 可为管理所有这些元素的管理员提供无缝的用户体验。

有关最新更新并了解其他服务如何使用 Azure Key Vault,请访问 Azure Key Vault 团队博客

BYOK 的使用日志记录

使用情况日志由向 Azure Rights Management 服务发出请求的每个应用程序生成。

尽管使用日志记录是可选的,但建议使用 Azure 信息保护中的近实时使用情况日志来准确了解租户密钥的使用方式和何时使用。

Tip

为了进一步保证,可以使用 Azure Key Vault 日志记录交叉引用 Azure 信息保护使用情况日志记录。 Key Vault 日志提供可靠的方法来独立监视密钥是否仅由 Azure Rights Management 服务使用。

如有必要,请通过删除对密钥保管库的权限来立即撤销对密钥的访问权限。

用于创建和存储密钥的选项

Note

有关托管 HSM 产品/服务以及如何设置保管库和密钥的详细信息,请参阅 Azure Key Vault 文档

下面介绍了有关授予密钥授权的其他说明。

BYOK 支持在 Azure Key Vault 或本地创建的密钥。

如果在本地创建密钥,则必须将其传输到 Key Vault 或将其导入到 Key Vault 中,并将 Azure 信息保护配置为使用密钥。 从 Azure Key Vault 中执行任何其他密钥管理。

用于创建和存储自己的密钥的选项:

  • 在 Azure Key Vault 中创建。 创建密钥并将其作为受 HSM 保护的密钥或受软件保护的密钥存储在 Azure Key Vault 中。

Note

直接在 Azure Key Vault 中生成的密钥 不可导出 ,不能在 Azure Key Vault 外部使用。 如果组织要求密钥是可导出的,并且拥有密钥,则必须在本地创建密钥并导入到 Azure Key Vault,从而保留本地密钥的备份。 灾难恢复规划和测试应包括定期测试这些密钥恢复的措施。 可以从 Azure Key Vault 备份密钥,但只能导入到原始订阅。

  • 在本地创建。 在本地创建密钥,并使用下列选项之一将其传输到 Azure Key Vault:

    • 受 HSM 保护的密钥,作为受 HSM 保护的密钥传输。 选择的最典型方法。

      虽然此方法具有最大的管理开销,但组织可能需要遵循特定法规。 Azure Key Vault 使用的 HSM 具有 FIPS 140 验证

    • 软件保护密钥会被转换并以 HSM 保护密钥形式传输至 Azure Key Vault。 仅当从 Active Directory Rights Management Services(AD RMS)迁移时,才支持此方法。

    • 在本地创建为受软件保护的密钥,并将其作为软件保护的密钥传输到 Azure Key Vault。 此方法需要一个 .PFX 证书文件。

例如,执行以下作以使用在本地创建的密钥:

  1. 根据组织的 IT 和安全策略在本地生成租户密钥。 此密钥是主副本。 它保留在本地,你负责其备份。

  2. 创建主密钥的副本,并将其从 HSM 安全地传输到 Azure Key Vault。 在此过程中,密钥的主副本永远不会离开硬件保护边界。

传输后,密钥的副本受 Azure Key Vault 保护。

导出受信任的发布域

如果决定停止使用 Azure 信息保护,则需要受信任的发布域(TPD)来解密受 Azure 信息保护保护的内容。

但是,如果对 Azure 信息保护密钥使用 BYOK,则不支持导出 TPD。

若要准备此方案,请确保提前创建合适的 TPD。 有关详细信息,请参阅 如何准备 Azure 信息保护“云退出”计划

为 Azure 信息保护租户密钥实现 BYOK

使用以下步骤实现 BYOK:

  1. 查看 BYOK 先决条件
  2. 选择密钥保管库的位置
  3. 创建和配置密钥

BYOK 的先决条件

BYOK 先决条件因系统配置而异。 根据需要验证系统是否符合以下先决条件:

Requirement Description
Azure 订阅 所有配置都需要这个要求。
有关详细信息,请参阅 “验证是否具有与 BYOK 兼容的 Azure 订阅”。
用于 Azure 信息保护的 AIPService PowerShell 模块 所有配置都需要这个要求。
BYOK 的 Azure Key Vault 先决条件 如果使用本地创建的受 HSM 保护的密钥,请确保也符合 Azure Key Vault 文档中所列 BYOK 的先决条件
Thales 固件版本 11.62 如果要从 AD RMS 迁移到 Azure 信息保护,则必须具有 11.62 的 Thales 固件版本,方法是使用软件密钥到硬件密钥,并将 Thales 固件用于 HSM。
受信任的Microsoft服务的防火墙旁路 如果包含租户密钥的密钥保管库使用 Azure Key Vault 的虚拟网络服务终结点,则必须允许受信任的Microsoft服务绕过此防火墙。
有关详细信息,请参阅 Azure Key Vault 的虚拟网络服务终结点

验证是否具有与 BYOK 兼容的 Azure 订阅

Azure 信息保护租户必须具有 Azure 订阅。 如果还没有试用版,可以注册 试用版。 但是,若要使用受 HSM 保护的密钥,必须具有 Azure Key Vault 高级服务层。

提供对 Microsoft Entra 配置和 Azure Rights Management 自定义模板配置的访问权限的 Azure 订阅 不足以 使用 Azure Key Vault。

若要确认是否有与 BYOK 兼容的 Azure 订阅,请使用 Azure PowerShell cmdlet 执行以下作进行验证:

  1. 以管理员身份启动 Azure PowerShell 会话。

  2. 使用 Connect-AzAccount -Environment AzureChinaCloud 以 Azure 信息保护租户的全局管理员身份登录。

  3. 将显示的令牌复制到剪贴板。 然后,在浏览器中,转到 https://microsoft.com/devicelogin 并输入复制的令牌。

    有关详细信息,请参阅使用 Azure PowerShell 登录

  4. 在 PowerShell 会话中,输入 Get-AzSubscription并确认显示以下值:

    • 订阅名称和 ID
    • 您的 Azure 信息保护租户 ID
    • 确认状态已启用

    如果未显示任何值,并返回到提示符,则说明你没有 Azure 订阅可用于 BYOK。

选择密钥保管库位置

创建密钥保管库以包含要用作 Azure 信息的租户密钥的密钥时,必须指定一个位置。 此位置是 Azure 区域或 Azure 实例。

首先选择符合要求的选项,然后尽量减少网络延迟。

  • 如果出于符合性原因选择了 BYOK 密钥方法,这些符合性要求还可能要求哪些 Azure 区域或实例可用于存储 Azure 信息保护租户密钥。

  • 所有加密操作都涉及到通向您的 Azure 信息保护密钥的保护链。 因此,你可能希望通过在 Azure 信息保护租户所在的同一 Azure 区域或实例中创建密钥保管库来最大程度地减少这些调用所需的网络延迟。

若要标识 Azure 信息保护租户的位置,请使用 Get-AipServiceConfiguration PowerShell cmdlet 并从 URL 标识区域。 例如:

LicensingIntranetDistributionPointUrl : https://5c6bb73b-1038-4eec-863d-49bded473437.rms.na.aadrm.cn/_wmcs/licensing

下表列出了建议的 Azure 区域和实例,以最大程度地降低网络延迟:

Azure 区域或实例 密钥保管库的建议位置
rms.aadrm.cn 中国东部 2中国北部 2

创建和配置密钥

Important

有关特定于托管 HSM 的信息,请参阅 通过 Azure CLI 为托管 HSM 密钥启用密钥授权

创建 Azure Key Vault 和要用于 Azure 信息保护的密钥。 有关详细信息,请参阅 Azure Key Vault 文档

Important

创建 Azure Key Vault 后,立即启用软删除和清除保护。 这将防止意外删除保管库和密钥。 密钥丢失且备份不足将导致加密文件和电子邮件完全数据丢失。 有关详细信息,请参阅 Azure Key Vault:软删除概述

对于配置 Azure Key Vault 和 BYOK 的密钥,请注意以下事项:

密钥长度要求

创建密钥时,请确保密钥长度为 2048 位(建议)或 1024 位。 Azure 信息保护不支持其他密钥长度。

Note

1024 位密钥不被视为为活动租户密钥提供足够的保护级别。

Microsoft不支持使用较低的密钥长度,例如 1024 位 RSA 密钥,以及提供不充分保护级别的协议的相关使用,例如 SHA-1。

在本地创建受 HSM 保护的密钥并将其传输到密钥保管库

若要在本地创建受 HSM 保护的密钥并将其作为受 HSM 保护的密钥传输到密钥保管库,请按照 Azure Key Vault 文档中的过程作: 如何为 Azure Key Vault 生成和传输受 HSM 保护的密钥

若要使 Azure 信息保护使用传输的密钥,必须允许对密钥执行所有 Key Vault 操作,包括:

  • 加密
  • 解密
  • wrapKey
  • unwrapKey
  • sign
  • verify

默认情况下,允许所有 Key Vault 操作。

若要检查特定密钥的允许作,请运行以下 PowerShell 命令:

(Get-AzKeyVaultKey -VaultName <key vault name> -Name <key name>).Attributes.KeyOps

如有必要,请使用 Update-AzKeyVaultKeyKeyOps 参数添加允许的操作。

使用密钥 ID 配置 Azure 信息保护

存储在 Azure Key Vault 中的密钥每个密钥都有密钥 ID。

密钥 ID 是一个 URL,其中包含密钥保管库的名称、密钥容器、密钥名称和密钥版本。 例如:https://contosorms-kv.vault.azure.cn/keys/contosorms-byok/aaaabbbbcccc111122223333

通过指定密钥保管库 URL 配置 Azure 信息保护以使用密钥。

授权 Azure Rights Management 服务使用密钥

必须授权 Azure Rights Management 服务使用密钥。 Azure Key Vault 管理员可以使用 Azure 门户或 Azure PowerShell 启用此授权。

使用 Azure 门户启用密钥授权
  1. 登录到 Azure 门户,然后转到密钥保管库><您的密钥保管库名称>>访问策略>添加新建

  2. “添加访问策略 ”窗格中的 “从模板配置”(可选) 列表框中,选择 “Azure 信息保护 BYOK”,然后单击“ 确定”。

    所选模板具有以下配置:

    • Select 主体值设置为Microsoft Rights Management Services
    • 选定的 密钥权限 包括 “获取”、“ 解密”和 “签名”。
使用 PowerShell 启用密钥授权

运行 Key Vault PowerShell cmdlet Set-AzKeyVaultAccessPolicy,并使用 GUID 00000012-0000-0000-c000-000000000000 向 Azure Rights Management 服务主体授予权限。

例如:

Set-AzKeyVaultAccessPolicy -VaultName 'ContosoRMS-kv' -ResourceGroupName 'ContosoRMS-byok-rg' -ServicePrincipalName 00000012-0000-0000-c000-000000000000 -PermissionsToKeys decrypt,sign,get
通过 Azure CLI 为托管 HSM 密钥启用密钥授权

若要将 Azure Rights Management 服务主体用户权限授予为 托管 HSM Crypto 用户,请运行以下命令:

az keyvault role assignment create --hsm-name "ContosoMHSM" --role "Managed HSM Crypto User" --assignee-principal-type ServicePrincipal --assignee https://aadrm.cn/ --scope /keys/contosomhskey

Where:

  • ContosoMHSM 是一个示例 HSM 名称。 运行此命令时,请将此值替换为自己的 HSM 名称。

托管 HSM Crypto 用户角色允许用户解密、签名和获取密钥的权限,这些密钥都是托管 HSM 功能所必需的。

配置 Azure 信息保护以使用密钥

完成上述所有步骤后,即可将 Azure 信息保护配置为将此密钥用作组织的租户密钥。

使用 Azure RMS cmdlet 运行以下命令:

  1. 连接到 Azure Rights Management 服务并登录:

    Connect-AipService -EnvironmentName AzureChinaCloud
    
  2. 运行 Use-AipServiceKeyVaultKey cmdlet,指定密钥 URL。 例如:

    Use-AipServiceKeyVaultKey -KeyVaultKeyUrl "https://contosorms-kv.vault.azure.cn/keys/contosorms-byok/<key-version>"
    

    Important

    在此示例中, <key-version> 是要使用的密钥的版本。 如果未指定版本,则默认使用密钥的当前版本,并且命令可能看起来正常工作。 但是,如果密钥稍后更新或续订,即使再次运行 Use-AipServiceKeyVaultKey 命令,Azure Rights Management 服务也会停止为租户工作。

    根据需要使用 Get-AzKeyVaultKey 命令获取当前密钥的版本号。

    例如:Get-AzKeyVaultKey -VaultName 'contosorms-kv' -KeyName 'contosorms-byok'

    若要确认是否已为 Azure 信息保护正确设置密钥 URL,请在 Azure Key Vault 中运行 Get-AzKeyVaultKey 命令以显示密钥 URL。

  3. 如果 Azure Rights Management 服务已激活,请运行 Set-AipServiceKeyProperties ,告知 Azure 信息保护将此密钥用作 Azure Rights Management 服务的活动租户密钥。

Azure 信息保护现已配置为使用您的密钥,而不是为您的租户自动创建的默认由 Microsoft 创建的密钥。

后续步骤

配置 BYOK 保护后,请继续开始使用 租户根密钥 ,了解有关使用和管理密钥的详细信息。