Skip to content

Commit 332ecf3

Browse files
authored
Merge pull request #267838 from ShawnJackson/howto-configure-acls-for-ssh-management-on-access-vpn
[AQ] edit pass: howto-configure-acls-for-ssh-management-on-access-vpn
2 parents e38fdee + 911d848 commit 332ecf3

File tree

1 file changed

+65
-87
lines changed

1 file changed

+65
-87
lines changed

articles/operator-nexus/howto-configure-acls-for-ssh-management-on-access-vpn.md

Lines changed: 65 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
2-
title: "Azure Operator Nexus: How to Configure Network Access Control Lists (ACLs) for SSH Access on Management VPN."
3-
description: Instructions on setting up network access control lists (ACLs) to control SSH access on a management VPN.
2+
title: Create ACLs on an NNI in Azure Operator Nexus
3+
description: Get instructions on setting up network access control lists (ACLs) to control SSH access on a management VPN.
44
ms.service: azure-operator-nexus
55
ms.custom: template-how-to, devx-track-azurecli
66
ms.topic: how-to
@@ -9,54 +9,51 @@ author: sushantjrao
99
ms.author: sushrao
1010
---
1111

12-
# How-To Guide: Creating ACLs on an NNI
12+
# Create ACLs on an NNI in Azure Operator Nexus
1313

14-
ACLs (Permit & Deny) at an NNI Level are designed to protect SSH access on the Management VPN. Network Access Control Lists can be applied before provisioning the Network Fabric. It's important to note that this limitation is temporary and will be removed in future releases.
14+
In Azure Operator Nexus, access control lists (ACLs) for `Permit` and `Deny` actions at a network-to-network interconnect (NNI) level help protect Secure Shell (SSH) access on the management virtual private network (VPN). You create ingress and egress ACLs before the creation of NNI resources and then reference those ACLs in the NNI payload. You need to create referenced ingress and egress ACLs before you provision the network fabric.
1515

16-
Ingress and Egress ACLs are created prior to the creation of NNI resources and are referenced into the NNI payload. When NNI resources are created, they also create referenced ingress and egress ACLs. This activity needs to be performed before provisioning the Network Fabric.
16+
These are the high-level steps for creating an ACL on an NNI:
1717

18-
## Steps to Create an ACL on an NNI:
18+
1. Create NNI ingress and egress ACLs.
19+
2. Update the Azure Resource Manager resource reference in a management NNI.
20+
3. Create an NNI and provision the network fabric.
1921

20-
1. Create NNI Ingress and Egress ACLs
21-
2. Update ARM Resource Reference in Management NNI
22-
3. Create NNI and Provision Network Fabric
22+
## Parameter usage guidance
2323

