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

适用于静态数据的 Azure AI 机器人服务加密

适用于:SDK v4

将数据保存到云时,Azure AI 机器人服务会自动加密这些数据,以保护数据并履行组织安全性与合规性的承诺。

加密和解密都是透明的,这意味着将替你管理加密和访问。 你的数据默认情况下就是安全的,你无需修改代码或应用程序,即可利用加密。

关于加密密钥管理

默认情况下,订阅使用 Microsoft 托管的加密密钥。 你可以使用自己的密钥(称为客户管理的密钥)来管理机器人资源。 使用客户管理的密钥可以更灵活地创建、轮换、禁用和撤销对 Azure AI 机器人服务存储的数据的访问控制。 此外,你还可以审核用于保护数据的加密密钥。

加密数据时,Azure AI 机器人服务将在两个加密级别进行加密。 在未启用客户管理的密钥的情况下,使用的两个密钥都是 Microsoft 管理的密钥。 在启用了客户管理的密钥的情况下,将同时使用客户管理的密钥和 Microsoft 管理的密钥来加密数据。

客户管理的密钥和 Azure Key Vault

若要使用客户管理的密钥功能,必须在 Azure 密钥保管库中存储和管理密钥。 可以创建自己的密钥并将其存储在 Key Vault 中,或者使用 Azure Key Vault API 来生成密钥。 Azure 机器人资源与密钥保管库必须位于同一 Microsoft Entra ID 租户中,但它们可以位于不同订阅中。 有关 Azure Key Vault 的详细信息,请参阅什么是 Azure Key Vault?

使用客户管理的密钥时,Azure AI 机器人服务将在其存储中加密数据。 如果撤销了对该密钥的访问权限或删除了该密钥,机器人将无法使用 Azure AI 机器人服务发送或接收消息,并且你无法在 Azure 门户中访问或编辑机器人的配置。

通过门户创建 Azure 机器人资源时,Azure 会生成应用 ID密码,但不将它们存储在 Azure Key Vault 中。 可以将 Key Vault与 Azure AI 机器人服务配合使用。 有关信息,请参阅配置 Web 应用以连接到 Key Vault。 有关如何使用 Key Vault 存储和检索机密的示例,请参阅快速入门:适用于 .NET 的 Azure Key Vault 机密客户端库(SDK v4)

重要

在无权访问客户管理的加密密钥的情况下,Azure AI 机器人服务团队无法恢复机器人所需的该密钥。

加密哪些数据?

Azure AI 机器人服务存储有关机器人的客户数据、机器人使用的通道、开发人员指定的配置设置,以及当前活动聊天的记录(如果需要)。 它还会短暂存储(不超过 24 小时)通过 Direct Line 或 Web 聊天通道发送的消息以及上传的任何附件。

所有客户数据将通过 Microsoft 管理的加密密钥或者 Microsoft 和客户管理的加密密钥,在 Azure AI 机器人服务的两个加密层中进行加密。 Azure AI 机器人服务使用 Microsoft 管理的加密密钥对暂时存储的数据进行加密,并根据 Azure 机器人资源的配置,使用 Microsoft 或客户管理的加密密钥对长期数据进行加密。

注意

由于 Azure AI 机器人服务旨在让客户能够在 Azure AI 机器人服务以外的其他服务中向用户传递消息以及从用户传递消息,因此加密不会扩展到其他这些服务。 这意味着,虽然此过程由 Azure AI 机器人服务控制,并且数据将按照本文中的指导在加密的情况下进行存储,但是,当数据离开该服务并传递到另一个服务时,数据将会解密,然后在经过 TLS 1.2 加密的情况下发送到目标服务。

如何配置 Azure 密钥保管库实例

将客户管理的密钥用于 Azure AI 机器人服务需要在你打算用于托管加密密钥的 Azure 密钥保管库实例上启用以下两个属性:“软删除”和“清除保护”。 这些功能确保在出于某种原因意外删除了密钥时可以恢复密钥。 有关软删除和清除保护的详细信息,请参阅 Azure 密钥保管库软删除概述

Screenshot of soft delete and purge protection enabled.

