Skip to content

Commit e6232b6

Browse files
authored
Merge pull request #187382 from HeidiSteen/heidist-fresh2
[azure search] Firewall connection doc updates
2 parents 46ab042 + 7d9b6cf commit e6232b6

8 files changed

+53
-48
lines changed
-14 KB
Loading
Binary file not shown.
-21.5 KB
Loading
-29 KB
Loading

articles/search/search-indexer-howto-access-ip-restricted.md

Lines changed: 45 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Allow access to indexer IP ranges
2+
title: Connect through firewalls
33
titleSuffix: Azure Cognitive Search
44
description: Configure IP firewall rules to allow data access by an Azure Cognitive Search indexer.
55

@@ -8,25 +8,25 @@ author: arv100kri
88
ms.author: arjagann
99
ms.service: cognitive-search
1010
ms.topic: how-to
11-
ms.date: 11/11/2021
11+
ms.date: 02/02/2022
1212
---
1313

14-
# Configure IP firewall rules to allow indexer connections in Azure Cognitive Search
14+
# Configure IP firewall rules to allow indexer connections from Azure Cognitive Search
1515

1616
On behalf of an indexer, a search service will issue outbound calls to an external Azure resource to pull in data during indexing. If your Azure resource uses IP firewall rules to filter incoming calls, you'll need to create an inbound rule in your firewall that admits indexer requests.
1717

18-
This article explains how to find the IP address of your search service, and then use Azure portal to configure an inbound IP rule on an Azure Storage account. While specific to Azure Storage, this approach also works for other Azure resources that use IP firewall rules for data access, such as Cosmos DB and Azure SQL.
18+
This article explains how to find the IP address of your search service and configure an inbound IP rule on an Azure Storage account. While specific to Azure Storage, this approach also works for other Azure resources that use IP firewall rules for data access, such as Cosmos DB and Azure SQL.
1919

2020
> [!NOTE]
2121
> IP firewall rules for a storage account are only effective if the storage account and the search service are in different regions. If your setup does not permit this, we recommend utilizing the [trusted service exception option](search-indexer-howto-access-trusted-service-exception.md) as an alternative.
2222
2323
## Get a search service IP address
2424

25-
1. Determine the fully qualified domain name (FQDN) of your search service. This will look like `<search-service-name>.search.windows.net`. You can find out the FQDN by looking up your search service on the Azure portal.
25+
1. Determine the fully qualified domain name (FQDN) of your search service. This will look like `<search-service-name>.search.windows.net`. You can find the FQDN by looking up your search service on the Azure portal.
2626

27-
![Obtain service FQDN](media\search-indexer-howto-secure-access\search-service-portal.png "Obtain service FQDN")
27+
:::image type="content" source="media\search-indexer-howto-secure-access\search-service-portal.png" alt-text="Screenshot of the search service Overview page." border="true":::
2828

29-
1. Look up the IP address of the search service by performing a `nslookup` (or a `ping`) of the FQDN on a command prompt.
29+
1. Look up the IP address of the search service by performing a `nslookup` (or a `ping`) of the FQDN on a command prompt. Make sure you remove the "https://" prefix from the FQDN.
3030

3131
1. Copy the IP address so that you can specify it on an inbound rule in the next step. In the example below, the IP address that you should copy is "150.0.0.1".
3232

@@ -43,48 +43,55 @@ This article explains how to find the IP address of your search service, and the
4343

4444
## Get IP addresses for "AzureCognitiveSearch" service tag
4545

