Skip to content

Commit 23ecf1a

Browse files
idear1203Dongwei Wang
andauthored
[Synapse] New-AzSynapseFirewallRule correct IP ranges for -AllowAllAzureIp and -AllowAllIp (#14601)
* Add -AllowAllIp for New-AzSynapseFirewallRule * Update changelog * Add exceptions and change tab to spaces * Update session records Co-authored-by: Dongwei Wang <[email protected]>
1 parent 0b18a6d commit 23ecf1a

File tree

8 files changed

+1691
-650
lines changed

8 files changed

+1691
-650
lines changed

src/Synapse/Synapse.Test/ScenarioTests/FirewallTests.ps1

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,15 @@ function Test-SynapseFirewall
4848

4949
# Delete firewall
5050
Assert-True {Remove-AzSynapseFirewallRule -ResourceGroupName $resourceGroupName -WorkspaceName $workspaceName -Name $firewallRuleName -PassThru -Force} "Remove firewall rule failed"
51+
52+
# create firewall rule to allow all Azure IP
53+
$firewallCreated = New-AzSynapseFirewallRule -ResourceGroupName $resourceGroupName -WorkspaceName $workspaceName -AllowAllAzureIp
54+
Assert-AreEqual "0.0.0.0" $firewallCreated.StartIpAddress
55+
Assert-AreEqual "0.0.0.0" $firewallCreated.EndIpAddress
56+
57+
$firewallCreated = New-AzSynapseFirewallRule -ResourceGroupName $resourceGroupName -WorkspaceName $workspaceName -AllowAllIp
58+
Assert-AreEqual "0.0.0.0" $firewallCreated.StartIpAddress
59+
Assert-AreEqual "255.255.255.255" $firewallCreated.EndIpAddress
5160
}
5261
finally
5362
{

src/Synapse/Synapse.Test/SessionRecords/Microsoft.Azure.Commands.Synapse.Test.ScenarioTests.FirewallTests/TestSynapseFirewall.json

Lines changed: 1613 additions & 629 deletions
Large diffs are not rendered by default.

src/Synapse/Synapse/ChangeLog.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
- Additional information about change #1
1919
-->
2020
## Upcoming Release
21+
* Renamed -AllowAllAzureIP to -AllowAllAzureIp and changed IP range to 0.0.0.0-0.0.0.0
22+
* Added -AllowAllIp and set IP range to 0.0.0.0-255.255.255.255
2123

2224
## Version 0.9.0
2325
* Added support for workspace key encryption management

src/Synapse/Synapse/Commands/ManagementCommands/Firewall/NewAzureSynapseFirewallRule.cs

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
using Microsoft.Azure.Management.Internal.Resources.Utilities.Models;
55
using Microsoft.Azure.Commands.Synapse.Properties;
66
using Microsoft.WindowsAzure.Commands.Utilities.Common;
7-
using System.Linq;
87
using System.Management.Automation;
98
using Microsoft.Azure.Management.Synapse.Models;
109

@@ -17,25 +16,33 @@ public class NewAzureSynapseFirewallRule : SynapseManagementCmdletBase
1716
{
1817
private const string CreateByNameParameterSet = "CreateByNameParameterSet";
1918
private const string CreateByParentObjectParameterSet = "CreateByParentObjectParameterSet";
19+
private const string CreateByNameAllowAllAzureIpParameterSet = "CreateByNameAllowAllAzureIpParameterSet";
20+
private const string CreateByParentObjectAllowAllAzureIpParameterSet = "CreateByParentObjectAllowAllAzureIpParameterSet";
2021
private const string CreateByNameAllowAllIpParameterSet = "CreateByNameAllowAllIpParameterSet";
2122
private const string CreateByParentObjectAllowAllIpParameterSet = "CreateByParentObjectAllowAllIpParameterSet";
22-
private const string AzureRuleStartIp = "0.0.0.0";
23-
private const string AzureRuleEndIp = "255.255.255.255";
24-
private const string AzureRuleName = "AllowAllAzureIPs";
23+
private const string AllowAllAzureIpRuleStartIp = "0.0.0.0";
24+
private const string AllowAllAzureIpRuleEndIp = "0.0.0.0";
25+
private const string AllowAllAzureIpRuleName = "AllowAllWindowsAzureIps";
26+
private const string AllowAllIpRuleStartIp = "0.0.0.0";
27+
private const string AllowAllIpRuleEndIp = "255.255.255.255";
28+
private const string AllowAllIpRuleName = "allowAll";
2529

2630
[Parameter(ParameterSetName = CreateByNameParameterSet,Mandatory = false, HelpMessage = HelpMessages.ResourceGroupName)]
31+
[Parameter(ParameterSetName = CreateByNameAllowAllAzureIpParameterSet, Mandatory = false, HelpMessage = HelpMessages.ResourceGroupName)]
2732
[Parameter(ParameterSetName = CreateByNameAllowAllIpParameterSet, Mandatory = false, HelpMessage = HelpMessages.ResourceGroupName)]
2833
[ResourceGroupCompleter]
2934
[ValidateNotNullOrEmpty]
3035
public string ResourceGroupName { get; set; }
3136

3237
[Parameter(ParameterSetName = CreateByNameParameterSet,Mandatory = true, HelpMessage = HelpMessages.WorkspaceName)]
38+
[Parameter(ParameterSetName = CreateByNameAllowAllAzureIpParameterSet, Mandatory = true, HelpMessage = HelpMessages.WorkspaceName)]
3339
[Parameter(ParameterSetName = CreateByNameAllowAllIpParameterSet, Mandatory = true, HelpMessage = HelpMessages.WorkspaceName)]
3440
[ResourceNameCompleter(ResourceTypes.Workspace, nameof(ResourceGroupName))]
3541
[ValidateNotNullOrEmpty]
3642
public string WorkspaceName { get; set; }
3743

3844
[Parameter(ValueFromPipeline = true, ParameterSetName = CreateByParentObjectParameterSet, Mandatory = true, HelpMessage = HelpMessages.WorkspaceObject)]
45+
[Parameter(ValueFromPipeline = true, ParameterSetName = CreateByParentObjectAllowAllAzureIpParameterSet, Mandatory = true, HelpMessage = HelpMessages.WorkspaceObject)]
3946
[Parameter(ValueFromPipeline = true, ParameterSetName = CreateByParentObjectAllowAllIpParameterSet, Mandatory = true, HelpMessage = HelpMessages.WorkspaceObject)]
4047
[ValidateNotNull]
4148
public PSSynapseWorkspace WorkspaceObject { get; set; }
@@ -56,9 +63,13 @@ public class NewAzureSynapseFirewallRule : SynapseManagementCmdletBase
5663
[ValidateNotNullOrEmpty]
5764
public string EndIpAddress { get; set; }
5865

59-
[Parameter(ParameterSetName = CreateByNameAllowAllIpParameterSet, Mandatory = true, HelpMessage = HelpMessages.AzureIpRule)]
60-
[Parameter(ParameterSetName = CreateByParentObjectAllowAllIpParameterSet, Mandatory = true, HelpMessage = HelpMessages.AzureIpRule)]
61-
public SwitchParameter AllowAllAzureIP { get; set; }
66+
[Parameter(ParameterSetName = CreateByNameAllowAllAzureIpParameterSet, Mandatory = true, HelpMessage = HelpMessages.AllowAllAzureIpRule)]
67+
[Parameter(ParameterSetName = CreateByParentObjectAllowAllAzureIpParameterSet, Mandatory = true, HelpMessage = HelpMessages.AllowAllAzureIpRule)]
68+
public SwitchParameter AllowAllAzureIp { get; set; }
69+
70+
[Parameter(ParameterSetName = CreateByNameAllowAllIpParameterSet, Mandatory = true, HelpMessage = HelpMessages.AllowAllIpRule)]
71+
[Parameter(ParameterSetName = CreateByParentObjectAllowAllIpParameterSet, Mandatory = true, HelpMessage = HelpMessages.AllowAllIpRule)]
72+
public SwitchParameter AllowAllIp { get; set; }
6273

6374
[Parameter(Mandatory = false, HelpMessage = HelpMessages.AsJob)]
6475
public SwitchParameter AsJob { get; set; }
@@ -71,11 +82,18 @@ public override void ExecuteCmdlet()
7182
this.WorkspaceName = this.WorkspaceObject.Name;
7283
}
7384

85+
if (ParameterSetName == CreateByNameAllowAllAzureIpParameterSet || ParameterSetName == CreateByParentObjectAllowAllAzureIpParameterSet)
86+
{
87+
this.Name = AllowAllAzureIpRuleName;
88+
this.StartIpAddress = AllowAllAzureIpRuleStartIp;
89+
this.EndIpAddress = AllowAllAzureIpRuleEndIp;
90+
}
91+
7492
if (ParameterSetName == CreateByNameAllowAllIpParameterSet || ParameterSetName == CreateByParentObjectAllowAllIpParameterSet)
7593
{
76-
this.Name = AzureRuleName;
77-
this.StartIpAddress = AzureRuleStartIp;
78-
this.EndIpAddress = AzureRuleEndIp;
94+
this.Name = AllowAllIpRuleName;
95+
this.StartIpAddress = AllowAllIpRuleStartIp;
96+
this.EndIpAddress = AllowAllIpRuleEndIp;
7997
}
8098

8199
if (string.IsNullOrEmpty(this.ResourceGroupName))

src/Synapse/Synapse/Common/HelpMessages.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,9 @@ SELECT on dbo.myTable by public
259259

260260
public const string EndIpAddress = "The end IP address of the firewall rule. Must be IPv4 format. Must be greater than or equal to startIpAddress.";
261261

262-
public const string AzureIpRule = "Creates a special firewall rule that permits all Azure IPs to have access.";
262+
public const string AllowAllAzureIpRule = "Creates a special firewall rule that permits all Azure IPs to have access. The Start IP is 0.0.0.0. The End IP is 0.0.0.0.";
263+
264+
public const string AllowAllIpRule = "Creates a special firewall rule that allows connections from all IP addresses. The Start IP is 0.0.0.0. The End IP is 255.255.255.255.";
263265

264266
public const string RoleAssignmentId = "The ID of the role assignment.";
265267

src/Synapse/Synapse/Models/SynapseConstants.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -204,10 +204,6 @@ public static class SynapseConstants
204204

205205
public const string DefaultCollation = "SQL_Latin1_General_CP1_CI_AS";
206206

207-
public const string AllowAllStartIpAddress = "0.0.0.0";
208-
209-
public const string AllowAllEndIpAddress = "255.255.255.255";
210-
211207
public const string StorageBlobDataContributorRoleName = "Azure Blob Data Contributor";
212208

213209
public class Security

src/Synapse/Synapse/help/New-AzSynapseFirewallRule.md

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,15 @@ New-AzSynapseFirewallRule [-ResourceGroupName <String>] -WorkspaceName <String>
1919
[-Confirm] [<CommonParameters>]
2020
```
2121

22+
### CreateByNameAllowAllAzureIpParameterSet
23+
```
24+
New-AzSynapseFirewallRule [-ResourceGroupName <String>] -WorkspaceName <String> [-AllowAllAzureIp] [-AsJob]
25+
[-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
26+
```
27+
2228
### CreateByNameAllowAllIpParameterSet
2329
```
24-
New-AzSynapseFirewallRule [-ResourceGroupName <String>] -WorkspaceName <String> [-AllowAllAzureIP] [-AsJob]
30+
New-AzSynapseFirewallRule [-ResourceGroupName <String>] -WorkspaceName <String> [-AllowAllIp] [-AsJob]
2531
[-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
2632
```
2733

@@ -32,9 +38,15 @@ New-AzSynapseFirewallRule -WorkspaceObject <PSSynapseWorkspace> -Name <String> -
3238
[<CommonParameters>]
3339
```
3440

41+
### CreateByParentObjectAllowAllAzureIpParameterSet
42+
```
43+
New-AzSynapseFirewallRule -WorkspaceObject <PSSynapseWorkspace> [-AllowAllAzureIp] [-AsJob]
44+
[-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
45+
```
46+
3547
### CreateByParentObjectAllowAllIpParameterSet
3648
```
37-
New-AzSynapseFirewallRule -WorkspaceObject <PSSynapseWorkspace> [-AllowAllAzureIP] [-AsJob]
49+
New-AzSynapseFirewallRule -WorkspaceObject <PSSynapseWorkspace> [-AllowAllIp] [-AsJob]
3850
[-DefaultProfile <IAzureContextContainer>] [-WhatIf] [-Confirm] [<CommonParameters>]
3951
```
4052

@@ -67,9 +79,24 @@ This command creates firewall rule that allow all azure ips under a workspace.
6779

6880
## PARAMETERS
6981

70-
### -AllowAllAzureIP
82+
### -AllowAllAzureIp
7183
Creates a special firewall rule that permits all Azure IPs to have access.
7284

85+
```yaml
86+
Type: System.Management.Automation.SwitchParameter
87+
Parameter Sets: CreateByNameAllowAllAzureIpParameterSet, CreateByParentObjectAllowAllAzureIpParameterSet
88+
Aliases:
89+
90+
Required: True
91+
Position: Named
92+
Default value: None
93+
Accept pipeline input: False
94+
Accept wildcard characters: False
95+
```
96+
97+
### -AllowAllIp
98+
Creates a special firewall rule that allows connections from all IP addresses. The Start IP is 0.0.0.0. The End IP is 255.255.255.255.
99+
73100
```yaml
74101
Type: System.Management.Automation.SwitchParameter
75102
Parameter Sets: CreateByNameAllowAllIpParameterSet, CreateByParentObjectAllowAllIpParameterSet
@@ -149,7 +176,7 @@ Resource group name.
149176
150177
```yaml
151178
Type: System.String
152-
Parameter Sets: CreateByNameParameterSet, CreateByNameAllowAllIpParameterSet
179+
Parameter Sets: CreateByNameParameterSet, CreateByNameAllowAllAzureIpParameterSet, CreateByNameAllowAllIpParameterSet
153180
Aliases:
154181

155182
Required: False
@@ -180,7 +207,7 @@ Name of Synapse workspace.
180207
181208
```yaml
182209
Type: System.String
183-
Parameter Sets: CreateByNameParameterSet, CreateByNameAllowAllIpParameterSet
210+
Parameter Sets: CreateByNameParameterSet, CreateByNameAllowAllAzureIpParameterSet, CreateByNameAllowAllIpParameterSet
184211
Aliases:
185212

186213
Required: True
@@ -195,7 +222,7 @@ workspace input object, usually passed through the pipeline.
195222
196223
```yaml
197224
Type: Microsoft.Azure.Commands.Synapse.Models.PSSynapseWorkspace
198-
Parameter Sets: CreateByParentObjectParameterSet, CreateByParentObjectAllowAllIpParameterSet
225+
Parameter Sets: CreateByParentObjectParameterSet, CreateByParentObjectAllowAllAzureIpParameterSet, CreateByParentObjectAllowAllIpParameterSet
199226
Aliases:
200227

201228
Required: True

tools/StaticAnalysis/Exceptions/Az.Synapse/BreakingChangeIssues.csv

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,3 +45,6 @@
4545
"Microsoft.Azure.PowerShell.Cmdlets.Synapse.dll","Microsoft.Azure.Commands.Synapse.RestoreAzureSynapseSqlPool","Restore-AzSynapseSqlPool","0","1050","The parameter set '__AllParameterSets' for cmdlet 'Restore-AzSynapseSqlPool' has been removed.","Add parameter set '__AllParameterSets' back to cmdlet 'Restore-AzSynapseSqlPool'."
4646
"Microsoft.Azure.PowerShell.Cmdlets.Synapse.dll","Microsoft.Azure.Commands.Synapse.UpdateAzureSynapseWorkspace","Update-AzSynapseWorkspace","0","1050","The parameter set 'SetByNameParameterSet' for cmdlet 'Update-AzSynapseWorkspace' has been removed.","Add parameter set 'SetByNameParameterSet' back to cmdlet 'Update-AzSynapseWorkspace'."
4747
"Microsoft.Azure.PowerShell.Cmdlets.Synapse.dll","Microsoft.Azure.Commands.Synaspe.NewAzureSynapseWorkspace","New-AzSynapseWorkspace","0","2020","The cmdlet 'New-AzSynapseWorkspace' no longer supports the type 'System.String' for parameter 'ManagedVirtualNetwork'.","Change the type for parameter 'ManagedVirtualNetwork' back to 'System.String'."
48+
"Microsoft.Azure.PowerShell.Cmdlets.Synapse.dll","Microsoft.Azure.Commands.Synapse.NewAzureSynapseFirewallRule","New-AzSynapseFirewallRule","0","2000","The cmdlet 'New-AzSynapseFirewallRule' no longer supports the parameter 'AllowAllAzureIP' and no alias was found for the original parameter name.","Add the parameter 'AllowAllAzureIP' back to the cmdlet 'New-AzSynapseFirewallRule', or add an alias to the original parameter name."
49+
"Microsoft.Azure.PowerShell.Cmdlets.Synapse.dll","Microsoft.Azure.Commands.Synapse.NewAzureSynapseFirewallRule","New-AzSynapseFirewallRule","0","1050","The parameter set 'CreateByNameAllowAllIpParameterSet' for cmdlet 'New-AzSynapseFirewallRule' has been removed.","Add parameter set 'CreateByNameAllowAllIpParameterSet' back to cmdlet 'New-AzSynapseFirewallRule'."
50+
"Microsoft.Azure.PowerShell.Cmdlets.Synapse.dll","Microsoft.Azure.Commands.Synapse.NewAzureSynapseFirewallRule","New-AzSynapseFirewallRule","0","1050","The parameter set 'CreateByParentObjectAllowAllIpParameterSet' for cmdlet 'New-AzSynapseFirewallRule' has been removed.","Add parameter set 'CreateByParentObjectAllowAllIpParameterSet' back to cmdlet 'New-AzSynapseFirewallRule'."

0 commit comments

Comments
 (0)