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/api-management/api-management-howto-ip-addresses.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ author: dlepow
6
6
7
7
ms.service: api-management
8
8
ms.topic: article
9
-
ms.date: 12/21/2021
9
+
ms.date: 01/29/2024
10
10
ms.author: apimpm
11
11
ms.custom: fasttrack-edit
12
12
---
@@ -93,11 +93,11 @@ API Management uses a public IP address for a connection outside the VNet or a p
93
93
94
94
* When a request is sent from API Management to a public (internet-facing) backend, a public IP address will always be visible as the origin of the request.
95
95
96
-
## IP addresses of Consumption tier API Management service
96
+
## IP addresses of Consumption, Basic v2, and Standard v2 tier API Management service
97
97
98
-
If your API Management service is a Consumption tier service, it doesn't have a dedicated IP address. Consumption tier service runs on a shared infrastructure and without a deterministic IP address.
98
+
If your API Management instance is created in a service tier that runs on a shared infrastructure, it doesn't have a dedicated IP address. Currently, instances in the following service tiers run on a shared infrastructure and without a deterministic IP address: Consumption, Basic v2 (preview), Standard v2 (preview).
99
99
100
-
If you need to add the outbound IP addresses used by your Consumption tier instance to an allowlist, you can add the instance's data center (Azure region) to an allowlist. You can [download a JSON file that lists IP addresses for all Azure data centers](https://www.microsoft.com/download/details.aspx?id=56519). Then find the JSON fragment that applies to the region that your instance runs in.
100
+
If you need to add the outbound IP addresses used by your Consumption, Basic v2, or Standard v2 tier instance to an allowlist, you can add the instance's data center (Azure region) to an allowlist. You can [download a JSON file that lists IP addresses for all Azure data centers](https://www.microsoft.com/download/details.aspx?id=56519). Then find the JSON fragment that applies to the region that your instance runs in.
101
101
102
102
For example, the following JSON fragment is what the allowlist for Western Europe might look like:
@@ -23,7 +22,7 @@ For a conceptual overview of API authorization, see [Authentication and authoriz
23
22
24
23
## Aims
25
24
26
-
We're going to see how API Management can be used in a simplified scenario with Azure Functions and Azure AD B2C. You'll create a JavaScript (JS) app calling an API, that signs in users with Azure AD B2C. Then you'll use API Management's validate-jwt, CORS, and Rate Limit By Key policy features to protect the Backend API.
25
+
We're going to see how API Management can be used in a simplified scenario with Azure Functions and Azure AD B2C. You'll create a JavaScript (JS) app calling an API that signs in users with Azure AD B2C. Then you'll use API Management's validate-jwt, CORS, and Rate Limit By Key policy features to protect the Backend API.
27
26
28
27
For defense in depth, we then use EasyAuth to validate the token again inside the back-end API and ensure that API management is the only service that can call the Azure Functions backend.
29
28
@@ -59,13 +58,13 @@ Here's a quick overview of the steps:
59
58
1. Create the sign-up and sign-in policies to allow users to sign in with Azure AD B2C
60
59
1. Configure API Management with the new Azure AD B2C Client IDs and keys to Enable OAuth2 user authorization in the Developer Console
61
60
1. Build the Function API
62
-
1. Configure the Function API to enable EasyAuth with the new Azure AD B2C Client ID’s and Keys and lock down to APIM VIP
61
+
1. Configure the Function API to enable EasyAuth with the new Azure AD B2C Client IDs and Keys and lock down to APIM VIP
63
62
1. Build the API Definition in API Management
64
63
1. Set up Oauth2 for the API Management API configuration
65
64
1. Set up the **CORS** policy and add the **validate-jwt** policy to validate the OAuth token for every incoming request
66
65
1. Build the calling application to consume the API
67
66
1. Upload the JS SPA Sample
68
-
1. Configure the Sample JS Client App with the new Azure AD B2C Client ID’s and keys
67
+
1. Configure the Sample JS Client App with the new Azure AD B2C Client IDs and keys
69
68
1. Test the Client Application
70
69
71
70
> [!TIP]
@@ -198,7 +197,7 @@ Open the Azure AD B2C blade in the portal and do the following steps.
198
197
>
199
198
> We still have no IP security applied, if you have a valid key and OAuth2 token, anyone can call this from anywhere - ideally we want to force all requests to come via API Management.
200
199
>
201
-
> If you're using APIM Consumption tier then [there isn't a dedicated Azure API Management Virtual IP](./api-management-howto-ip-addresses.md#ip-addresses-of-consumption-tier-api-management-service) to allow-list with the functions access-restrictions. In the Azure API Management Standard SKU and above [the VIP is single tenant and for the lifetime of the resource](./api-management-howto-ip-addresses.md#changes-to-the-ip-addresses). For the Azure API Management Consumption tier, you can lock down your API calls via the shared secret function key in the portion of the URI you copied above. Also, for the Consumption tier - steps 12-17 below do not apply.
200
+
> If you're using the API Management Consumption, Basic v2, and Standard v2 tiers then [there isn't a dedicated Azure API Management Virtual IP](./api-management-howto-ip-addresses.md#ip-addresses-of-consumption-basic-v2-and-standard-v2-tier-api-management-service) to allow-list with the functions access-restrictions. In the Azure API Management dedicated tiers [the VIP is single tenant and for the lifetime of the resource](./api-management-howto-ip-addresses.md#changes-to-the-ip-addresses). For the tiers that run on shared infrastructure, you can lock down your API calls via the shared secret function key in the portion of the URI you copied above. Also, for these tiers - steps 12-17 below do not apply.
202
201
203
202
1. Close the 'Authentication' blade from the App Service / Functions portal.
204
203
1. Open the *API Management blade of the portal*, then open *your instance*.
Copy file name to clipboardExpand all lines: articles/azure-app-configuration/overview.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -52,8 +52,8 @@ The easiest way to add an App Configuration store to your application is through
52
52
| ASP.NET Core | App Configuration [provider](/dotnet/api/Microsoft.Extensions.Configuration.AzureAppConfiguration) for .NET Core | ASP.NET Core [quickstart](./quickstart-aspnet-core-app.md)|
53
53
| .NET Framework and ASP.NET | App Configuration [builder](https://go.microsoft.com/fwlink/?linkid=2074663) for .NET | .NET Framework [quickstart](./quickstart-dotnet-app.md)|
54
54
| Java Spring | App Configuration [provider](https://go.microsoft.com/fwlink/?linkid=2180917) for Spring Cloud | Java Spring [quickstart](./quickstart-java-spring-app.md)|
|Azure Arc Extension for Azure Data Studio<br/>`arc`<br/>`azcli`|<br/>1.8.0 ([Download](https://aka.ms/ads-arcdata-ext))</br>1.8.0 ([Download](https://aka.ms/ads-azcli-ext))|
40
40
|SQL Database version | 957 |
41
41
42
42
### Release notes
43
43
44
44
#### Arc-enabled SQL Server
45
45
46
-
Arc SQL Server | Show the Data Processing Service (DPS) connectivity status in the Azure portal | GA
46
+
Arc SQL Server & Arc Data Services | Available in Sweden Central Region | GA
47
+
48
+
Arc SQL Server & Arc Data Services | Available in Norway East Region | GA
49
+
50
+
Arc SQL Server & Arc Data Services | Available in UK West Region | GA
51
+
52
+
Arc SQL Server | Support for TLS 1.3
53
+
54
+
Arc SQL Server | Improved prompt for feedback in Azure portal | GA
55
+
56
+
Arc SQL Server | Monitoring | Show monitoring upload status on Arc SQL Server Overview UX | GA
47
57
48
-
Arc SQL Server | Monitoring | Add IOPS, Queue Latency Storage IO charts in Performance Dashboard in Azure portal
Copy file name to clipboardExpand all lines: articles/azure-arc/servers/includes/network-requirements.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@ The Azure Connected Machine agent for Linux and Windows communicates outbound se
13
13
To further secure your network connectivity to Azure Arc, instead of using public networks and proxy servers, you can implement an [Azure Arc Private Link Scope](../private-link-security.md) .
14
14
15
15
> [!NOTE]
16
-
> Azure Arc-enabled servers does not support using a [Log Analytics gateway](../../../azure-monitor/agents/gateway.md) as a proxy for the Connected Machine agent.
16
+
> Azure Arc-enabled servers does not support using a [Log Analytics gateway](../../../azure-monitor/agents/gateway.md) as a proxy for the Connected Machine agent. At the same time, Azure Monitor Agent supports Log Analytics gateway.
17
17
18
18
If outbound connectivity is restricted by your firewall or proxy server, make sure the URLs and Service Tags listed below are not blocked.
This config map can be used to provide Prometheus scrape config for addon replica. Addon runs a singleton replica, and any cluster level services can be discovered and scraped by providing scrape jobs in this configmap. You can take the sample configmap from the above git hub repo, add scrape jobs that you would need and apply/deploy the config map to `kube-system` namespace for your cluster.
This config map can be used to provide Prometheus scrape config for addon DaemonSet that runs on every **Linux** node in the cluster, and any node level targets on each node can be scraped by providing scrape jobs in this configmap. When you use this configmap, you can use `$NODE_IP` variable in your scrape config, which gets substituted by corresponding node's ip address in DaemonSet pod running on each node. This way you get access to scrape anything that runs on that node from the metrics addon DaemonSet. **Please be careful when you use discoveries in scrape config in this node level config map, as every node in the cluster will setup & discover the target(s) and will collect redundant metrics**.
32
+
This config map can be used to provide Prometheus scrape config for addon DaemonSet that runs on every **Linux** node in the cluster, and any node level targets on each node can be scraped by providing scrape jobs in this configmap. When you use this configmap, you can use `$NODE_IP` variable in your scrape config, which gets substituted by corresponding node's ip address in DaemonSet pod running on each node. This way you get access to scrape anything that runs on that node from the metrics addon DaemonSet. **Please be careful when you use discoveries in scrape config in this node level config map, as every node in the cluster will setup & discover the target(s) and will collect redundant metrics**.
33
33
You can take the sample configmap from the above git hub repo, add scrape jobs that you would need and apply/deploy the config map to `kube-system` namespace for your cluster
This config map can be used to provide Prometheus scrape config for addon DaemonSet that runs on every **Windows** node in the cluster, and node level targets on each node can be scraped by providing scrape jobs in this configmap. When you use this configmap, you can use `$NODE_IP` variable in your scrape config, which will be substituted by corresponding node's ip address in DaemonSet pod running on each node. This way you get access to scrape anything that runs on that node from the metrics addon DaemonSet. **Please be careful when you use discoveries in scrape config in this node level config map, as every node in the cluster will setup & discover the target(s) and will collect redundant metrics**.
35
+
This config map can be used to provide Prometheus scrape config for addon DaemonSet that runs on every **Windows** node in the cluster, and node level targets on each node can be scraped by providing scrape jobs in this configmap. When you use this configmap, you can use `$NODE_IP` variable in your scrape config, which will be substituted by corresponding node's ip address in DaemonSet pod running on each node. This way you get access to scrape anything that runs on that node from the metrics addon DaemonSet. **Please be careful when you use discoveries in scrape config in this node level config map, as every node in the cluster will setup & discover the target(s) and will collect redundant metrics**.
36
36
You can take the sample configmap from the above git hub repo, add scrape jobs that you would need and apply/deploy the config map to `kube-system` namespace for your cluster
37
37
38
38
## Metrics add-on settings configmap
@@ -308,6 +308,54 @@ metric_relabel_configs:
308
308
regex: '.+'
309
309
```
310
310
311
+
### TLS based scraping
312
+
313
+
If you have a Prometheus instance served with TLS and you want to scrape metrics from it, you need to set scheme to `https` and set the TLS settings in your configmap or respective CRD. You can use the `tls_config` configuration property inside a custom scrape job to configure the TLS settings either using a CRD or a configmap. You need to provide a CA certificate to validate API server certificate with. The CA certificate is used to verify the authenticity of the server's certificate when Prometheus connects to the target over TLS. It helps ensure that the server's certificate is signed by a trusted authority.
314
+
315
+
The secret should be created in kube-system namespace and then the configmap/CRD should be created in kube-system namespace. The order of secret creation matters. When there's no secret but a valid CRD/config map, you will find errors in collector log -> `no file found for cert....`
316
+
317
+
Below are the details about how to provide the TLS config settings through a configmap or CRD.
318
+
319
+
- To provide the TLS config setting in a configmap, please create the self-signed certificate and key inside /etc/prometheus/certs directory inside your mtls enabled app.
320
+
An example tlsConfig inside the config map should look like this:
321
+
322
+
```yaml
323
+
tls_config:
324
+
ca_file: /etc/prometheus/certs/client-cert.pem
325
+
cert_file: /etc/prometheus/certs/client-cert.pem
326
+
key_file: /etc/prometheus/certs/client-key.pem
327
+
insecure_skip_verify: false
328
+
```
329
+
330
+
- To provide the TLS config setting in a CRD, please create the self-signed certificate and key inside /etc/prometheus/certs directory inside your mtls enabled app.
331
+
An example tlsConfig inside a Podmonitor should look like this:
332
+
333
+
```yaml
334
+
tlsConfig:
335
+
ca:
336
+
secret:
337
+
key: "client-cert.pem" # since it is self-signed
338
+
name: "ama-metrics-mtls-secret"
339
+
cert:
340
+
secret:
341
+
key: "client-cert.pem"
342
+
name: "ama-metrics-mtls-secret"
343
+
keySecret:
344
+
key: "client-key.pem"
345
+
name: "ama-metrics-mtls-secret"
346
+
insecureSkipVerify: false
347
+
```
348
+
> [!NOTE]
349
+
> Make sure that the certificate file name and key name inside the mtls app is in the following format in case of a CRD based scraping.
350
+
For example: secret_kube-system_ama-metrics-mtls-secret_cert-name.pem and secret_kube-system_ama-metrics-mtls-secret_key-name.pem.
351
+
> The CRD needs to be created in kube-system namespace.
352
+
> The secret name should exactly be ama-metrics-mtls-secret in kube-system namespace. An example command for creating secret: kubectl create secret generic ama-metrics-mtls-secret --from-file=secret_kube-system_ama-metrics-mtls-secret_client-cert.pem=secret_kube-system_ama-metrics-mtls-secret_client-cert.pem --from-file=secret_kube-system_ama-metrics-mtls-secret_client-key.pem=secret_kube-system_ama-metrics-mtls-secret_client-key.pem -n kube-system
353
+
354
+
To read more on TLS authentication, the following documents might be helpful.
0 commit comments