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
-[Integrate with a private endpoint]({{< ref "/nginxaas-azure/quickstart/security-controls/certificates.md#integrate-with-private-endpoint" >}})
18
+
15
19
- In addition to the MI permissions, if using the Azure portal to manage certificates, ensure that you have read access to list certificates inside the Key Vault:
16
20
17
21
- If using Azure RBAC for AKV, ensure that you have [Key Vault Reader](https://learn.microsoft.com/en-us/azure/role-based-access-control/built-in-roles#key-vault-reader) or higher permissions.
18
22
19
23
- If using Access Policies for AKV, ensure that you have *LIST certificates* or higher permissions.
20
24
21
-
- If public access is disabled on your key vault, [configure Network Security Perimeter]({{< ref "/nginxaas-azure/quickstart/security-controls/certificates.md#configure-network-security-perimeter-nsp" >}}) and add an inbound access rule to allow your client IP address.
25
+
- If public access is disabled on your key vault, add an inbound access rule to allow your client IP address.
22
26
23
27
- If you're unfamiliar with Azure Key Vault, check out the [Azure Key Vault concepts](https://docs.microsoft.com/en-us/azure/key-vault/general/basic-concepts) documentation from Microsoft.
Copy file name to clipboardExpand all lines: content/nginxaas-azure/changelog.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,6 +13,10 @@ To see a list of currently active issues, visit the [Known issues]({{< ref "/ngi
13
13
14
14
To review older entries, visit the [Changelog archive]({{< ref "/nginxaas-azure/changelog-archive" >}}) section.
15
15
16
+
## TODO, 2025
17
+
- {{% icon-feature %}} **Support for downloading AKV certificates via Private Endpoints**
18
+
19
+
NGINXaaS now supports downloading certificate from Azure Key Vault via Private Endpoints. This will allow users to increase network security by disabling public access on their Key Vault. For more information, please visit [Integrate with Private Endpoint]({{< ref "/nginxaas-azure/quickstart/security-controls/certificates.md#integrate-with-private-endpoint" >}})
Copy file name to clipboardExpand all lines: content/nginxaas-azure/getting-started/ssl-tls-certificates/overview.md
+88-17Lines changed: 88 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -95,7 +95,7 @@ The following section describes common errors you might encounter while adding S
95
95
96
96
-**User assigned managed identity**
97
97
98
-
Please ensure the following environment variables are set before copying the below Azure CLI command.
98
+
Set the following environment variables before copying the below Azure CLI command.
99
99
-`MI_NAME`: the name of the managed identity
100
100
-`MI_RESOURCE_GROUP`: the name of the resource group the managed identity is in
101
101
```shell
@@ -106,7 +106,7 @@ The following section describes common errors you might encounter while adding S
106
106
107
107
- **System assigned managed identity**
108
108
109
-
Please ensure the following environment variables are set before copying the below Azure CLI command.
109
+
Set the following environment variables before copying the below Azure CLI command.
110
110
- `DEP_NAME`: the name of the NGINXaaS deployment
111
111
- `DEP_RESOURCE_GROUP`: the name of the resource group the NGINXaaS deployment is in
112
112
```shell
@@ -116,7 +116,7 @@ The following section describes common errors you might encounter while adding S
116
116
```
117
117
1. Get the resource ID of the key vault.
118
118
119
-
Please ensure the following environment variables are set before copying the below Azure CLI command.
119
+
Set the following environment variables before copying the below Azure CLI command.
120
120
- `KV_NAME`: the name of the key vault
121
121
- `KV_RESOURCE_GROUP`: the name of the resource group the key vault is in
122
122
```shell
@@ -145,7 +145,7 @@ The following section describes common errors you might encounter while adding S
145
145
146
146
- **User assigned managed identity**
147
147
148
-
Please ensure the following environment variables are set before copying the below Azure CLI command.
148
+
Set the following environment variables before copying the below Azure CLI command.
149
149
- `MI_NAME`: the name of the managed identity
150
150
- `MI_RESOURCE_GROUP`: the name of the resource group the managed identity is in
151
151
```shell
@@ -156,7 +156,7 @@ The following section describes common errors you might encounter while adding S
156
156
157
157
- **System assigned managed identity**
158
158
159
-
Please ensure the following environment variables are set before copying the below Azure CLI command.
159
+
Set the following environment variables before copying the below Azure CLI command.
160
160
- `DEP_NAME`: the name of the NGINXaaS deployment
161
161
- `DEP_RESOURCE_GROUP`: the name of the resource group the NGINXaaS deployment is in
162
162
```shell
@@ -167,7 +167,7 @@ The following section describes common errors you might encounter while adding S
167
167
168
168
1. Create the access policy.
169
169
170
-
Please ensure the following environment variables are set before copying the below Azure CLI command.
170
+
Set the following environment variables before copying the below Azure CLI command.
171
171
- `KV_NAME`: the name of the key vault
172
172
- `KV_RESOURCE_GROUP`: the name of the resource group the key vault is in
173
173
```shell
@@ -178,26 +178,26 @@ The following section describes common errors you might encounter while adding S
178
178
```
179
179
</details>
180
180
181
-
#### Error code: `ForbiddenByFirewall`
181
+
#### Error code: `ForbiddenByFirewall` or `ForbiddenByConnection`
182
182
183
183
**Description:** The key vault's firewall is enabled and NGINXaaS is not authorized to fetch certificates.
184
184
185
-
**Resolution:** [Configure Network Security Perimeter]({{< ref "/nginxaas-azure/quickstart/security-controls/certificates.md#configure-network-security-perimeter-nsp">}}) to allow the subscription of the NGINXaaS deployment to access the key vault.
186
-
185
+
**Resolution:**
186
+
1. [Configure Network Security Perimeter]({{< ref "/nginxaas-azure/quickstart/security-controls/certificates.md#configure-network-security-perimeter-nsp">}}) to allow the subscription of the NGINXaaS deployment to access the key vault.
187
187
<details>
188
188
<summary>Create a network security perimeter - Azure CLI</summary>
189
189
190
190
1. Create a network security perimeter.
191
191
192
-
Please ensure the following environment variables are set before copying the below Azure CLI command.
192
+
Set the following environment variables before copying the below Azure CLI command.
193
193
- `NSP_NAME`: the name of the network security perimeter
194
194
- `NSP_RESOURCE_GROUP`: the name of the resource group the network security perimeter will be in
195
195
```shell
196
196
az network perimeter create --name $NSP_NAME --resource-group $NSP_RESOURCE_GROUP
197
197
```
198
198
1. Create a profile for the network security perimeter.
199
199
200
-
Please ensure the following environment variable is set before copying the below Azure CLI command.
200
+
Set the following environment variable is set before copying the below Azure CLI command.
201
201
- `PROFILE_NAME`: the name of the network security perimeter profile
202
202
```shell
203
203
az network perimeter profile create --name $PROFILE_NAME \
@@ -206,7 +206,7 @@ The following section describes common errors you might encounter while adding S
206
206
```
207
207
1. Get the resource ID of the key vault.
208
208
209
-
Please ensure the following environment variables are set before copying the below Azure CLI command.
209
+
Set the following environment variables before copying the below Azure CLI command.
210
210
- `KV_NAME`: the name of the key vault
211
211
- `KV_RESOURCE_GROUP`: the name of the resource group the key vault is in
212
212
```shell
@@ -230,7 +230,7 @@ The following section describes common errors you might encounter while adding S
230
230
```
231
231
1. Add an inbound access rule to allow the NGINXaaS deployment's subscription.
232
232
233
-
Please ensure the following environment variables are set before copying the below Azure CLI command.
233
+
Set the following environment variables before copying the below Azure CLI command.
234
234
- `RULE_NAME`: the name of the access rule
235
235
- `DEP_SUBSCRIPTION_ID`: the subscription ID of the NGINXaaS deployment
236
236
```shell
@@ -242,6 +242,77 @@ The following section describes common errors you might encounter while adding S
242
242
```
243
243
</details>
244
244
245
+
2. Integrate with a Private Endpoint to allow NGINXaaS to fetch certificates via Azure Private Link.
246
+
<details>
247
+
<summary>Create a Private Link - Azure CLI</summary>
248
+
249
+
1. Get the resource ID of the key vault.
250
+
251
+
Set the following environment variables before copying the below Azure CLI command.
252
+
- `KV_NAME`: the name of the key vault
253
+
- `KV_RESOURCE_GROUP`: the name of tshe resource group the key vault is in
254
+
```shell
255
+
key_vault_id=$(az keyvault show --name $KV_NAME \
256
+
--resource-group $KV_RESOURCE_GROUP \
257
+
--query id --output tsv)
258
+
```
259
+
260
+
2. Create a private endpoint.
261
+
262
+
Set the following environment variables before copying the below Azure CLI command.
263
+
- `PE_NAME`: the name of the private endpoint
264
+
- `PE_RESOURCE_GROUP`: the name of the resource group the private endpoint will be in
265
+
- `VNET_NAME`: the name of the virtual network that is delegated to NGINXaaS
266
+
- `VNET_RESOURCE_GROUP`: the name of the resource group the virtual network is in
267
+
- `SUBNET_NAME`: the name of the subnet for private endpoints
268
+
- `PE_CONNECTION_NAME`: the name of the private endpoint connection
269
+
- `LOCATION`: the location of the virtual network
270
+
```shell
271
+
az network private-endpoint create --name $PE_NAME \
272
+
--resource-group $PE_RESOURCE_GROUP \
273
+
--vnet-name $VNET_NAME \
274
+
--subnet $SUBNET_NAME \
275
+
--private-connection-resource-id $key_vault_id \
276
+
--group-id vault \
277
+
--connection-name $PE_CONNECTION_NAME \
278
+
--location $LOCATION
279
+
```
280
+
281
+
1. Create a private DNS zone and link VNet.
282
+
283
+
Set the following environment variables before copying the below Azure CLI command.
284
+
- `ZONE_RESOURCE_GROUP`: the name of the resource group for the DNS zone
285
+
- `ZONE_NAME`: the name of the DNS zone
286
+
- `DNS_LINK_NAME`: the name of the DNS zone link
287
+
```shell
288
+
vnet_id=$(az network vnet show --name $VNET_NAME \
289
+
--resource-group $VNET_RESOURCE_GROUP \
290
+
--query id --output tsv)
291
+
```
292
+
```shell
293
+
az network private-dns zone create --resource-group $ZONE_RESOURCE_GROUP \
294
+
--name $ZONE_NAME
295
+
az network private-dns link vnet create --resource-group $ZONE_RESOURCE_GROUP \
296
+
--zone-name $ZONE_NAME \
297
+
--name $DNS_LINK_NAME \
298
+
--virtual-network $vnet_id \
299
+
--registration-enabled false
300
+
```
301
+
302
+
1. Add DNS zone group to the private endpoint.
303
+
304
+
Set the following environment variables before copying the below Azure CLI command.
305
+
- `DNS_ZONE_GROUP_NAME`: the name of the resource group for the DNS zone
306
+
```shell
307
+
az network private-endpoint dns-zone-group create \
308
+
--resource-group $PE_RESOURCE_GROUP \
309
+
--endpoint-name $PE_NAME \
310
+
--name $DNS_ZONE_GROUP_NAME \
311
+
--private-dns-zone $ZONE_NAME \
312
+
--zone-name $ZONE_NAME
313
+
```
314
+
</details>
315
+
245
316
#### Error code: `AnotherOperationInProgress`
246
317
247
318
**Description:** Another operation on this, or a dependent resource, is in progress.
@@ -273,7 +344,7 @@ The following section describes common errors you might encounter while adding S
273
344
274
345
- **User assigned managed identity**
275
346
276
-
Please ensure the following environment variables are set before copying the below Azure CLI command.
347
+
Set the following environment variables before copying the below Azure CLI command.
277
348
- `MI_NAME`: the name of the managed identity
278
349
- `MI_RESOURCE_GROUP`: the name of the resource group the managed identity is in
279
350
```shell
@@ -284,7 +355,7 @@ The following section describes common errors you might encounter while adding S
284
355
285
356
- **System assigned managed identity**
286
357
287
-
Please ensure the following environment variables are set before copying the below Azure CLI command.
358
+
Set the following environment variables before copying the below Azure CLI command.
288
359
- `DEP_NAME`: the name of the NGINXaaS deployment
289
360
- `DEP_RESOURCE_GROUP`: the name of the resource group the NGINXaaS deployment is in
290
361
```shell
@@ -295,7 +366,7 @@ The following section describes common errors you might encounter while adding S
295
366
296
367
1. Create the access policy.
297
368
298
-
Please ensure the following environment variables are set before copying the below Azure CLI command.
369
+
Set the following environment variables before copying the below Azure CLI command.
299
370
- `KV_NAME`: the name of the key vault
300
371
- `KV_RESOURCE_GROUP`: the name of the resource group the key vault is in
301
372
```shell
@@ -323,7 +394,7 @@ The following section describes common errors you might encounter while adding S
323
394
324
395
1. Get the resource ID of the certificate.
325
396
326
-
Please ensure the following environment variables are set before copying the below Azure CLI command.
397
+
Set the following environment variables before copying the below Azure CLI command.
List of known issues in the latest release of F5 NGINXaaS for Azure (NGINXaaS).
11
11
12
+
### {{% icon-bug %}} Certificate failures when managed identities with access is added after deployment creation
13
+
14
+
This issue occurs when public access is disabled on Azure Key Vault (AKV) and the managed identity that has access to AKV is added to the NGINXaaS deployment after creation.
15
+
16
+
Updating managed identities on an NGINXaaS deployment after creation may result in the managed identity not being correctly delegated to the dataplane, which can cause certificate fetch failures.
17
+
18
+
**Workaround**: To avoid this issue, when you create an NGINXaaS deployment, make sure that the managed identity with access to AKV is assigned during initial creation. If managed identities need to be updated after creation, enable public access to AKV or [configure Network Security Perimeter]({{< ref "/nginxaas-azure/quickstart/security-controls/certificates.md#configure-network-security-perimeter-nsp" >}})
19
+
12
20
### {{% icon-bug %}} Custom and precompiled security policies cannot both be referenced in an NGINX configuration
13
21
14
22
When using NGINX App Protect WAF, you can only reference default or custom security policies in your NGINX configuration, not both.
0 commit comments