项目作者: guitarrapc

项目描述 :
Azure NSG Security Group scan and set new security group entry
高级语言: PowerShell
项目地址: git://github.com/guitarrapc/AzNsgSourceIp.git
创建时间: 2019-02-28T08:42:54Z
项目社区:https://github.com/guitarrapc/AzNsgSourceIp

开源协议:MIT License

下载


Prerequisites

  • install pwsh.
  • open pwsh
  • install az module
  1. Install-Module Az -Scope CurrentUser -AllowClobber

signin

  1. Connect-AzAccount

Sample

  1. Import-Module Az
  2. Import-Module .\AzNsgSourceIp.psm1
  3. $checkip = "8.8.8.8" # YOUR IP
  4. [string[]]$newip = @("4.4.4.4") # YOUR NEW IP
  5. $adjustPriority = -1 # Relative priority from current
  6. # get current and prepare new
  7. $details = Get-AzureNSGSecurityGroupDetail -CheckIp $checkip -IpMappingName NEWRULE
  8. # sampling
  9. $detail = $details | select -First 1
  10. # add new rule
  11. $newRule = New-AzureNSGSecurityGroupRule -NewName $detail.NewRuleName -NewSourceAddressPrefix $newip -Detail $detail -AdjustPriority -1
  12. $param = @{
  13. Name = $newRule.Name
  14. NetworkSecurityGroup = $newRule.NetworkSecurityGroup
  15. Protocol = $newRule.Protocol
  16. SourcePortRange = $newRule.SourcePortRange
  17. DestinationPortRange = $newrule.DestinationPortRange
  18. SourceAddressPrefix = $newrule.SourceAddressPrefix
  19. DestinationAddressPrefix = $newrule.DestinationAddressPrefix
  20. SourceApplicationSecurityGroup = $newRule.SourceApplicationSecurityGroup
  21. DestinationApplicationSecurityGroup = $newRule.DestinationApplicationSecurityGroups
  22. Access = $newRule.Access
  23. Priority = $newrule.Priority
  24. Direction = $newRule.Direction
  25. DefaultProfile = $newRule.DefaultProfile
  26. }
  27. Add-AzNetworkSecurityRuleConfig @param
  28. # commit change
  29. Set-AzNetworkSecurityGroup -NetworkSecurityGroup $newrule.NetworkSecurityGroup

run

  1. Import-Module Az
  2. Import-Module .\AzNsgSourceIp.psm1
  3. $checkip = "8.8.8.8"
  4. [string[]]$newip = @("4.4.4.4")
  5. $adjustPriority = -1
  6. $details = Get-AzureNSGSecurityGroupDetail -CheckIp $checkip -IpMappingName NEWRULE
  7. foreach ($detail in $details) {
  8. $newRule = New-AzureNSGSecurityGroupRule -NewName $detail.NewRuleName -NewSourceAddressPrefix $newip -Detail $detail -AdjustPriority -1
  9. $param = @{
  10. Name = $newRule.Name
  11. NetworkSecurityGroup = $newRule.NetworkSecurityGroup
  12. Protocol = $newRule.Protocol
  13. SourcePortRange = $newRule.SourcePortRange
  14. DestinationPortRange = $newrule.DestinationPortRange
  15. SourceAddressPrefix = $newrule.SourceAddressPrefix
  16. DestinationAddressPrefix = $newrule.DestinationAddressPrefix
  17. SourceApplicationSecurityGroup = $newRule.SourceApplicationSecurityGroup
  18. DestinationApplicationSecurityGroup = $newRule.DestinationApplicationSecurityGroups
  19. Access = $newRule.Access
  20. Priority = $newrule.Priority
  21. Direction = $newRule.Direction
  22. DefaultProfile = $newRule.DefaultProfile
  23. }
  24. # check
  25. #New-AzNetworkSecurityRuleConfig @param
  26. # Add
  27. Add-AzNetworkSecurityRuleConfig @param
  28. # Commit
  29. Set-AzNetworkSecurityGroup -NetworkSecurityGroup $newrule.NetworkSecurityGroup
  30. }

Ref

https://docs.microsoft.com/en-us/powershell/azure/install-az-ps?view=azps-1.2.0