Исходный код: Шаблон ARM для создания виртуальной сети и групп безопасности сети.

Опубликовано: 3 Марта, 2023
Исходный код: Шаблон ARM для создания виртуальной сети и групп безопасности сети.

В моей статье, озаглавленной «Шаблоны ARM: использование функции resourceId и элемента dependOn», мы рассмотрели процесс, чтобы понять функцию и элемент при создании шаблона ARM.

Код, который мы использовали, создавал виртуальную сеть с двумя подсетями и группой безопасности сети. Этот код прост, но я вижу некоторую пользу при развертывании вашего брандмауэра и определении вашей сети.

Мы использовали единственный параметр — , который определяет и создает группу безопасности сети и назначает ее подсети . Вы можете добавить некоторую логику или изменить переменные для каждого параметра, чтобы создать более динамичную среду.

Чтобы сэкономить место в этой статье, фактический шаблон ARM не был опубликован полностью, но в этом небольшом посте приведен исходный код. Веселиться!

{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "nsgName ": { "type": "string" } }, "variables": { "VNETPrefix": "10.0.0.0/16", "VNETSubnet1Name": "Серверы", "VNETSubnet1Prefix": "10.0.0.0/24", "VNETSubnet2Name": "Карантин", "VNETSubnet2Prefix": "10.0.1.0/24"}, "resources": [ { "name": "VNET", "type": "Microsoft.Network/virtualNetworks", "location": "[resourceGroup().location]", "apiVersion": "2016-03-30", "dependsOn": [ "[resourceId('Microsoft.Network/networkSecurityGroups',parameters('nsgName'))]" ], "tags": { "displayName": "VNET" }, "properties": { "addressSpace": { "addressPrefixes": [ "[variables('VNETPrefix')]" ] }, "subnets": [ { " имя": "[переменные('VNETSubnet1Name')]", "свойства": { "addressPrefix ": "[переменные('VNETSubnet1Prefix')]", "networkSecurityGroup": { "id": "[resourceId('Microsoft.Network/networkSecurityGroups', параметры('nsgName'))]" } } }, { "name ": "[variables('VNETSubnet2Name')]", "properties": { "addressPrefix": "[variables('VNETSubnet2Prefix')]" } } ] } }, { "type": "Microsoft.Network/networkSecurityGroups", "name": "[parameters('nsgName')]", "apiVersion": "2018-02-01", "location": "[resourceGroup().location]", "dependsOn": [], " properties": { "securityRules": [ { "name": "inbound-tcp-80-http", "etag": "W/"0e74bdd1-2fa9-46e6-98f6-d7e82c81cba2"", "properties": { "протокол": "Tcp", "sourcePortRange": "*", "destinationPortRange": "80", "sourceAddressPrefix": "*", "destinationAddre ssPrefix": "VirtualNetwork", "access": "Разрешить", "priority": 100, "direction": "Inbound", "sourcePortRanges": [], "destinationPortRanges": [], "sourceAddressPrefixes": [], "destinationAddressPrefixes": [] } } ], "defaultSecurityRules": [ { "name": "AllowVnetInBound", "etag": "W/"0e74bdd1-2fa9-46e6-98f6-d7e82c81cba2"", "properties": { "description": "Разрешить входящий трафик от всех ВМ в виртуальной сети", "протокол": "*", "sourcePortRange": "*", "destinationPortRange": "*", "sourceAddressPrefix": "VirtualNetwork", "destinationAddressPrefix ": "VirtualNetwork", "доступ": "Разрешить", "приоритет": 65000, "направление": "Входящий", "sourcePortRanges": [], "destinationPortRanges": [], "source AddressPrefixes": [], "destinationAddressPrefixes": [] } }, { "name": "AllowAzureLoadBalancerInBound", "etag": "W/"0e74bdd1-2fa9-46e6-98f6-d7e82c81cba2"", "properties": { "description": "Разрешить входящий трафик от балансировщика нагрузки Azure", "протокол": "*", "sourcePortRange": "*", "destinationPortRange": "*", "sourceAddressPrefix": "AzureLoadBalancer", "destinationAddressPrefix": "*", "доступ": "Разрешить", "приоритет": 65001, "направление": "Входящий", "sourcePortRanges": [], "destinationPortRanges": [], "sourceAddressPrefixes": [], "destinationAddressPrefixes ": [] } }, { "name": "DenyAllInBound", "etag": "W/"0e74bdd1-2fa9-46e6-98f6-d7e82c81cba2"", "properties": { "description": " Запретить весь входящий трафик", "protocol": "*", "sourcePortRange": "*", "destinationPortRange": "*", "sourceAddressPrefix": "*", "destinationAddressPrefix": "*", "access": "Запретить", "приоритет": 65500, "направление": "Входящий", "sourcePortRanges": [], "destinationPortRanges": [], "sourceAddressPrefixes": [], "destinationAddressPrefixes": [] } }, { " name": "AllowVnetOutBound", "etag": "W/"0e74bdd1-2fa9-46e6-98f6-d7e82c81cba2"", "properties": { "description": "Разрешить исходящий трафик со всех ВМ на все ВМ в виртуальной сети ", "protocol": "*", "sourcePortRange": "*", "destinationPortRange": "*", "sourceAddressPrefix": "VirtualNetwork", "destinationAddressPrefix": "VirtualNetwork", "access": "Разрешить", "priority": 65000, "direction": "Outbound", "sourcePortRanges": [], "destinationPortRanges": [], "sourceAddressPrefixes": [], "destinationAddressPrefixes": [] } }, { "name": " AllowInternetOutBound", "etag": "W/"0e74bdd1-2fa9-46e6-98f6-d7e82c81cba2"", "properties": { "description": "Разрешить исходящий трафик со всех ВМ в Интернет", "протокол": " *", "sourcePortRange": "*", "destinationPortRange": "*", "sourceAddressPrefix": "*", "destinationAddressPrefix": "Интернет", "доступ": "Разрешить", "приоритет": 65001, " direction": "Исходящее", "sourcePortRanges": [], "destinationPortRanges": [], "sourceAddressPrefixes": [], "destinationAddressPrefixes": [] } }, { "name": "DenyAllOutBound", "etag": "W/"0e74bdd1-2fa9-46e6-98f6-d7e82c81cba2"", "properties": { "description": "Запретить весь исходящий трафик", "протокол": "*", "sourcePortRange": "*", "destinationPortRange": "*", "sourceAddressPrefix": "*", "destinationAddressPrefix": "*", "access": "Запретить", "priority": 65500, "direction": "Исходящий", "sourcePortRanges": [], "destinationPortRanges": [], "sourceAddressPrefixes": [], "destinationAddressPrefixes": [] } } ] } } ], "outputs": { "VNET- ResourceID": { "type": "string", "value":"[resourceid('Microsoft.Network/virtualNetworks','vnet')]" } } }