Azure AI 服务安全性

安全性应是所有应用程序开发工作的首要任务,随着人工智能应用程序的更多应用,安全性变得越发重要。 本文概述了适用于 Azure AI 服务的各种安全功能。 每种功能解决特定的问题,因此可以在同一工作流中使用多种功能。

有关 Azure 服务安全建议的完整列表,请参阅 Azure AI 服务安全基线一文。

安全功能

Feature 说明
传输层安全 (TLS) (Transport Layer Security) (TLS) 通过 HTTP 公开的所有 Azure AI 服务终结点都强制执行 TLS 1.2 协议。 使用强制执行的安全协议时,尝试调用 Azure AI 服务终结点的使用者应遵循以下准则:
- 客户端操作系统 (OS) 需要支持 TLS 1.2。
- 用于进行 HTTP 调用的语言(和平台)需要将 TLS 1.2 指定为请求的一部分。 可以隐式或显式指定 TLS,具体取决于所用语言和平台。
- 对于 .NET 用户,请考虑采用传输层安全性最佳做法
身份验证选项 身份验证是验证用户身份的行为。 而授权则是为给定标识指定对资源的访问权限和特权。 标识是有关主体的信息集合,主体可以是单个用户或服务。

默认情况下,使用提供的订阅密钥对自己的 Azure AI 服务调用进行身份验证;这是最简单的方法,但不是最安全的方法。 最安全的身份验证方法是使用 Microsoft Entra ID 中的托管角色。 若要了解此身份验证选项和其他身份验证选项,请参阅对 Azure AI 服务的请求进行身份验证
密钥轮换 每个 Azure AI 服务资源都有两个 API 密钥,用于启用机密轮换。 这是一种安全预防措施,可让你定期更改可以访问服务的密钥,从而在密钥泄露时保护服务的隐私。 若要了解此选项和其他身份验证选项,请参阅轮换密钥
环境变量 环境变量是存储在特定开发环境中的名称值对。 你可以采用这种方式存储凭据,它是比在代码中使用硬编码值更安全的一种替代方法。 但是,如果环境遭到入侵,环境变量也会遭到入侵,因此这不是最安全的方法。

有关如何在代码中使用环境变量的说明,请参阅环境变量指南
虚拟网络 虚拟网络允许指定可以对资源进行 API 调用的终结点。 Azure 服务将拒绝来自网络外部设备的 API 调用。 可以设置基于公式的允许的网络定义,也可以定义允许的终结点的详尽列表。 这是可以与其他安全层结合使用的另一个安全层。
数据丢失防护 借助数据丢失防护功能,管理员可以确定其 Azure 资源可以采用哪种类型的 URI 作为输入(适用于采用 URI 作为输入的 API 调用)。 这样做是为了防止可能发生的公司敏感数据外泄:如果公司将敏感信息(如客户的专用数据)存储在 URL 参数中,公司内部的不良参与者可以将敏感 URL 提交到 Azure 服务,致使该数据泄露到公司外部。 借助数据丢失防护,可以将服务配置为在收到某些 URI 形式时将其拒绝。
自带存储空间 (BYOS) 语音服务目前不支持客户密码箱。 但是,可以使用自带存储空间 (BYOS) 安排特定于服务的数据,使之存储在自己的存储资源中。 借助 BYOS 可以实现类似于客户密码箱的数据控制。 请记住,语音服务数据仍会保留,并会在创建语音资源的 Azure 区域中进行处理。 这适用于任何静态数据和传输中的数据。 对于自定义功能(如自定义语音识别和定制声音),所有的客户数据都会在语音服务资源和 BYOS 资源(如果已使用)所在的同一区域中传输、存储和处理。

若要将 BYOS 与语音配合使用,请遵循语音静态数据的加密指南进行操作。

Microsoft 不会使用客户数据来改进其语音模型。 此外,如果禁用了终结点日志记录,并且未使用任何自定义项,则语音服务不会存储任何客户数据。

后续步骤