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