Skip to content

Commit 5d1b494

Browse files
authored
Merge pull request #186362 from HeidiSteen/heidist-fresh3
[azure search] H2 edits/formatting on security overview doc
2 parents fbad07a + a4a0890 commit 5d1b494

File tree

2 files changed

+28
-14
lines changed

2 files changed

+28
-14
lines changed

articles/search/search-security-api-keys.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,20 @@ author: HeidiSteen
88
ms.author: heidist
99
ms.service: cognitive-search
1010
ms.topic: conceptual
11-
ms.date: 06/25/2021
11+
ms.date: 01/26/2022
1212
---
1313

1414
# Use API keys for Azure Cognitive Search authentication
1515

16-
Cognitive Search uses API keys as its primary authentication methodology. For inbound requests to the search services, such as requests that create or query an index, API keys are the only authentication option you have. A few outbound request scenarios, particularly those involving indexers, can use Azure Active Directory identities and roles.
17-
18-
API keys are generated when the service created. Passing a valid API key on the request is considered proof that the request is from an authorized client. There are two kinds of keys. *Admin keys* convey write permissions on the service and also grant rights to query system information. *Query keys* convey read permissions and can be used by apps to query a specific index.
16+
Cognitive Search uses key-based authentication as its primary authentication methodology. For inbound requests to a search service endpoint, such as requests that create or query an index, API keys are the only generally available authentication option you have. A few outbound request scenarios, particularly those involving indexers, can use Azure Active Directory identities and roles.
1917

2018
> [!NOTE]
21-
> Authorization for data plane operations using Azure role-based access control (RBAC) is now in preview. You can use this preview capability to supplement or replace API keys [with Azure roles for Search](search-security-rbac.md).
19+
> [Authorization for data plane operations](search-security-rbac.md) using Azure role-based access control (RBAC) is now in preview. You can use this preview capability to supplement or replace API keys on search index requests.
2220
2321
## Using API keys in search
2422

23+
API keys are generated when the service created. Passing a valid API key on the request is considered proof that the request is from an authorized client. There are two kinds of keys. *Admin keys* convey write permissions on the service and also grant rights to query system information. *Query keys* convey read permissions and can be used by apps to query a specific index.
24+
2525
When connecting to a search service, all requests must include an API key that was generated specifically for your service.
2626

2727
+ In [REST solutions](search-get-started-rest.md), the API key is typically specified in a request header

articles/search/search-security-overview.md

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ ms.custom: references_regions
1616

1717
This article describes the security features in Azure Cognitive Search that protect data and operations.
1818

19-
## Data flow and points of entry
19+
## Data flow (network traffic patterns)
2020

2121
A search service is hosted on Azure and is typically accessed by client applications using public network connections. Understanding the search service's points of entry and network traffic patterns is useful background for setting up development and production environments.
2222

@@ -26,16 +26,30 @@ Cognitive Search has three basic network traffic patterns:
2626
+ Outbound requests issued by the search service to other services on Azure and elsewhere
2727
+ Internal service-to-service requests over the secure Microsoft backbone network
2828

29-
Inbound requests range from creating objects, loading data, and querying. For inbound access to data and operations, you can implement a progression of security measures, starting with API keys on the request. You can then supplement with either inbound rules in an IP firewall, or create private endpoints that fully shield your service from the public internet. You can also use Azure Active Directory and role-based access control for data plane operations (currently in preview).
29+
### Inbound traffic
3030

