2015-09-10 3 views
1

У меня возникают некоторые трудности при создании VNET/Subnet. Я также использую ASE, и для этого я могу использовать только классический VNET.Связать группу сетевой безопасности (NSG) с подсетью

Azure предлагает два типа VNET. В зависимости от того, как вы его создаете (через Azure Portal, xplat-cli, старый портал, powershell), этот VNET может быть «классическим» (обозначается значком «< ...>» в синем) или «диспетчер ресурсов» (обозначается значок «< ...» «зеленый».

Как я могу видеть, не представляется возможным назначить NSG для классического VNET. Означает ли это, что я не могу иметь NSG над моей ASE (потому что ASE может быть создан только наверх Классический VNETs)? Это не кажется правильным ..

ответ

1

Предполагая, что вы используете Powershell, Set-AzureNetworkSecurityGroupToSubnet командлет в режиме управления услугами будет ассоциировать 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 
+0

Эта команда работает только в том случае, если VNET является «диспетчером ресурсов». В моем случае мне нужно связать NSG с подсети, которую VNET был создан как «классический». – Cesar

+0

См. Обновление, например, в управлении сервисами, то есть в «классических» VNets. Предоставьте команды, которые вы выполняете, если вы не можете связать NSG с подсетью в VNet. – MrBink

+0

Используя данные командлеты powershell, он работает! Кажется, это единственный возможный способ его настройки (с использованием powershell). Параметры NSG доступны только через Portal, когда VNET создается как «Классический». Интересно, все еще находится в разработке Microsoft .. Мне нужно использовать несколько способов настройки Azure, чтобы заставить мою среду работать. Некоторые функции специфичны для powershell, xplat-cli, старого лазурного портала или предварительного просмотра лазурного портала. Это плохо:/ Thx, MrBink. – Cesar

1

This Microsoft article объясняет, где NSGs может применяться в обоих классических и ARM методов развертывания, а также не указать весь VNET; ближайший вариант, который у вас есть, - это подсеть, которая должна обеспечивать такую ​​же функциональность; даже если вам нужно применить одну и ту же NSG к нескольким подсетям, если у вас их несколько.

Если вы хотите заблокировать трафик между виртуальными машинами в той же подсети, вам необходимо применить NSG к VM (классическому) или NIC (ARM).

Существует отличный шаблон ARM here, в котором показано, как настроить NSG и применить их к подсетям. Если вы хотите сделать то же самое с сетевым адаптером, см (предполагается 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')]" 
      } 
     } 
     } 
    ] 
    } 
}, 
0

Для 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 - это , используемый для изменения представления внутренней границы подсети в памяти, чтобы он указывал на вновь созданную сеть безопасности . Затем командлет Set-AzureRmVirtualNetwork вызывается для записи измененного состояния обратно в службу .

Смежные вопросы