评估 AI 服务安全性
本单元总结了面向保护 Azure Open AI 的架构良好的框架建议
有关详细信息,请参阅 Azure OpenAI 服务上的 Azure 架构良好的框架透视
安全支柱的目的是为工作负载提供机密性、完整性和可用性保证。
安全设计原则通过对 Azure OpenAI 的技术设计应用方法,为实现这些目标提供了高级设计策略。
设计清单
根据面向安全性的设计评审清单启动设计策略,并确定漏洞和控制措施来改进安全态势。 然后,审阅 Azure OpenAI 的 Azure 安全基线。 最后,扩展策略以根据需要包含更多方法。
保护机密:如果将训练数据上传到 Azure OpenAI,请使用客户管理的密钥加密数据、实施密钥轮换策略,并删除训练、验证和训练结果数据。 如果使用外部数据存储来训练数据,请遵循适用于该存储的安全最佳做法。 例如,对于 Azure Blob 存储,请使用客户管理的密钥进行加密并实施密钥轮换策略。 使用基于托管标识的访问、通过专用终结点实现网络外围,并启用访问日志。
保护机密性:通过限制 Azure OpenAI 资源可以访问的出站 URL 来防范数据外泄。
保护完整性:实现访问控制,以使用最低特权原则和单个标识(而不是密钥)对系统进行用户身份验证和授权用户对系统的访问权限。
保护完整性:实施越狱风险检测,以保护语言模型部署免受提示注入攻击。
保护可用性:使用安全控制来防止可能耗尽模型使用配额的攻击。 可以配置控制措施来隔离网络上的服务。 如果必须从 Internet 访问该服务,请考虑使用网关通过路由或限值来阻止可以的滥用行为。
建议
建议 | 好处 |
---|---|
安全密钥:如果体系结构需要基于 Azure OpenAI 密钥的身份验证,请将这些密钥存储在 Azure 密钥保管库,而不是应用程序代码中。 | 通过将机密存储在密钥保管库中来分离机密与机密,可以减少泄露机密的可能性。 分离还有助于集中管理机密,从而减轻密钥轮换等责任。 |
限制访问:除非工作负载需要,否则请禁用对 Azure OpenAI 的公共访问。 如果要从 Azure 虚拟网络中的使用者建立连接,请创建专用终结点。 | 控制对 Azure OpenAI 的访问有助于防止来自未经授权的用户的攻击。 使用专用终结点可确保网络流量在应用程序和平台之间保持私密状态。 |
Microsoft Entra ID:通过使用基于角色的访问控制 (RBAC) 来使用 Microsoft Entra ID 进行身份验证和授权访问 Azure OpenAI。 在 Azure AI 服务中禁用本地身份验证,并将 disableLocalAuth 设置为 true 。 向执行补全或图像生成的标识授予认知服务 OpenAI 用户角色。 授予模型自动化管道和临时数据科学访问认知服务 OpenAI 参与者等角色。 |
使用 Microsoft Entra ID 可集中标识管理组件,并消除 API 密钥的使用。 将 RBAC 与 Microsoft Entra ID 一起使用可确保用户或组恰好具有执行其作业所需的权限。 Azure OpenAI API 密钥无法实现这种精细的访问控制。 |
使用客户管理的密钥:将客户管理的密钥用于优化的模型和上传到 Azure OpenAI 的训练数据。 | 使用客户管理的密钥,可以更加灵活地创建、轮换、禁用和撤销访问控制。 |
防范越狱攻击:使用 Azure AI 内容安全工作室检测越狱风险。 | 检测越狱尝试,以识别和阻止尝试绕过 Azure OpenAI 部署安全机制的提示。 |