24-
## Parameter Usage Guidance:
25-
26-
| Parameter | Description | Example or Range |
24+
| Parameter | Description | Example or range |
2725
|----------------------|--------------------------------------------------------------|--------------------------------|
28-
| defaultAction | Defines default action to be taken. If not defined, traffic is permitted. | "defaultAction": "Permit" |
29-
| resource-group | Resource group of the network fabric. | nfresourcegroup |
30-
| resource-name | Name of the ACL. | example-ingressACL |
31-
| vlanGroups | List of VLAN groups. | |
32-
| vlans | List of VLANs that need to be matched. | |
33-
| match-configurations | Name of match configuration. | example_acl (spaces and special character "&" aren't supported) |
34-
| matchConditions | Conditions required to be matched. | |
35-
| ttlValues | TTL (Time To Live). | 0-255 |
36-
| dscpMarking | DSCP Markings that need to be matched. | 0-63 |
37-
| portCondition | Port condition that needs to be matched. | |
38-
| portType | Port type that needs to be matched. | Example: SourcePort. Allowed values: DestinationPort, SourcePort |
39-
| protocolTypes | Protocols that need to be matched. | [tcp, udp, range[1-2, 1, 2]] (if protocol number, it should be in the range of 1-255) |
40-
| vlanMatchCondition | VLAN match condition that needs to be matched. | |
41-
| layer4Protocol | Layer 4 Protocol. | Should be either TCP or UDP |
42-
| ipCondition | IP condition that needs to be matched. | |
43-
| actions | Action to be taken based on match condition. | Example: permit |
44-
| configuration-type | Configuration type can be inline or by using a file. However, AON supports only inline today. | Example: inline |
45-
46-
47-
There are some further restrictions that you should be aware of:
48-
49-
- **Inline ports and inline VLANs** are a static way of defining the ports or VLANs using `azcli`.
50-
- **PortGroupNames and VLANGroupNames** are dynamic ways of defining ports and VLANs.
51-
- **Inline ports and the PortGroupNames** together aren't allowed.
52-
- **Inline VLANs and the VLANGroupNames** together aren't allowed.
53-
- **IpGroupNames and IpPrefixValues** together aren't allowed.
54-
- **Egress ACLs** won’t support IP options, IP length, fragment, ether-type, DSCP marking, or TTL values.
55-
- **Ingress ACLs** won't support following options: etherType.
56-
57-
## Creating Ingress ACL
58-
59-
To create an Ingress ACL, you can use the following Azure CLI command:
26+
| `defaultAction` | Default action to be taken. If you don't define it, traffic is permitted. | `"defaultAction": "Permit"` |
27+
| `resource-group` | Resource group of the network fabric. | `nfresourcegroup` |
28+
| `resource-name` | Name of the ACL. | `example-ingressACL` |
29+
| `vlanGroups` | List of virtual local area network (VLAN) groups. | |
30+
| `vlans` | List of VLANs that need to be matched. | |
31+
| `match-configurations` | Name of the match configuration. | `example_acl`. Spaces and the ampersand character (&) aren't supported. |
32+
| `matchConditions` | Conditions required to be matched. | |
33+
| `ttlValues` | Time to live (TTL). | `0`-`255` |
34+
| `dscpMarking` | Differentiated Services Code Point (DSCP) markings that need to be matched. | `0`-`63` |
35+
| `portCondition` | Port condition that needs to be matched. | |
36+
| `portType` | Port type that needs to be matched. | Example: `SourcePort`. Allowed values: `DestinationPort`, `SourcePort`. |
37+
| `protocolTypes` | Protocols that need to be matched. | `[tcp, udp, range[1-2, 1, 2]]`. If it's a protocol number, it should be in the range of `1`-`255`. |
38+
| `vlanMatchCondition` | VLAN match condition that needs to be matched. | |
39+
| `layer4Protocol` | Layer 4 protocol. | Should be either `TCP` or `UDP`. |
40+
| `ipCondition` | IP condition that needs to be matched. | |
41+
| `actions` | Action to be taken based on a match condition. | Example: `permit`. |
42+
| `configuration-type` | Configuration type, which can be inline or file. At this time, Azure Operator Nexus supports only inline. | Example: `inline`. |
43+
44+
You should also be aware of these restrictions:
45+
46+
- Inline ports and inline VLANs are a static way of defining the ports or VLANs by using `azcli`.
47+
- `portGroupNames` and `vlanGroupNames` are dynamic ways of defining ports and VLANs.
48+
- Inline ports and `portGroupNames` together aren't allowed.
49+
- Inline VLANs and `vlanGroupNames` together aren't allowed.
50+
- `ipGroupNames` and `ipPrefixValues` together aren't allowed.
51+
- Egress ACLs don't support IP options, IP length, fragment, EtherType, DSCP marking, or TTL values.
52+
- Ingress ACLs don't support EtherType options.
53+
54+
## Create an ingress ACL
55+
56+
To create an ingress ACL, you can use the following Azure CLI command. This command creates an ingress ACL with the specified configurations and provides the expected result as output. Adjust the parameters as needed for your use case.
6057

6158
```bash
6259
az networkfabric acl create
@@ -70,7 +67,7 @@ az networkfabric acl create
7067

7168
```
7269

73-
### Expected Output:
70+
#### Expected output
7471

7572
```json
7673
{
@@ -136,11 +133,9 @@ az networkfabric acl create
136133
}
137134
```
138135

139-
This command creates an Ingress ACL with the specified configurations and outputs the expected result. Adjust the parameters as needed for your use case.
140-
141-
## Creating Egress ACL
136+
## Create an egress ACL
142137

143-
To create an Egress ACL, you can utilize the following Azure CLI command:
138+
To create an egress ACL, you can use the following Azure CLI command. This command creates an egress ACL with the specified configurations and provides the expected result as output. Adjust the parameters as needed for your use case.
144139

145140
```bash
146141
az networkfabric acl create
@@ -154,7 +149,7 @@ az networkfabric acl create
154149

155150
```
156151

157-
### Expected Output:
152+
#### Expected output
158153

159154
```json
160155
{
@@ -200,16 +195,16 @@ az networkfabric acl create
200195
}
201196
```
202197

203-
This command creates an Egress ACL with the specified configurations and outputs the expected result. Adjust the parameters as needed for your use case.
198+
## Update the Resource Manager reference
204199

205-
## Updating ARM Reference
200+
This step enables the creation of ACLs (ingress and egress if a reference is provided) during the creation of the NNI resource. After you create the NNI and before you provision the network fabric, you can perform re-put on the NNI.
206201

207-
This step enables the creation of ACLs (ingress and egress if reference is provided) during the creation of the NNI resource. Post creation of NNI and before fabric provisioning, re-put can be done on NNI.
202+
- `ingressAclId`: Reference ID for the ingress ACL.
203+
- `egressAclId`: Reference ID for the egress ACL.
208204

209-
- `ingressAclId`: Reference ID for ingress ACL
210-
- `egressAclId`: Reference ID for egress ACL
205+
To get the Resource Manager resource ID, go to the resource group of the subscription that you're using.
211206

212-
To get ARM resource ID, navigate to the resource group of the subscription used.
207+
The following command updates the Resource Manager reference for the NNI resource by associating it with the provided ingress and egress ACLs. Adjust the parameters as needed for your use case.
213208

214209
```bash
215210
az networkfabric nni create
@@ -225,38 +220,29 @@ az networkfabric nni create
225220
--egress-acl-id "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxx/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/accesscontrollists/example-Ipv4egressACL"
226221
```
227222

228-
This command updates the ARM reference for the NNI resource, associating it with the provided ingress and egress ACLs. Adjust the parameters as needed for your use case.
229-
230-
## Show ACL
223+
## Show ACL details
231224

232-
To display the details of an Access Control List (ACL), use the following command:
225+
To display the details of a specified ACL, use the following command:
233226

234227
```bash
235228
az networkfabric acl show --resource-group "example-rg" --resource-name "example-acl"
236229
```
237230

238-
This command will retrieve and display information about the specified ACL.
231+
## List ACLs
239232

240-
## List ACL
241-
242-
To list all Access Control Lists (ACLs) within a resource group, execute the following command:
233+
To list all ACLs within a specified resource group, use the following command:
243234

244235
```bash
245236
az networkfabric acl list --resource-group "ResourceGroupName"
246237
```
247238

248-
This command will list all ACLs present in the specified resource group.
249-
250-
## Create ACL on Isolation Domain External Network
239+
## Create ACLs on the ISD external network
251240

252-
Steps to be performed to create an ACL on an NNI:
241+
Use the following information to create ingress and egress ACLs for the isolation domain (ISD) external network. Then, update the Resource Manager resource reference for the external network.
253242

254-
1. Create an isolation domain external network ingress and egress ACLs.
255-
2. Update Arm Resource Reference for External Network.
243+
### Create an egress ACL for the ISD external network
256244

257-
## Create ISD External Network Egress ACL
258-
259-
To create an Egress Access Control List (ACL) for an Isolation Domain External Network, use the following command:
245+
To create an egress ACL for the specified ISD external network with the provided configuration, use the following command. Adjust the parameters as needed for your use case.
260246

261247
```bash
262248
az networkfabric acl create
@@ -269,11 +255,9 @@ az networkfabric acl create
269255
--match-configurations "[{matchConfigurationName:'L3ISD_EXT_OPTA_EGRESS_ACL_IPV4_CE_PE',sequenceNumber:1110,ipAddressType:IPv4,matchConditions:[{ipCondition:{type:SourceIP,prefixType:Prefix,ipPrefixValues:['10.18.0.124/30','10.18.0.128/30','10.18.30.16/30','10.18.30.20/30']}},{ipCondition:{type:DestinationIP,prefixType:Prefix,ipPrefixValues:['10.18.0.124/30','10.18.0.128/30','10.18.30.16/30','10.18.30.20/30']}}],actions:[{type:Count}]}]"
270256
```
271257

272-
This command creates an Egress ACL for the specified Isolation Domain External Network with the provided configuration.
273-
274-
### Expected Output
258+
#### Expected output
275259

276-
Upon successful execution, the command will return information about the created ACL in the following format:
260+
Upon successful execution, the command returns information about the created ACL in the following format. This output includes details about the configuration and state.
277261

278262
```json
279263
{
@@ -337,11 +321,9 @@ Upon successful execution, the command will return information about the created
337321
}
338322
```
339323

340-
This output provides details of the created ACL, including its configuration, state, and other relevant information. Adjust the parameters as required for your use case.
341-
342-
## Create ISD External Network Ingress ACL
324+
### Create an ingress ACL for the ISD external network
343325

344-
To create an Ingress Access Control List (ACL) for an Isolation Domain External Network, use the following command:
326+
To create an ingress ACL for the specified ISD external network with the provided configuration, use the following command. Adjust the parameters as needed for your use case.
345327

346328
```bash
347329
az networkfabric acl create
@@ -354,11 +336,9 @@ az networkfabric acl create
354336
--match-configurations "[{matchConfigurationName:'L3ISD_EXT_OPTA_INGRESS_ACL_IPV4_CE_PE',sequenceNumber:1110,ipAddressType:IPv4,matchConditions:[{ipCondition:{type:SourceIP,prefixType:Prefix,ipPrefixValues:['10.18.0.124/30','10.18.0.128/30','10.18.30.16/30','10.18.30.20/30']}},{ipCondition:{type:DestinationIP,prefixType:Prefix,ipPrefixValues:['10.18.0.124/30','10.18.0.128/30','10.18.30.16/30','10.18.30.20/30']}}],actions:[{type:Count}]}]"
355337
```
356338

357-
This command creates an Ingress ACL for the specified Isolation Domain External Network with the provided configuration.
339+
#### Expected output
358340

359-
### Expected Output
360-
361-
Upon successful execution, the command will return information about the created ACL in the following format:
341+
Upon successful execution, the command returns information about the created ACL in the following format. This output includes details about the configuration and state.
362342

363343
```json
364344
{
@@ -421,5 +401,3 @@ Upon successful execution, the command will return information about the created
421401
"type": "microsoft.managednetworkfabric/accesscontrollists"
422402
}
423403
```
424-
425-
This output provides details of the created ACL, including its configuration, state, and other relevant information. Adjust the parameters as required for your use case.

0 commit comments

Comments
 (0)