使用网络安全组 (NSG) 中的安全规则时,可以筛选流入和流出虚拟网络子网和网络接口的网络流量的类型。 若要详细了解 NSG,请参阅网络安全组概述。 接下来请完成筛选网络流量教程,以获得有关 NSG 的一些经验。
如果你没有具有有效订阅的 Azure 帐户,请创建试用版帐户。 在开始学习本文的余下内容之前,请完成以下任务之一:
门户用户:使用 Azure 帐户登录到 Azure 门户。
PowerShell 用户:在计算机本地运行 PowerShell。
如果在本地运行 PowerShell,请使用 Azure PowerShell 模块 1.0.0 或更高版本。 运行
Get-Module -ListAvailable Az.Network
查找已安装的版本。 如果需要进行安装或升级,请参阅安装 Azure PowerShell 模块。 运行Connect-AzAccount -Environment AzureChinaCloud
以登录到 Azure。Azure CLI 用户:在计算机本地运行 Azure CLI。
如果在本地运行 Azure CLI,请使用 Azure CLI 2.0.28 或更高版本。 运行
az --version
查找已安装的版本。 如需进行安装或升级,请参阅安装 Azure CLI。 运行az login
以登录到 Azure。
可对 NSG 执行创建、全部查看、查看详细信息、更改和删除操作。 也可从网络接口或子网关联或取消关联 NSG。
可以为每个 Azure 区域和订阅创建的 NSG 的数目有限。 有关详细信息,请参阅 Azure 订阅和服务限制、配额和约束。
使用 New-AzNetworkSecurityGroup 在“中国北部 3”区域创建名为 myNSG
的 NSG。 名为 myNSG
的 NSG 在现有的 myResourceGroup
资源组中创建。
New-AzNetworkSecurityGroup -Name myNSG -ResourceGroupName myResourceGroup -Location chinanorth3
使用 Get-AzNetworkSecurityGroup 列出订阅中的所有 NSG。
Get-AzNetworkSecurityGroup | format-table Name, Location, ResourceGroupName, ProvisioningState, ResourceGuid
使用 Get-AzNetworkSecurityGroup 查看 NSG 的详细信息。
Get-AzNetworkSecurityGroup -Name myNSG -ResourceGroupName myResourceGroup
若要详细了解列出的常见 Azure 设置,请参阅以下文章:
对 NSG 最常见的更改包括:
若要详细了解 NSG 的关联和取消关联,请参阅关联或取消关联网络安全组。
使用 Set-AzVirtualNetworkSubnetConfig 将 NSG 关联到子网或从子网取消关联 NSG。
## Place the virtual network configuration into a variable. ##
$virtualNetwork = Get-AzVirtualNetwork -Name myVNet -ResourceGroupName myResourceGroup
## Place the network security group configuration into a variable. ##
$networkSecurityGroup = Get-AzNetworkSecurityGroup -Name myNSG -ResourceGroupName myResourceGroup
## Update the subnet configuration. ##
Set-AzVirtualNetworkSubnetConfig -Name mySubnet -VirtualNetwork $virtualNetwork -AddressPrefix 10.0.0.0/24 -NetworkSecurityGroup $networkSecurityGroup
## Update the virtual network. ##
Set-AzVirtualNetwork -VirtualNetwork $virtualNetwork
如果 NSG 与任何子网或网络接口相关联,则无法删除它。 请先从所有子网和网络接口取消关联 NSG,然后再尝试将其删除。
使用 Remove-AzNetworkSecurityGroup 删除 NSG。
Remove-AzNetworkSecurityGroup -Name myNSG -ResourceGroupName myResourceGroup
NSG 包含零个或零个以上的安全规则。 可对安全规则执行创建、查看所有、查看详细信息、更改以及删除等操作。
可以为每个 Azure 位置和订阅创建的单 NSG 规则数有限。 有关详细信息,请参阅 Azure 订阅和服务限制、配额和约束。
使用 Add-AzNetworkSecurityRuleConfig 创建 NSG 规则。
## Place the network security group configuration into a variable. ##
$networkSecurityGroup = Get-AzNetworkSecurityGroup -Name myNSG -ResourceGroupName myResourceGroup
## Create the security rule. ##
Add-AzNetworkSecurityRuleConfig -Name RDP-rule -NetworkSecurityGroup $networkSecurityGroup `
-Description "Allow RDP" -Access Allow -Protocol Tcp -Direction Inbound -Priority 300 `
-SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 3389
## Updates the network security group. ##
Set-AzNetworkSecurityGroup -NetworkSecurityGroup $networkSecurityGroup
NSG 包含零个或零个以上的规则。 若要详细了解查看规则时出现的信息列表,请参阅安全规则。
使用 Get-AzNetworkSecurityRuleConfig 查看 NSG 的安全规则。
## Place the network security group configuration into a variable. ##
$networkSecurityGroup = Get-AzNetworkSecurityGroup -Name myNSG -ResourceGroupName myResourceGroup
## List security rules of the network security group in a table. ##
Get-AzNetworkSecurityRuleConfig -NetworkSecurityGroup $networkSecurityGroup | format-table Name, Protocol, Access, Priority, Direction, SourcePortRange, DestinationPortRange, SourceAddressPrefix, DestinationAddressPrefix
使用 Get-AzNetworkSecurityRuleConfig 查看安全规则的详细信息。
## Place the network security group configuration into a variable. ##
$networkSecurityGroup = Get-AzNetworkSecurityGroup -Name myNSG -ResourceGroupName myResourceGroup
## View details of the security rule. ##
Get-AzNetworkSecurityRuleConfig -Name RDP-rule -NetworkSecurityGroup $networkSecurityGroup
备注
此过程仅适用于自定义安全规则。 如果选择了默认安全规则,则此过程不适用。
使用 Set-AzNetworkSecurityRuleConfig 更新 NSG 规则。
## Place the network security group configuration into a variable. ##
$networkSecurityGroup = Get-AzNetworkSecurityGroup -Name myNSG -ResourceGroupName myResourceGroup
## Make changes to the security rule. ##
Set-AzNetworkSecurityRuleConfig -Name RDP-rule -NetworkSecurityGroup $networkSecurityGroup `
-Description "Allow RDP" -Access Allow -Protocol Tcp -Direction Inbound -Priority 200 `
-SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 3389
## Updates the network security group. ##
Set-AzNetworkSecurityGroup -NetworkSecurityGroup $networkSecurityGroup
备注
此过程仅适用于自定义安全规则。 不允许更改默认安全规则。
使用 Remove-AzNetworkSecurityRuleConfig 删除 NSG 中的安全规则。
## Place the network security group configuration into a variable. ##
$networkSecurityGroup = Get-AzNetworkSecurityGroup -Name myNSG -ResourceGroupName myResourceGroup
## Remove the security rule. ##
Remove-AzNetworkSecurityRuleConfig -Name RDP-rule -NetworkSecurityGroup $networkSecurityGroup
## Updates the network security group. ##
Set-AzNetworkSecurityGroup -NetworkSecurityGroup $networkSecurityGroup
备注
此过程仅适用于自定义安全规则。 不允许更改默认安全规则。
应用程序安全组包含零个或多个网络接口。 若要了解详细信息,请参阅应用程序安全组。 应用程序安全组中的所有网络接口必须存在于同一虚拟网络中。 要了解如何将网络接口添加到应用程序安全组,请参阅将网络接口添加到应用程序安全组。
使用 New-AzApplicationSecurityGroup 创建应用程序安全组。
New-AzApplicationSecurityGroup -ResourceGroupName myResourceGroup -Name myASG -Location chinanorth3
使用 Get-AzApplicationSecurityGroup 列出 Azure 订阅中的所有应用程序安全组。
Get-AzApplicationSecurityGroup | format-table Name, ResourceGroupName, Location
使用 Get-AzApplicationSecurityGroup 查看应用程序安全组的详细信息。
Get-AzApplicationSecurityGroup -Name myASG
无法使用 PowerShell 更改应用程序安全组。
无法删除包含任何网络接口的应用程序安全组。 若要从应用程序安全组中删除所有网络接口,请更改网络接口设置,或删除网络接口。 有关详细信息,请参阅添加到应用程序安全组或从中移除或删除网络接口。
使用 Remove-AzApplicationSecurityGroup 删除应用程序安全组。
Remove-AzApplicationSecurityGroup -ResourceGroupName myResourceGroup -Name myASG
若要管理 NSG、安全规则和应用程序安全组,必须将帐户分配到网络参与者角色。 还可以使用分配有以下表中列出的相应权限的自定义角色。
备注
如果已在资源组级别分配了“网络参与者”角色,则可能不会看到服务标记的完整列表。 若要查看完整列表,可以改为在订阅范围内分配此角色。 如果只能允许资源组的“网络参与者”角色,则还可以为权限 Microsoft.Network/locations/serviceTags/read
和 Microsoft.Network/locations/serviceTagDetails/read
创建自定义角色。 在订阅范围内分配它们,并在资源组范围内分配“网络参与者”角色。
操作 | 名称 |
---|---|
Microsoft.Network/networkSecurityGroups/read |
获取 NSG。 |
Microsoft.Network/networkSecurityGroups/write |
创建或更新 NSG。 |
Microsoft.Network/networkSecurityGroups/delete |
删除 NSG。 |
Microsoft.Network/networkSecurityGroups/join/action |
将 NSG 与子网或网络接口关联。 |
备注
若要对 NSG 执行 write
操作,订阅帐户必须至少具有对资源组的 read
权限以及 Microsoft.Network/networkSecurityGroups/write
权限。
操作 | 名称 |
---|---|
Microsoft.Network/networkSecurityGroups/securityRules/read |
获取规则。 |
Microsoft.Network/networkSecurityGroups/securityRules/write |
创建或更新规则。 |
Microsoft.Network/networkSecurityGroups/securityRules/delete |
删除规则。 |
操作 | 名称 |
---|---|
Microsoft.Network/applicationSecurityGroups/joinIpConfiguration/action |
将 IP 配置加入到应用程序安全组中。 |
Microsoft.Network/applicationSecurityGroups/joinNetworkSecurityRule/action |
将安全规则加入到应用程序安全组中。 |
Microsoft.Network/applicationSecurityGroups/read |
获取应用程序安全组。 |
Microsoft.Network/applicationSecurityGroups/write |
创建或更新应用程序安全组。 |
Microsoft.Network/applicationSecurityGroups/delete |
删除应用程序安全组。 |
- 在应用程序安全组中添加或删除网络接口。
- 为虚拟网络创建和分配 Azure Policy 定义。