簡體   English   中英

將網絡安全組(NSG)關聯到子網

[英]Associate a Network Security Group (NSG) to subnet

創建VNET /子網時遇到一些困難。 我還使用ASE,因此只能使用Classic VNET。

Azure提供兩種類型的VNET。 根據您創建它的方式(通過Azure門戶,xplat-cli,舊門戶,powershell),此VNET可以是“經典”(由藍色的“ <...>”圖標表示)或“資源管理器(由圖標“ <...>”(綠色)。

據我所知,似乎無法將NSG分配給Classic VNET。 這是否意味着我無法在ASE上擁有NSG(因為ASE只能在Classic VNET之上創建)? 這似乎不正確。

假設您使用Powershell,則在服務管理模式下的Set-AzureNetworkSecurityGroupToSubnet cmdlet會將NSG關聯到子網。

更新:

PS> Switch-AzureMode AzureServiceManagement
PS> (Get-AzureVNetSite -VNetName "Group vnetnsg vnetnsg").Subnets

Name     AddressPrefix ExtensionData
----     ------------- -------------
default  10.0.0.0/24
subnet-1 10.0.1.0/24

PS> New-AzureNetworkSecurityGroup -Name "NsgOnSubnet" -Location "West Europe"

Name        Location    Label
----        --------    -----
NsgOnSubnet West Europe

PS> Set-AzureNetworkSecurityGroupToSubnet -Name NsgOnSubnet -VirtualNetworkName "Group vnetnsg vnetnsg" -SubnetName "subnet-1"
PS> Get-AzureNetworkSecurityGroupAssociation -VirtualNetworkName "Group vnetnsg vnetnsg" -SubnetName "subnet-1"

Name        Location    Label
----        --------    -----
NsgOnSubnet West Europe

這篇Microsoft文章解釋了NSG可以在經典部署和ARM部署方法中應用的地方,並且都沒有指定整個VNet。 您擁有的最接近的選項是子網,它應該提供相同的功能; 即使必須將同一NSG應用於多個子網(即使您有多個子網)也是如此。

如果要阻止同一子網中 VM之間的通信,則需要將NSG應用於VM(經典)或NIC(ARM)。

有一個偉大的ARM模板, 這里展示了如何建立NSGs並將其應用到子網。 如果要對NIC進行同樣的操作,請參見以下摘錄(假設已創建了NSG):

{
  "apiVersion": "2015-06-15",
  "type": "Microsoft.Network/networkInterfaces",
  "name": "nicName",
  "location": "[resourceGroup().location]",
  "properties": {
    "ipConfigurations": [
      {
        "name": "yourNICName",
        "properties": {
          "networkSecurityGroup": {
            "id": "[resourceId('Microsoft.Network/networkSecurityGroups', parameters('yourNSGName'))]"
          },
          "privateIPAllocationMethod": "Dynamic",
          "subnet": {
            "id": "[variables('yourSubnetRef')]"
          }
        }
      }
    ]
  }
},

對於使用Resource Manager部署模型創建的VNET和網絡安全組

New-AzureRmResourceGroup -Name TestResourceGroup -Location centralus
$frontendSubnet = New-AzureRmVirtualNetworkSubnetConfig -Name frontendSubnet -AddressPrefix "10.0.1.0/24"

$virtualNetwork = New-AzureRmVirtualNetwork -Name MyVirtualNetwork -ResourceGroupName TestResourceGroup -Location
centralus -AddressPrefix "10.0.0.0/16" -Subnet $frontendSubnet

$rdpRule = New-AzureRmNetworkSecurityRuleConfig -Name rdp-rule -Description "Allow RDP" -Access Allow -Protocol
Tcp -Direction Inbound -Priority 100 -SourceAddressPrefix Internet -SourcePortRange * -DestinationAddressPrefix *
-DestinationPortRange 3389

$networkSecurityGroup = New-AzureRmNetworkSecurityGroup -ResourceGroupName TestResourceGroup -Location centralus
-Name "NSG-FrontEnd" -SecurityRules $rdpRule

Set-AzureRmVirtualNetworkSubnetConfig -Name frontendSubnet -VirtualNetwork $virtualNetwork -AddressPrefix
"10.0.1.0/24" -NetworkSecurityGroup $networkSecurityGroup
$virtualNetwork | Set-AzureRmVirtualNetwork

本示例創建一個資源組,其中一個虛擬網絡僅包含一個子網。 然后,它使用RDP通信的允許規則創建一個網絡安全組。 Set-AzureRmVirtualNetworkSubnetConfig cmdlet用於修改前端子網的內存中表示形式,以便它指向新創建的網絡安全組。 然后,調用Set-AzureRmVirtualNetwork cmdlet將修改后的狀態寫回到服務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM