You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/search/search-security-overview.md
+21-14Lines changed: 21 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ ms.author: heidist
9
9
ms.service: cognitive-search
10
10
ms.custom: ignite-2022
11
11
ms.topic: conceptual
12
-
ms.date: 07/11/2022
12
+
ms.date: 12/12/2022
13
13
---
14
14
15
15
# Security overview for Azure Cognitive Search
@@ -28,26 +28,31 @@ Cognitive Search has three basic network traffic patterns:
28
28
29
29
### Inbound traffic
30
30
31
-
Inbound requests that target a search service endpoint consist of:
31
+
Inbound requests that target a search service endpoint can be characterized as:
32
32
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
36
36
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.
38
38
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.
40
45
41
46
### Outbound traffic
42
47
43
48
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.
44
49
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:
46
51
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).
49
53
+ 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.
51
56
52
57
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.
53
58
@@ -143,14 +148,16 @@ Service Management operations are authorized through [Azure role-based access co
143
148
144
149
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).
145
150
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.
147
152
148
153
> [!NOTE]
149
154
> 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).
150
155
151
156
## Data residency
152
157
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).
154
161
155
162
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.
156
163
@@ -180,7 +187,7 @@ Service-managed encryption is a Microsoft-internal operation, based on [Azure St
180
187
181
188
#### Customer-managed keys (CMK)
182
189
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).
0 commit comments