category
本文描述了Azure AI搜索中保护数据和操作的安全功能。
数据流(网络流量模式)
Azure人工智能搜索服务托管在Azure上,通常由客户端应用程序通过公共网络连接访问。虽然这种模式占主导地位,但它并不是你需要关心的唯一交通模式。了解所有入口点以及出站流量是确保开发和生产环境安全的必要背景。
Azure AI搜索有三种基本的网络流量模式:
- 客户端向搜索服务发出的入站请求(主要模式)
- 搜索服务向Azure和其他地方的其他服务发出的出站请求
- 通过安全的Microsoft骨干网络提供内部服务到服务请求
入站流量
以搜索服务终结点为目标的入站请求包括:
- 在搜索服务上创建、读取、更新或删除索引和其他对象
- 用搜索文档加载索引
- 查询索引
- 触发器索引器或技能集执行
RESTAPI描述了由搜索服务处理的所有入站请求。
至少,所有入站请求都必须使用以下任一选项进行身份验证:
- 基于密钥的身份验证(默认)。入站请求提供有效的API密钥。
- 基于角色的访问控制。授权是通过您的搜索服务上的Microsoft Entra身份和角色分配进行的。
此外,您还可以添加网络安全功能以进一步限制对端点的访问。您可以在IP防火墙中创建入站规则,也可以创建专用端点,使您的搜索服务完全屏蔽公共互联网。
内部流量
内部请求由Microsoft保护和管理。您无法配置或控制这些连接。如果您正在锁定网络访问,则不需要您采取任何行动,因为内部流量不是客户可配置的。
内部流量包括:
- 通过Microsoft Entra ID进行身份验证和授权、发送到Azure Monitor的资源日志记录以及使用Azure private Link的专用端点连接等任务的服务对服务调用。
- 向Azure AI服务API请求内置技能。
- 对支持语义排序的机器学习模型的请求。
出站流量
出站请求可以由您保护和管理。出站请求源自搜索服务到其他应用程序。这些请求通常由索引器在查询时提出,用于基于文本的索引、基于技能的人工智能丰富和矢量化。出站请求包括读取和写入操作。
以下列表是可以为其配置安全连接的出站请求的完整枚举。搜索服务代表自己、索引器或自定义技能提出请求。
Operation | Scenario |
---|---|
Indexers | Connect to external data sources to retrieve data. For more information, see Indexer access to content protected by Azure network security. |
Indexers | Connect to Azure Storage to persist knowledge stores, cached enrichments, debug sessions. |
Custom skills | Connect to Azure functions, Azure web apps, or other apps running external code that's hosted off-service. The request for external processing is sent during skillset execution. |
Indexers and integrated vectorization | Connect to Azure OpenAI and a deployed embedding model, or it goes through a custom skill to connect to an embedding model that you provide. The search service sends text to embedding models for vectorization during indexing. |
Vectorizers | Connect to Azure OpenAI or other embedding models at query time to convert user text strings to vectors for vector search. |
Search service | Connect to Azure Key Vault for customer-managed encryption keys used to encrypt and decrypt sensitive data. |
可以使用资源的完全访问连接字符串进行出站连接,该字符串包括密钥或数据库登录名,如果您使用Microsoft Entra ID和基于角色的访问,则可以使用托管身份。
若要访问防火墙后面的Azure资源,请在允许搜索服务请求的其他Azure资源上创建入站规则。
若要访问受Azure专用链接保护的Azure资源,请创建一个共享专用链接,索引器使用该链接进行连接。
同一地区搜索和存储服务的例外情况
如果Azure Storage和Azure AI Search位于同一区域,则网络流量将通过专用IP地址进行路由,并在Microsoft骨干网络上发生。由于使用了专用IP地址,因此无法为网络安全配置IP防火墙或专用端点。
使用以下任一方法配置相同的区域连接:
- 受信任的服务异常
- 资源实例规则
网络安全
网络安全通过对网络流量进行控制来保护资源免受未经授权的访问或攻击。Azure AI搜索支持网络功能,这些功能可以成为您抵御未经授权访问的前线。
通过IP防火墙的入站连接
为搜索服务提供了允许使用公共IP地址进行访问的公共端点。要限制哪些流量通过公共端点,请创建一个入站防火墙规则,允许来自特定IP地址或一系列IP地址的请求。所有客户端连接都必须通过允许的IP地址进行,否则连接将被拒绝。
您可以使用门户来配置防火墙访问。
或者,您可以使用管理REST API。从API 2020-03-13版开始,使用IpRule参数,您可以通过识别要授予搜索服务访问权限的IP地址(单独或在一定范围内)来限制对服务的访问。
到专用端点的入站连接(网络隔离,无Internet流量)
为了更严格的安全性,您可以为Azure建立一个专用端点。人工智能搜索允许虚拟网络上的客户端通过专用链接安全访问搜索索引中的数据。
专用端点使用虚拟网络地址空间中的IP地址连接到搜索服务。客户端和搜索服务之间的网络流量通过虚拟网络和Microsoft骨干网络上的专用链接进行传输,消除了公共互联网的暴露。虚拟网络允许资源之间的安全通信,包括您的本地网络和Internet。
虽然此解决方案是最安全的,但使用更多服务会增加成本,因此在投入使用之前,请确保您清楚地了解其好处。有关成本的更多信息,请参阅定价页面。有关这些组件如何协同工作的更多信息,请观看此视频。私有端点选项的覆盖从5:48开始进入视频。有关如何设置端点的说明,请参阅为Azure AI搜索创建专用端点。
身份验证
一旦请求被允许进入搜索服务,它仍然必须经过身份验证和授权,以确定该请求是否被允许。Azure AI搜索支持两种方法:
- Microsoft Entra身份验证将调用方(而不是请求方)建立为经过身份验证的身份。Azure角色分配决定授权。
- 基于密钥的认证是通过API密钥对请求(而不是调用应用程序或用户)执行的,其中密钥是由随机生成的数字和字母组成的字符串,这些数字和字母证明请求来自可靠的来源。每次请求都需要钥匙。提交有效密钥被视为请求源自可信实体的证据。
您可以同时使用这两种身份验证方法,也可以禁用您不希望在搜索服务上使用的方法。
授权(Authorization)
Azure AI Search为服务管理和内容管理提供授权模型。
授权服务管理
资源管理是通过您的Microsoft Entra租户中基于角色的访问控制进行授权的。
在Azure AI搜索中,资源管理器用于创建或删除服务、管理API密钥、扩展服务和配置安全性。因此,Azure角色分配将决定谁可以执行这些任务,无论他们是使用门户、PowerShell还是管理REST API。
三个基本角色(所有者、贡献者和读者)适用于搜索服务管理。角色分配可以使用任何支持的方法(门户、PowerShell等)进行,并在全服务范围内受到尊重。
笔记
使用Azure范围内的机制,您可以锁定订阅或资源,以防止具有管理员权限的用户意外或未经授权删除您的搜索服务。有关详细信息,请参见锁定资源以防止意外删除。
授权访问内容
内容管理是指在搜索服务上创建和托管的对象。
- 对于基于角色的授权,请使用Azure角色分配来建立对操作的读写访问权限。
- 对于基于密钥的授权,API密钥和合格的端点确定访问。端点可能是服务本身、索引集合、特定索引、文档集合或特定文档。当链接在一起时,端点、操作(例如,创建请求)和密钥类型(admin或query)授权对内容和操作的访问。
限制对索引的访问
使用Azure角色,您可以设置对单个索引的权限,只要它是以编程方式完成的。
使用密钥,任何拥有服务管理密钥的人都可以读取、修改或删除同一服务中的任何索引。为了防止意外或恶意删除索引,您的代码资产内部源代码管理是扭转不需要的索引删除或修改的解决方案。Azure AI Search在集群内进行故障切换以确保可用性,但它不会存储或执行用于创建或加载索引的专有代码。
对于在索引级别需要安全边界的多租户解决方案,通常在应用程序代码的中间层处理索引隔离。有关多租户用例的更多信息,请参阅多租户SaaS应用程序和Azure AI搜索的设计模式。
限制对文档的访问
Azure AI搜索本机不支持文档级别的用户权限,也称为行级别的安全性。如果您从提供行级安全的外部系统(如Azure Cosmos DB)导入数据,则这些权限不会随着数据被Azure AI Search索引而传输。
如果您需要对搜索结果中的内容进行许可访问,有一种技术可以应用过滤器,根据用户身份包括或排除文档。此解决方法在数据源中添加一个表示组或用户标识的字符串字段,您可以在索引中对其进行筛选。有关此模式的更多信息,请参见基于身份过滤器的安全性修剪。
数据驻留
当您设置搜索服务时,您可以选择一个区域来确定客户数据的存储和处理位置。每个地区都存在于一个地理区域内,该地理区域通常包括多个地区(例如,瑞士是一个包含瑞士北部和瑞士西部的地理区域)。Azure AI Search可能会将您的数据复制到同一地理区域内的另一个区域,以实现持久性和高可用性。除非您配置了一个依赖于另一个Azure资源的功能,并且该资源是在不同的区域中提供的,否则该服务不会在指定的Geo之外存储或处理客户数据。
目前,搜索服务写入的唯一外部资源是Azure存储。存储帐户是您提供的,它可以在任何地区。如果您使用以下任何功能,搜索服务会写入Azure存储:
- 充实高速缓存
- 调试会话
- 知识库
有关数据驻留的更多信息,请参阅Azure中的数据驻留。
数据驻留承诺的例外情况
对象名称显示在Microsoft用于提供服务支持的遥测日志中。对象名称存储和处理在所选区域或位置之外。对象名称包括索引和索引字段、别名、索引器、数据源、技能集、同义词映射、资源、容器和密钥库存储的名称。客户不应在名称字段中放置任何敏感数据,也不应创建用于在这些字段中存储敏感数据的应用程序。
遥测日志保留一年半。在此期间,Microsoft可能会在以下条件下访问和引用对象名称:
- 诊断问题、改进功能或修复错误。在这种情况下,数据访问仅限于内部,没有第三方访问。
- 在支持期间,此信息可用于快速解决问题,并在需要时上报产品团队
数据保护
在存储层,为保存到磁盘的所有服务管理内容内置了数据加密,包括索引、同义词映射以及索引器、数据源和技能集的定义。服务管理加密既适用于长期数据存储,也适用于临时数据存储。
您也可以添加客户管理密钥(CMK),对索引内容进行补充加密,对静止数据进行双重加密。对于2020年8月1日之后创建的服务,CMK加密扩展到临时磁盘上的短期数据。
传输中的数据
对于公共互联网上的搜索服务连接,Azure AI search在HTTPS端口443上侦听。
Azure AI Search支持TLS 1.2和1.3,用于客户端到服务的通道加密:
- TLS 1.3是更新的客户端操作系统和版本上的默认设置。NET。
- TLS 1.2是旧系统上的默认设置,但您可以在客户端请求上显式设置TLS 1.3。
- 不支持早期版本的TLS(1.0或1.1)。
有关详细信息,请参阅中的TLS支持。NET框架。
静止数据
对于搜索服务内部处理的数据,下表介绍了数据加密模型。一些功能,如知识存储、增量丰富和基于索引器的索引,可以读取或写入其他Azure服务中的数据结构。依赖Azure存储的服务可以使用该技术的加密功能。
Model | Keys | Requirements | Restrictions | Applies to |
---|---|---|---|---|
server-side encryption | Microsoft-managed keys | None (built-in) | None, available on all tiers, in all regions, for content created after January 24, 2018. | Content (indexes and synonym maps) and definitions (indexers, data sources, skillsets), on data disks and temporary disks |
server-side encryption | customer-managed keys | Azure Key Vault | Available on billable tiers, in specific regions, for content created after August 1, 2020. | Content (indexes and synonym maps) on data disks |
server-side full encryption | customer-managed keys | Azure Key Vault | Available on billable tiers, in all regions, on search services after May 13, 2021. | Content (indexes and synonym maps) on data disks and temporary disks |
服务管理的密钥
服务管理加密是一种使用256位AES加密的Microsoft内部操作。它在所有索引中自动发生,包括对未完全加密的索引(在2018年1月之前创建)的增量更新。
服务管理加密适用于长期和短期存储中的所有内容。
客户管理的密钥(CMK)
客户管理的密钥需要另一项可计费服务Azure密钥库,该服务可以位于不同的地区,但与Azure AI Search处于相同的订阅下。
CMK支持分两个阶段推出。如果您在第一阶段创建了搜索服务,则CMK加密仅限于长期存储和特定区域。在2021年5月之后的第二阶段创建的服务可以在任何地区使用CMK加密。作为第二波推出的一部分,内容在长期和短期存储上都是CMK加密的。有关CMK支持的更多信息,请参阅完全双重加密。
启用CMK加密将增加索引大小并降低查询性能。根据迄今为止的观察结果,您可以预期查询时间会增加30-60%,尽管实际性能会因索引定义和查询类型而异。由于会对性能产生负面影响,我们建议您仅在真正需要此功能的索引上启用此功能。有关详细信息,请参阅在Azure AI搜索中配置客户管理的加密密钥。
安全管理
管理API密钥
依赖基于API密钥的身份验证意味着,根据Azure安全最佳实践,您应该有一个定期重新生成管理密钥的计划。每个搜索服务最多有两个管理密钥。有关保护和管理API密钥的更多信息,请参阅创建和管理API-keys。
活动和资源日志
Azure AI搜索不记录用户身份,因此您无法参考日志获取特定用户的信息。但是,该服务确实会记录创建读取更新删除操作,您可以将这些操作与其他日志关联起来,以了解特定操作的代理。
使用Azure中的警报和日志基础设施,您可以发现查询量峰值或其他偏离预期工作负载的操作。有关设置日志的更多信息,请参阅收集和分析日志数据以及监视查询请求。
认证和合规性
Azure人工智能搜索参与定期审计,并已根据公共云和Azure政府的许多全球、地区和行业特定标准进行认证。有关完整列表,请从官方审计报告页面下载Microsoft Azure合规产品白皮书。
为了实现合规性,您可以使用Azure Policy来实施Microsoft云安全基准的高安全性最佳实践。Microsoft云安全标准是一组安全建议,这些建议被编入安全控制中,对应于您应该采取的关键行动,以减轻对服务和数据的威胁。目前有12种安全控制,包括网络安全、日志记录和监控以及数据保护。
Azure Policy是Azure内置的一种功能,可帮助您管理多个标准的合规性,包括Microsoft云安全基准的合规。对于众所周知的基准,Azure Policy提供内置定义,提供标准和解决不合规问题的可操作响应。
对于Azure AI搜索,目前有一个内置定义。它用于资源日志记录。您可以分配一个策略来标识缺少资源日志记录的搜索服务,然后将其打开。有关详细信息,请参阅Azure AI搜索的Azure策略法规遵从性控制。
观看此视频
观看此快节奏视频,了解安全体系结构和每个功能类别的概述。
- 登录 发表评论
- 6 次浏览
Tags
最新内容
- 1 week 5 days ago
- 2 weeks 6 days ago
- 3 weeks 2 days ago
- 3 weeks 2 days ago
- 3 weeks 5 days ago
- 3 weeks 6 days ago
- 4 weeks ago
- 4 weeks 1 day ago
- 4 weeks 1 day ago
- 4 weeks 1 day ago