31-
Outbound requests can include both read and write operations. The primary agent of an outbound call is an indexer and constituent skillsets. For indexers, read operations include [document cracking](search-indexer-overview.md#document-cracking) and data ingestion. An indexer can also write to Azure Storage when creating knowledge stores, persisting cached enrichments, and persisting debug sessions. Finally, a skillset can also include custom skills that run external code, for example in Azure Functions or in a web app.
31+
Inbound requests that target a search service endpoint consist of creating objects, processing data, and querying an index.
3232

33-
Internal requests include service-to-service calls for tasks like diagnostic logging, encryption, authentication and authorization through Azure Active Directory, private endpoint connections, and requests made to Cognitive Services for built-in skills.
33+
For inbound access to data and operations on your search service, you can implement a progression of security measures, starting with API keys on the request. You can also use Azure Active Directory and role-based access control for data plane operations (currently in preview). You can then supplement with [network security features](#service-access-and-authentication), either inbound rules in an IP firewall, or private endpoints that fully shield your service from the public internet.
3434

35-
## Network security
35+
### Outbound traffic
36+
37+
Outbound requests from a search service to other applications are typically made by indexers. Outbound requests include both read and write operations:
38+
39+
+ Indexers connect to external data sources to read data for indexing.
40+
+ Indexers can also write to Azure Storage when creating knowledge stores, persisting cached enrichments, and persisting debug sessions.
41+
+ A custom skill runs external code that's hosted off-service. An indexer sends the request for external processing during skillset execution.
42+
43+
Indexer connections can be made under a managed identity if you're using Azure Active Directory, or a connection string that includes shared access keys or a database login.
44+
45+
### Internal traffic
46+
47+
Internal requests are secured and managed by Microsoft. Internal traffic consists of service-to-service calls for tasks like authentication and authorization through Azure Active Directory, diagnostic logging in Azure Monitor, encryption, private endpoint connections, and requests made to Cognitive Services for built-in skills.
3648

3749
<a name="service-access-and-authentication"></a>
3850

51+
## Network security
52+
3953
Inbound security features protect the search service endpoint through increasing levels of security and complexity. Cognitive Search uses [key-based authentication](search-security-api-keys.md), where all requests require an API key for authenticated access.
4054

4155
Optionally, you can implement additional layers of control by setting firewall rules that limit access to specific IP addresses. For advanced protection, you can enable Azure Private Link to shield your service endpoint from all internet traffic.
@@ -143,7 +157,7 @@ At the storage layer, data encryption is built in for all service-managed conten
143157

144158
In Azure Cognitive Search, encryption starts with connections and transmissions, and extends to content stored on disk. For search services on the public internet, Azure Cognitive Search listens on HTTPS port 443. All client-to-service connections use TLS 1.2 encryption. Earlier versions (1.0 or 1.1) are not supported.
145159

146-
### Encrypted data at rest
160+
### Data at rest
147161

148162
For data handled internally by the search service, the following table describes the [data encryption models](../security/fundamentals/encryption-models.md). Some features, such as knowledge store, incremental enrichment, and indexer-based indexing, read from or write to data structures in other Azure Services. Those services have their own levels of encryption support separate from Azure Cognitive Search.
149163

@@ -153,17 +167,17 @@ For data handled internally by the search service, the following table describes
153167
| server-side encryption | customer-managed keys | Azure Key Vault | Available on billable tiers, in all regions, for content created after January 2019. | Content (indexes and synonym maps) on data disks |
154168
| server-side double encryption | customer-managed keys | Azure Key Vault | Available on billable tiers, in selected regions, on search services after August 1 2020. | Content (indexes and synonym maps) on data disks and temporary disks |
155169

156-
### Service-managed keys
170+
#### Service-managed keys
157171

158172
Service-managed encryption is a Microsoft-internal operation, based on [Azure Storage Service Encryption](../storage/common/storage-service-encryption.md), using 256-bit [AES encryption](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard). It occurs automatically on all indexing, including on incremental updates to indexes that are not fully encrypted (created before January 2018).
159173

160-
### Customer-managed keys (CMK)
174+
#### Customer-managed keys (CMK)
161175

162176
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).
163177

164178
<a name="double-encryption"></a>
165179

166-
### Double encryption
180+
#### Double encryption
167181

168182
In Azure Cognitive Search, double encryption is an extension of CMK. It is understood to be two-fold encryption (once by CMK, and again by service-managed keys), and comprehensive in scope, encompassing long-term storage that is written to a data disk, and short-term storage written to temporary disks. Double encryption is implemented in services created after specific dates. For more information, see [Double encryption](search-security-manage-encryption-keys.md#double-encryption).
169183

0 commit comments

Comments
 (0)