适用于静态数据的 Azure AI 机器人服务加密
本文内容
适用于:SDK v4
将数据保存到云时,Azure AI 机器人服务会自动加密这些数据,以保护数据并履行组织安全性与合规性的承诺。
加密和解密都是透明的,这意味着将替你管理加密和访问。 你的数据默认情况下就是安全的,你无需修改代码或应用程序,即可利用加密。
默认情况下,订阅使用 Azure 管理的加密密钥。 你可以使用自己的密钥(称为客户管理的密钥)来管理机器人资源。 使用客户管理的密钥可以更灵活地创建、轮换、禁用和撤销对 Azure AI 机器人服务存储的数据的访问控制。 此外,你还可以审核用于保护数据的加密密钥。
加密数据时,Azure AI 机器人服务将在两个加密级别进行加密。 如果未启用客户管理的密钥,则使用的两个密钥都是 Azure 托管的密钥。 启用客户管理的密钥后,数据将使用客户管理的密钥和 Azure 托管的密钥进行加密。
若要使用客户管理的密钥功能,必须在 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 聊天通道发送的消息以及上传的任何附件。
所有客户数据在 Azure AI 机器人服务中都使用两层加密进行加密;使用 Azure 托管的加密密钥或Azure 和客户管理的加密密钥。 Azure AI 机器人服务使用 Azure 托管的加密密钥对临时存储的数据进行加密,并根据 Azure 机器人资源的配置,使用 Azure 或客户管理的加密密钥对长期数据进行加密。
备注
由于 Azure AI 机器人服务旨在让客户能够在 Azure AI 机器人服务以外的其他服务中向用户传递消息以及从用户传递消息,因此加密不会扩展到其他这些服务。 这意味着,虽然此过程由 Azure AI 机器人服务控制,并且数据将按照本文中的指导在加密的情况下进行存储,但是,当数据离开该服务并传递到另一个服务时,数据将会解密,然后在经过 TLS 1.2 加密的情况下发送到目标服务。
将客户管理的密钥用于 Azure AI 机器人服务需要在你打算用于托管加密密钥的 Azure 密钥保管库实例上启用以下两个属性:“软删除”和“清除保护”。 这些功能确保在出于某种原因意外删除了密钥时可以恢复密钥。 有关软删除和清除保护的详细信息,请参阅 Azure 密钥保管库软删除概述。
如果使用的是现有 Azure Key Vault 实例,则可以通过查看 Azure 门户中的“属性”部分来验证是否已启用这些属性。 如果未启用其中的任何一个属性,请参阅如何启用软删除和清除保护中的“密钥保管库”部分。
要使 Azure AI 机器人服务能够出于此目的访问你创建的密钥保管库,需要设置一个访问策略,为 Azure AI 机器人服务的服务主体授予当前权限集。 有关 Azure 密钥保管库的详细信息,包括如何创建密钥保管库,请参阅关于 Azure 密钥保管库。
在包含密钥保管库的订阅中注册 Azure AI 机器人服务资源提供程序。
- 转到 Azure 门户。
- 打开“订阅”边栏选项卡,选择包含密钥保管库的订阅。
- 打开“资源提供程序”边栏选项卡,注册“Microsoft.BotService”资源提供程序。
Azure Key Vault 支持两种类型的权限模型:Azure 基于角色的访问控制 (RBAC) 和保管库访问策略。 可以选择使用任一权限模型。 确保 Key Vault 的“网络”边栏选项卡中的“防火墙和虚拟网络”设置为“在此步骤允许从所有网络进行公共访问”。 此外,请确保已向操作员授予“密钥管理操作”权限。
若要在密钥保管库上配置 Azure RBAC 权限模型:
- 打开“密钥保管库”边栏选项卡并选择你的密钥保管库。
- 转到“访问控制(IAM)”边栏选项卡,并将 Key Vault Crypto Service Encryption User 角色分配给 Bot Service CMEK Prod。只有具有订阅所有者角色的用户才能进行此更改。
若要在密钥保管库上配置 Key Vault 访问策略权限模型:
- 打开“密钥保管库”边栏选项卡并选择你的密钥保管库。
- 添加 Bot Service CMEK Prod 应用程序作为访问策略,并对其分配以下权限:
- 获取(从密钥管理操作)
- 解包密钥:(从密码学操作)
- 打包密钥:(从密码学操作)
- 选择“保存”以保存所做的任何更改。
允许密钥保管库绕过防火墙。
打开“密钥保管库”边栏选项卡并选择你的密钥保管库。
打开“网络”边栏选项卡并转到“防火墙和虚拟网络”选项卡。
如果“允许从以下位置访问”设置为“禁用公共访问”,请确保选中“允许受信任的Microsoft 服务绕过此防火墙”。
选择“保存”以保存所做的任何更改。
若要使用客户管理的加密密钥加密机器人,请执行以下步骤:
打开机器人的“Azure 机器人”资源边栏选项卡。
打开机器人的“加密”边栏选项卡,然后为“加密类型”选择“客户管理的密钥”。
输入密钥的完整 URI(包括版本),或单击“选择密钥保管库和密钥”以查找你的密钥。
单击边栏选项卡顶部的“保存”。
完成这些步骤后,Azure AI 机器人服务将启动加密过程,最长可能需要 24 小时才能完成。 在此期间,机器人仍可正常运行。
若要轮换客户管理的加密密钥,必须更新 Azure AI 机器人服务资源,以使用新密钥的新 URI(或现有密钥的新版本)。
由于使用新密钥重新加密是异步操作,因此请确保旧密钥仍然可用,以便可以继续解密数据;否则机器人可能会停止工作。 应将旧密钥保留至少一周。
若要撤销访问权限,请从密钥保管库中删除“Bot Service CMEK Prod”服务主体的访问策略。
备注
撤销访问权限会破坏与机器人关联的大部分功能。 若要禁用客户管理的密钥功能,请在撤销访问权限之前关闭该功能,以确保机器人可继续正常工作。
详细了解 Azure 密钥保管库