你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 PowerShell 通过安全组视图分析虚拟机安全性
注意
安全组视图 API 不再维护,很快就会被弃用。 请使用提供相同功能的有效安全规则功能。
安全组视图返回已应用于虚拟机的已配置的有效网络安全规则。 此功能可用于审核和诊断已在 VM 上配置以确保正确允许或拒绝流量的网络安全组和规则。 在本文中,我们将说明如何使用 PowerShell 检索虚拟机的已配置的有效安全规则
开始之前
在此方案中,运行 Get-AzNetworkWatcherSecurityGroupView
cmdlet 检索安全规则信息。
此方案假定已按照创建网络观察程序中的步骤创建网络观察程序。
方案
本文中介绍的方案检索给定虚拟机的已配置有效安全规则。
检索网络观察程序
第一步是检索网络观察程序实例。 将此变量传递给 Get-AzNetworkWatcherSecurityGroupView
cmdlet。
$nw = Get-AzResource | Where {$_.ResourceType -eq "Microsoft.Network/networkWatchers" -and $_.Location -eq "WestCentralUS" }
$networkWatcher = Get-AzNetworkWatcher -Name $nw.Name -ResourceGroupName $nw.ResourceGroupName
获取 VM
需要针对虚拟机运行 Get-AzNetworkWatcherSecurityGroupView
cmdlet。 以下示例获取 VM 对象。
$VM = Get-AzVM -ResourceGroupName testrg -Name testvm1
检索安全组视图
下一步是检索安全组视图结果。
$secgroup = Get-AzNetworkWatcherSecurityGroupView -NetworkWatcher $networkWatcher -TargetVirtualMachineId $VM.Id
查看结果
以下示例是返回的结果的缩短响应。 该结果显示虚拟机上所有已应用的有效安全规则,分为以下几组:NetworkInterfaceSecurityRules、DefaultSecurityRules 和 EffectiveSecurityRules。
NetworkInterfaces : [
{
"NetworkInterfaceSecurityRules": [
{
"Name": "default-allow-rdp",
"Etag": "W/\"d4c411d4-0d62-49dc-8092-3d4b57825740\"",
"Id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testrg2/providers/Microsoft.Network/networkSecurityGroups/testvm2-nsg/securityRules/default-allow-rdp",
"Protocol": "TCP",
"SourcePortRange": "*",
"DestinationPortRange": "3389",
"SourceAddressPrefix": "*",
"DestinationAddressPrefix": "*",
"Access": "Allow",
"Priority": 1000,
"Direction": "Inbound",
"ProvisioningState": "Succeeded"
}
...
],
"DefaultSecurityRules": [
{
"Name": "AllowVnetInBound",
"Id": "/subscriptions00000000-0000-0000-0000-000000000000/resourceGroups/testrg2/providers/Microsoft.Network/networkSecurityGroups/testvm2-nsg/defaultSecurityRules/",
"Description": "Allow inbound traffic from all VMs in VNET",
"Protocol": "*",
"SourcePortRange": "*",
"DestinationPortRange": "*",
"SourceAddressPrefix": "VirtualNetwork",
"DestinationAddressPrefix": "VirtualNetwork",
"Access": "Allow",
"Priority": 65000,
"Direction": "Inbound",
"ProvisioningState": "Succeeded"
}
...
],
"EffectiveSecurityRules": [
{
"Name": "DefaultOutboundDenyAll",
"Protocol": "All",
"SourcePortRange": "0-65535",
"DestinationPortRange": "0-65535",
"SourceAddressPrefix": "*",
"DestinationAddressPrefix": "*",
"ExpandedSourceAddressPrefix": [],
"ExpandedDestinationAddressPrefix": [],
"Access": "Deny",
"Priority": 65500,
"Direction": "Outbound"
},
...
]
}
]
后续步骤
请访问使用网络观察程序审核网络安全组 (NSG),了解如何自动执行网络安全组的验证。