如果使用的是现有 Azure Key Vault 实例,则可以通过查看 Azure 门户中的“属性”部分来验证是否已启用这些属性。 如果未启用其中的任何一个属性,请参阅如何启用软删除和清除保护中的“密钥保管库”部分。

授予 Azure AI 机器人服务对密钥保管库的访问权限

要使 Azure AI 机器人服务能够出于此目的访问你创建的密钥保管库,需要设置一个访问策略,为 Azure AI 机器人服务的服务主体授予当前权限集。 有关 Azure 密钥保管库的详细信息,包括如何创建密钥保管库,请参阅关于 Azure 密钥保管库

  1. 在包含密钥保管库的订阅中注册 Azure AI 机器人服务资源提供程序。

    1. 转到 Azure 门户
    2. 打开“订阅”边栏选项卡,选择包含密钥保管库的订阅。
    3. 打开“资源提供程序”边栏选项卡,注册“Microsoft.BotService”资源提供程序。

    Microsoft.BotService registered as a resource provider

  2. Azure Key Vault 支持两种类型的权限模型:Azure 基于角色的访问控制 (RBAC) 和保管库访问策略。 可以选择使用任一权限模型。 确保 Key Vault 的“网络”边栏选项卡中的“防火墙和虚拟网络”设置为“在此步骤允许从所有网络进行公共访问”。 此外,请确保已向操作员授予“密钥管理操作”权限。

    Screenshot of the two permission models available for your key vault.

    1. 若要在密钥保管库上配置 Azure RBAC 权限模型:

      1. 打开“密钥保管库”边栏选项卡并选择你的密钥保管库。
      2. 转到“访问控制(IAM)”边栏选项卡,并将 Key Vault Crypto Service Encryption User 角色分配给 Bot Service CMEK Prod。只有具有订阅所有者角色的用户才能进行此更改。

      Screenshot of key vault configuration showing the crypto service encryption user role has been added.

    2. 若要在密钥保管库上配置 Key Vault 访问策略权限模型:

      1. 打开“密钥保管库”边栏选项卡并选择你的密钥保管库。
      2. 添加 Bot Service CMEK Prod 应用程序作为访问策略,并对其分配以下权限:
      • 获取(从密钥管理操作
      • 解包密钥:(从密码学操作
      • 打包密钥:(从密码学操作
      1. 选择“保存”以保存所做的任何更改。

      Bot Service CMEK Prod added as an access policy

  3. 允许密钥保管库绕过防火墙。

    1. 打开“密钥保管库”边栏选项卡并选择你的密钥保管库。
    2. 打开“网络”边栏选项卡并转到“防火墙和虚拟网络”选项卡。
    3. 如果“允许从以下位置访问”设置为“禁用公共访问”,请确保选中“允许受信任的Microsoft 服务绕过此防火墙”。
    4. 选择“保存”以保存所做的任何更改。

    Firewall exception added for Key Vault

启用客户管理的密钥

若要使用客户管理的加密密钥加密机器人,请执行以下步骤:

  1. 打开机器人的“Azure 机器人”资源边栏选项卡。

  2. 打开机器人的“加密”边栏选项卡,然后为“加密类型”选择“客户管理的密钥”。

  3. 输入密钥的完整 URI(包括版本),或单击“选择密钥保管库和密钥”以查找你的密钥。

  4. 单击边栏选项卡顶部的“保存”。

    Bot resource using customer-managed encryption

完成这些步骤后,Azure AI 机器人服务将启动加密过程,最长可能需要 24 小时才能完成。 在此期间,机器人仍可正常运行。

轮换客户管理的密钥

若要轮换客户管理的加密密钥,必须更新 Azure AI 机器人服务资源,以使用新密钥的新 URI(或现有密钥的新版本)。

由于使用新密钥重新加密是异步操作,因此请确保旧密钥仍然可用,以便可以继续解密数据;否则机器人可能会停止工作。 应将旧密钥保留至少一周。

撤消对客户管理的密钥的访问权限

若要撤销访问权限,请从密钥保管库中删除“Bot Service CMEK Prod”服务主体的访问策略。

注意

撤销访问权限会破坏与机器人关联的大部分功能。 若要禁用客户管理的密钥功能,请在撤销访问权限之前关闭该功能,以确保机器人可继续正常工作。

后续步骤

详细了解 Azure 密钥保管库