46-
Depending on your search service configuration, you might also need to create an inbound rule that admits requests from a range of IP addresses. Specifically, additional IP addresses are used for requests that originate from the indexer's [multi-tenant execution environment](search-indexer-securing-resources.md#indexer-execution-environment).
46+
If your search service workloads include skillset execution, create an inbound rule that allows requests from the [multi-tenant execution environment](search-indexer-securing-resources.md#indexer-execution-environment). This step explains how to get the range of IP addresses needed for this inbound rule.
4747

48-
You can get this IP address range from the `AzureCognitiveSearch` service tag.
48+
An IP address range is defined for each region that supports Azure Cognitive Search. You can get this IP address range from the `AzureCognitiveSearch` service tag.
4949

5050
1. Get the IP address ranges for the `AzureCognitiveSearch` service tag using either the [discovery API](../virtual-network/service-tags-overview.md#use-the-service-tag-discovery-api) or the [downloadable JSON file](../virtual-network/service-tags-overview.md#discover-service-tags-by-using-downloadable-json-files).
5151

52-
1. If the search service is the Azure Public cloud, the [Azure Public JSON file](https://www.microsoft.com/download/details.aspx?id=56519) should be downloaded.
53-
54-
![Download JSON file](media\search-indexer-howto-secure-access\service-tag.png "Download JSON file")
55-
56-
1. From the JSON file, assuming the search service is in West Central US, the list of IP addresses for the multi-tenant indexer execution environment are listed below.
57-
58-
```json
59-
{
60-
"name": "AzureCognitiveSearch.WestCentralUS",
61-
"id": "AzureCognitiveSearch.WestCentralUS",
62-
"properties": {
63-
"changeNumber": 1,
64-
"region": "westcentralus",
65-
"platform": "Azure",
66-
"systemService": "AzureCognitiveSearch",
67-
"addressPrefixes": [
68-
"52.150.139.0/26",
69-
"52.253.133.74/32"
70-
]
71-
}
72-
}
73-
```
74-
75-
For `/32` IP addresses, drop the "/32" (52.253.133.74/32 becomes 52.253.133.74 in the rule definition). All other IP addresses can be used verbatim.
52+
1. If the search service is the Azure Public cloud, download the [Azure Public JSON file](https://www.microsoft.com/download/details.aspx?id=56519).
53+
54+
1. Open the JSON file and search for "AzureCognitiveSearch". For a search service in WestUS2, the IP addresses for the multi-tenant indexer execution environment are:
55+
56+
```json
57+
{
58+
"name": "AzureCognitiveSearch.WestUS2",
59+
"id": "AzureCognitiveSearch.WestUS2",
60+
"properties": {
61+
"changeNumber": 1,
62+
"region": "westus2",
63+
"regionId": 38,
64+
"platform": "Azure",
65+
"systemService": "AzureCognitiveSearch",
66+
"addressPrefixes": [
67+
"20.42.129.192/26",
68+
"40.91.93.84/32",
69+
"40.91.127.116/32",
70+
"40.91.127.241/32",
71+
"51.143.104.54/32",
72+
"51.143.104.90/32",
73+
"2603:1030:c06:1::180/121"
74+
],
75+
"networkFeatures": null
76+
}
77+
},
78+
```
79+
80+
1. For IP addresses have the "/32" suffix, drop the "/32" (40.91.93.84/32 becomes 40.91.93.84 in the rule definition). All other IP addresses can be used verbatim.
7681

7782
## Add IP addresses to IP firewall rules
7883

79-
Once you have the IP addresses, you are ready to set up the rule. The easiest way to add IP address ranges to a storage account's firewall rule is via the Azure portal.
84+
Now that you have the necessary IP addresses, you can set up the inbound rule. The easiest way to add IP address ranges to a storage account's firewall rule is through the Azure portal.
85+
86+
1. Locate the storage account on the portal and open **Networking** on the left navigation pane.
8087

81-
1. Locate the storage account on the portal and navigate to the **Firewalls and virtual networks** tab.
88+
1. In the **Firewall and virtual networks** tab, choose **Selected networks**.
8289

83-
![Firewall and virtual networks](media\search-indexer-howto-secure-access\storage-firewall.png "Firewall and virtual networks")
90+
:::image type="content" source="media\search-indexer-howto-secure-access\storage-firewall.png" alt-text="Screenshot of Azure Storage Firewall and virtual networks page" border="true":::
8491

85-
1. Add the three IP addresses obtained previously (one for the search service IP, two for the `AzureCognitiveSearch` service tag) in the address range and select **Save**.
92+
1. Add the IP addresses obtained previously (one for the search service IP, plus all of the IP ranges for the "AzureCognitiveSearch" service tag) in the address range and select **Save**.
8693

87-
![Firewall IP rules](media\search-indexer-howto-secure-access\storage-firewall-ip.png "Firewall IP rules")
94+
:::image type="content" source="media\search-indexer-howto-secure-access\storage-firewall-ip.png" alt-text="Screenshot of the IP address section of the page." border="true":::
8895

8996
It can take five to ten minutes for the firewall rules to be updated, after which indexers should be able to access the data in the storage account.
9097

articles/search/search-indexer-howto-access-private.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
---
2-
title: Indexer connections through a private endpoint
2+
title: Connect through a private endpoint
33
titleSuffix: Azure Cognitive Search
44
description: Configure indexer connections to access content from other Azure resources that are protected through a private endpoint.
55

66
manager: nitinme
77
author: arv100kri
88
ms.author: arjagann
99
ms.service: cognitive-search
10-
ms.topic: conceptual
10+
ms.topic: how-to
1111
ms.date: 08/13/2021
1212
---
1313

articles/search/search-indexer-howto-access-trusted-service-exception.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
---
2-
title: Indexer access to Azure Storage using trusted service exception
2+
title: Connect as trusted service
33
titleSuffix: Azure Cognitive Search
44
description: Enable data access by an indexer in Azure Cognitive Search to data stored securely in Azure Storage.
55

66
manager: nitinme
77
author: arv100kri
88
ms.author: arjagann
99
ms.service: cognitive-search
10-
ms.topic: conceptual
10+
ms.topic: how-to
1111
ms.date: 05/11/2021
1212
---
1313

14-
# Indexer access to Azure Storage using the trusted service exception (Azure Cognitive Search)
14+
# Make indexer connections to Azure Storage as a trusted service
1515

1616
Indexers in an Azure Cognitive Search service that access data in Azure Storage accounts can make use of the [trusted service exception](../storage/common/storage-network-security.md#exceptions) capability to securely access data. This mechanism offers customers who are unable to grant [indexer access using IP firewall rules](search-indexer-howto-access-ip-restricted.md) a simple, secure, and free alternative for accessing data in storage accounts.
1717

articles/search/search-indexer-securing-resources.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,9 @@ For any given indexer run, Azure Cognitive Search determines the best environmen
7373

7474
## Granting access to indexer IP ranges
7575

76-
If the resource that your indexer pulls data from exists behind a firewall, make sure that the IP ranges in inbound rules include all of the IPs from which an indexer request can originate. As stated above, there are two possible environments in which indexers run and from which access requests can originate. You will need to add the IP addresses of **both** environments for indexer access to work.
76+
If the resource that your indexer pulls data from exists behind a firewall, you'll need [inbound rules that admit indexer connections](search-indexer-howto-access-ip-restricted.md). Make sure that the IP ranges in inbound rules include all of the IPs from which an indexer request can originate. As stated above, there are two possible environments in which indexers run and from which access requests can originate. You will need to add the IP addresses of **both** environments for indexer access to work.
7777

78-
- To obtain the IP address of the search service specific private environment, use `nslookup` (or `ping`) the fully qualified domain name (FQDN) of your search service. For example, the FQDN of a search service in the public cloud would be `<service-name>.search.windows.net`. This information is available on the Azure portal.
78+
- To obtain the IP address of the search service private environment, use `nslookup` (or `ping`) the fully qualified domain name (FQDN) of your search service. The FQDN of a search service in the public cloud would be `<service-name>.search.windows.net`.
7979

8080
- To obtain the IP addresses of the multi-tenant environments within which an indexer might run, use the `AzureCognitiveSearch` service tag. [Azure service tags](../virtual-network/service-tags-overview.md) have a published range of IP addresses for each service. You can find these IPs using the [discovery API](../virtual-network/service-tags-overview.md#use-the-service-tag-discovery-api) or a [downloadable JSON file](../virtual-network/service-tags-overview.md#discover-service-tags-by-using-downloadable-json-files). In either case, IP ranges are broken down by region. You should specify only those IP ranges assigned to the region in which your search service is provisioned.
8181

@@ -85,8 +85,6 @@ For certain data sources, the service tag itself can be used directly instead of
8585

8686
- [SQL Managed Instances](./search-howto-connecting-azure-sql-mi-to-azure-search-using-indexers.md#verify-nsg-rules)
8787

88-
For more information about this connectivity option, see [Indexer connections through an IP firewall](search-indexer-howto-access-ip-restricted.md).
89-
9088
## Granting access via private endpoints
9189

9290
Indexers can use [private endpoints](../private-link/private-endpoint-overview.md) on connections to resources that are locked down (running on a protected virtual network, or just not available over a public connection).
@@ -97,7 +95,7 @@ This functionality is only available in billable search services (Basic and abov
9795

9896
Customers should call the search management operation, [CreateOrUpdate API](/rest/api/searchmanagement/2021-04-01-preview/shared-private-link-resources/create-or-update) on a **shared private link resource**, in order to create a private endpoint connection to their secure resource (for example, a storage account). Traffic that goes over this (outbound) private endpoint connection will originate only from the virtual network that's in the search service specific "private" indexer execution environment.
9997

100-
Azure Cognitive Search will validate that callers of this API have Azure RBAC permissions to approve private endpoint connection requests to the secure resource. For example, if you request a private endpoint connection to a storage account with read-only permissions, this call will be rejected.
98+
Azure Cognitive Search will validate that callers of this API have Azure RBAC role permissions to approve private endpoint connection requests to the secure resource. For example, if you request a private endpoint connection to a storage account with read-only permissions, this call will be rejected.
10199

102100
### Step 2: Approve the private endpoint connection
103101

0 commit comments

Comments
 (0)