Skip to content

Commit d6f0730

Browse files
Merge pull request #221236 from HeidiSteen/heidist-gh
[azure search] GH issue, security doc questions
2 parents 57d5e2c + 457d29d commit d6f0730

File tree

1 file changed

+21
-14
lines changed

1 file changed

+21
-14
lines changed

articles/search/search-security-overview.md

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ ms.author: heidist
99
ms.service: cognitive-search
1010
ms.custom: ignite-2022
1111
ms.topic: conceptual
12-
ms.date: 07/11/2022
12+
ms.date: 12/12/2022
1313
---
1414

1515
# Security overview for Azure Cognitive Search
@@ -28,26 +28,31 @@ Cognitive Search has three basic network traffic patterns:
2828

2929
### Inbound traffic
3030

31-
Inbound requests that target a search service endpoint consist of:
31+
Inbound requests that target a search service endpoint can be characterized as:
3232

33-
+ Creating or managing indexes, indexers, data sources, skillsets, or synonym lists
34-
+ Running indexers and skillsets
35-
+ Querying an index
33+
+ Create or manage indexes, indexers, data sources, skillsets, and synonym maps
34+
+ Invoke indexer or skillset execution
35+
+ Load or query an index
3636

37-
For inbound access to data and operations on your search service, you can implement a progression of security measures, starting with [network security features](#service-access-and-authentication). You can create either inbound rules in an IP firewall, or private endpoints that fully shield your search service from the public internet.
37+
The [REST APIs](/rest/api/searchservice/) represent the full range of inbound requests that are handled by a search service.
3838

39-
Independent of network security, all inbound requests must be authenticated. Key-based authentication is the default. Alternatively, you can use Azure Active Directory and role-based access control for data plane operations (currently in preview).
39+
At a minimum, all inbound requests must be authenticated:
40+
41+
+ Key-based authentication is the default. Inbound requests that include a valid API key are accepted by the search service as originating from a trusted source.
42+
+ Alternatively, you can use Azure Active Directory and role-based access control for data plane operations (currently in preview).
43+
44+
Additionally, you can add [network security features](#service-access-and-authentication) to further restrict access. You can create either inbound rules in an IP firewall, or create private endpoints that fully shield your search service from the public internet.
4045

4146
### Outbound traffic
4247

4348
Outbound requests from a search service to other applications are typically made by indexers for text-based indexing and some aspects of AI enrichment. Outbound requests include both read and write operations.
4449

45-
Outbound requests are made by the search service on its own behalf, and on the behalf of an indexer or custom skill:
50+
The following list is a full enumeration of the outbound requests that can be made by a search service. A search makes requests on its own behalf, and on the behalf of an indexer or custom skill:
4651

47-
+ Search connects to Azure Key Vault for a customer-managed key used to encrypt and decrypt sensitive data.
48-
+ Indexers [connect to external data sources](search-indexer-securing-resources.md) to read in data for indexing.
52+
+ Indexers [read from external data sources](search-indexer-securing-resources.md).
4953
+ Indexers write to Azure Storage when creating knowledge stores, persisting cached enrichments, and persisting debug sessions.
50-
+ Custom skills connect to an Azure function or app to run external code that's hosted off-service. The request for external processing is sent during skillset execution.
54+
+ If you're using custom skills, custom skills connect to an external Azure function or app to run external code that's hosted off-service. The request for external processing is sent during skillset execution.
55+
+ If you're using customer-managed keys, the service connects to an external Azure Key Vault for a customer-managed key used to encrypt and decrypt sensitive data.
5156

5257
Outbound connections can be made using a resource's full access connection string that includes a key or a database login, or an Azure AD login ([a managed identity](search-howto-managed-identities-data-sources.md)) if you're using Azure Active Directory.
5358

@@ -143,14 +148,16 @@ Service Management operations are authorized through [Azure role-based access co
143148

144149
In Azure Cognitive Search, Resource Manager is used to create or delete the service, manage API keys, and scale the service. As such, Azure role assignments will determine who can perform those tasks, regardless of whether they're using the [portal](search-manage.md), [PowerShell](search-manage-powershell.md), or the [Management REST APIs](/rest/api/searchmanagement).
145150

146-
[Three basic roles](search-security-rbac.md) are defined for search service administration. The role assignments can be made using any supported methodology (portal, PowerShell, and so forth) and are honored service-wide. The Owner and Contributor roles can perform a variety of administration functions. You can assign the Reader role to users who only view essential information.
151+
[Three basic roles](search-security-rbac.md) are defined for search service administration. The role assignments can be made using any supported methodology (portal, PowerShell, and so forth) and are honored service-wide. The Owner and Contributor roles can perform various administration functions. You can assign the Reader role to users who only view essential information.
147152

148153
> [!NOTE]
149154
> Using Azure-wide mechanisms, you can lock a subscription or resource to prevent accidental or unauthorized deletion of your search service by users with admin rights. For more information, see [Lock resources to prevent unexpected deletion](../azure-resource-manager/management/lock-resources.md).
150155
151156
## Data residency
152157

153-
Azure Cognitive Search won't store data outside of your specified region without your authorization. Specifically, the following features write to an Azure Storage resource: [enrichment cache](cognitive-search-incremental-indexing-conceptual.md), [debug session](cognitive-search-debug-session.md), [knowledge store](knowledge-store-concept-intro.md). The storage account is one that you provide, and it could be in any region.
158+
Azure Cognitive Search won't store data outside of your specified region unless you configure a feature that has a dependency on another Azure resource, and that resource is provisioned in a different region.
159+
160+
The only external resource that a search service writes to is Azure Storage. The storage account is one that you provide, and it could be in any region. A search service will write to Azure Storage if you use any of the following features: [enrichment cache](cognitive-search-incremental-indexing-conceptual.md), [debug session](cognitive-search-debug-session.md), [knowledge store](knowledge-store-concept-intro.md).
154161

155162
If both the storage account and the search service are in the same region, network traffic between search and storage uses a private IP address and occurs over the Microsoft backbone network. Because private IP addresses are used, you can't configure IP firewalls or a private endpoint for network security. Instead, use the [trusted service exception](search-indexer-howto-access-trusted-service-exception.md) as an alternative when both services are in the same region.
156163

@@ -180,7 +187,7 @@ Service-managed encryption is a Microsoft-internal operation, based on [Azure St
180187

181188
#### Customer-managed keys (CMK)
182189

183-
Customer-managed keys require an additional billable service, Azure Key Vault, which can be in a different region, but under the same subscription, as Azure Cognitive Search. Enabling CMK encryption will increase index size and degrade query performance. Based on observations to date, you can expect to see an increase of 30%-60% in query times, although actual performance will vary depending on the index definition and types of queries. Because of this performance impact, we recommend that you only enable this feature on indexes that really require it. For more information, see [Configure customer-managed encryption keys in Azure Cognitive Search](search-security-manage-encryption-keys.md).
190+
Customer-managed keys require another billable service, Azure Key Vault, which can be in a different region, but under the same subscription, as Azure Cognitive Search. Enabling CMK encryption will increase index size and degrade query performance. Based on observations to date, you can expect to see an increase of 30%-60% in query times, although actual performance will vary depending on the index definition and types of queries. Because of this performance impact, we recommend that you only enable this feature on indexes that really require it. For more information, see [Configure customer-managed encryption keys in Azure Cognitive Search](search-security-manage-encryption-keys.md).
184191

185192
<a name="double-encryption"></a>
186193

0 commit comments

Comments
 (0)