|
6 | 6 | "_generator": { |
7 | 7 | "name": "bicep", |
8 | 8 | "version": "0.41.2.15936", |
9 | | - "templateHash": "17721141165286158425" |
| 9 | + "templateHash": "11738775177613917473" |
10 | 10 | }, |
11 | 11 | "name": "Intelligent Content Generation Accelerator", |
12 | 12 | "description": "Solution Accelerator for multimodal marketing content generation using Microsoft Agent Framework.\n" |
|
169 | 169 | "description": "Optional. Resource ID of an existing Foundry project." |
170 | 170 | } |
171 | 171 | }, |
| 172 | + "deployBastionAndJumpbox": { |
| 173 | + "type": "bool", |
| 174 | + "defaultValue": false, |
| 175 | + "metadata": { |
| 176 | + "description": "Optional. Deploy Azure Bastion and Jumpbox resources for private network administration." |
| 177 | + } |
| 178 | + }, |
172 | 179 | "vmSize": { |
173 | 180 | "type": "string", |
174 | 181 | "defaultValue": "", |
|
351 | 358 | "uksouth", |
352 | 359 | "westus3" |
353 | 360 | ], |
354 | | - "deployJumpbox": "[and(parameters('enablePrivateNetworking'), not(empty(parameters('vmAdminPassword'))))]", |
| 361 | + "deployAdminAccessResources": "[and(and(parameters('enablePrivateNetworking'), parameters('deployBastionAndJumpbox')), not(empty(parameters('vmAdminPassword'))))]", |
355 | 362 | "jumpboxVmName": "[take(format('vm-jumpbox-{0}', variables('solutionSuffix')), 15)]", |
356 | 363 | "privateDnsZones": [ |
357 | 364 | "privatelink.cognitiveservices.azure.com", |
|
4851 | 4858 | "location": { |
4852 | 4859 | "value": "[parameters('location')]" |
4853 | 4860 | }, |
| 4861 | + "deployBastionAndJumpbox": { |
| 4862 | + "value": "[and(and(parameters('enablePrivateNetworking'), parameters('deployBastionAndJumpbox')), not(empty(parameters('vmAdminPassword'))))]" |
| 4863 | + }, |
4854 | 4864 | "tags": { |
4855 | 4865 | "value": "[parameters('tags')]" |
4856 | 4866 | }, |
|
4869 | 4879 | "_generator": { |
4870 | 4880 | "name": "bicep", |
4871 | 4881 | "version": "0.41.2.15936", |
4872 | | - "templateHash": "1152564857842534701" |
| 4882 | + "templateHash": "11359193981707837191" |
4873 | 4883 | } |
4874 | 4884 | }, |
4875 | 4885 | "parameters": { |
|
4895 | 4905 | "description": "Required. An Array of 1 or more IP Address Prefixes for the Virtual Network." |
4896 | 4906 | } |
4897 | 4907 | }, |
| 4908 | + "deployBastionAndJumpbox": { |
| 4909 | + "type": "bool", |
| 4910 | + "defaultValue": false, |
| 4911 | + "metadata": { |
| 4912 | + "description": "Optional. Deploy Azure Bastion and Jumpbox subnets for VM-based administration." |
| 4913 | + } |
| 4914 | + }, |
4898 | 4915 | "tags": { |
4899 | 4916 | "type": "object", |
4900 | 4917 | "defaultValue": {}, |
|
5026 | 5043 | } |
5027 | 5044 | } |
5028 | 5045 | ], |
5029 | | - "bastionSubnets": [ |
5030 | | - { |
5031 | | - "name": "AzureBastionSubnet", |
5032 | | - "addressPrefixes": [ |
5033 | | - "10.0.10.0/26" |
5034 | | - ], |
5035 | | - "networkSecurityGroup": { |
5036 | | - "name": "nsg-bastion", |
5037 | | - "securityRules": [ |
5038 | | - { |
5039 | | - "name": "AllowGatewayManager", |
5040 | | - "properties": { |
5041 | | - "access": "Allow", |
5042 | | - "direction": "Inbound", |
5043 | | - "priority": 2702, |
5044 | | - "protocol": "*", |
5045 | | - "sourcePortRange": "*", |
5046 | | - "destinationPortRange": "443", |
5047 | | - "sourceAddressPrefix": "GatewayManager", |
5048 | | - "destinationAddressPrefix": "*" |
5049 | | - } |
5050 | | - }, |
5051 | | - { |
5052 | | - "name": "AllowHttpsInBound", |
5053 | | - "properties": { |
5054 | | - "access": "Allow", |
5055 | | - "direction": "Inbound", |
5056 | | - "priority": 2703, |
5057 | | - "protocol": "*", |
5058 | | - "sourcePortRange": "*", |
5059 | | - "destinationPortRange": "443", |
5060 | | - "sourceAddressPrefix": "Internet", |
5061 | | - "destinationAddressPrefix": "*" |
5062 | | - } |
5063 | | - }, |
5064 | | - { |
5065 | | - "name": "AllowSshRdpOutbound", |
5066 | | - "properties": { |
5067 | | - "access": "Allow", |
5068 | | - "direction": "Outbound", |
5069 | | - "priority": 100, |
5070 | | - "protocol": "*", |
5071 | | - "sourcePortRange": "*", |
5072 | | - "destinationPortRanges": [ |
5073 | | - "22", |
5074 | | - "3389" |
5075 | | - ], |
5076 | | - "sourceAddressPrefix": "*", |
5077 | | - "destinationAddressPrefix": "VirtualNetwork" |
5078 | | - } |
5079 | | - }, |
5080 | | - { |
5081 | | - "name": "AllowAzureCloudOutbound", |
5082 | | - "properties": { |
5083 | | - "access": "Allow", |
5084 | | - "direction": "Outbound", |
5085 | | - "priority": 110, |
5086 | | - "protocol": "Tcp", |
5087 | | - "sourcePortRange": "*", |
5088 | | - "destinationPortRange": "443", |
5089 | | - "sourceAddressPrefix": "*", |
5090 | | - "destinationAddressPrefix": "AzureCloud" |
5091 | | - } |
5092 | | - } |
5093 | | - ] |
5094 | | - } |
5095 | | - }, |
5096 | | - { |
5097 | | - "name": "jumpbox", |
5098 | | - "addressPrefixes": [ |
5099 | | - "10.0.12.0/23" |
5100 | | - ], |
5101 | | - "networkSecurityGroup": { |
5102 | | - "name": "nsg-jumpbox", |
5103 | | - "securityRules": [ |
5104 | | - { |
5105 | | - "name": "AllowRdpFromBastion", |
5106 | | - "properties": { |
5107 | | - "access": "Allow", |
5108 | | - "direction": "Inbound", |
5109 | | - "priority": 100, |
5110 | | - "protocol": "Tcp", |
5111 | | - "sourcePortRange": "*", |
5112 | | - "destinationPortRange": "3389", |
5113 | | - "sourceAddressPrefixes": [ |
5114 | | - "10.0.10.0/26" |
5115 | | - ], |
5116 | | - "destinationAddressPrefixes": [ |
5117 | | - "10.0.12.0/23" |
5118 | | - ] |
5119 | | - } |
5120 | | - } |
5121 | | - ] |
5122 | | - } |
5123 | | - } |
5124 | | - ], |
| 5046 | + "bastionSubnets": "[if(parameters('deployBastionAndJumpbox'), createArray(createObject('name', 'AzureBastionSubnet', 'addressPrefixes', createArray('10.0.10.0/26'), 'networkSecurityGroup', createObject('name', 'nsg-bastion', 'securityRules', createArray(createObject('name', 'AllowGatewayManager', 'properties', createObject('access', 'Allow', 'direction', 'Inbound', 'priority', 2702, 'protocol', '*', 'sourcePortRange', '*', 'destinationPortRange', '443', 'sourceAddressPrefix', 'GatewayManager', 'destinationAddressPrefix', '*')), createObject('name', 'AllowHttpsInBound', 'properties', createObject('access', 'Allow', 'direction', 'Inbound', 'priority', 2703, 'protocol', '*', 'sourcePortRange', '*', 'destinationPortRange', '443', 'sourceAddressPrefix', 'Internet', 'destinationAddressPrefix', '*')), createObject('name', 'AllowSshRdpOutbound', 'properties', createObject('access', 'Allow', 'direction', 'Outbound', 'priority', 100, 'protocol', '*', 'sourcePortRange', '*', 'destinationPortRanges', createArray('22', '3389'), 'sourceAddressPrefix', '*', 'destinationAddressPrefix', 'VirtualNetwork')), createObject('name', 'AllowAzureCloudOutbound', 'properties', createObject('access', 'Allow', 'direction', 'Outbound', 'priority', 110, 'protocol', 'Tcp', 'sourcePortRange', '*', 'destinationPortRange', '443', 'sourceAddressPrefix', '*', 'destinationAddressPrefix', 'AzureCloud'))))), createObject('name', 'jumpbox', 'addressPrefixes', createArray('10.0.12.0/23'), 'networkSecurityGroup', createObject('name', 'nsg-jumpbox', 'securityRules', createArray(createObject('name', 'AllowRdpFromBastion', 'properties', createObject('access', 'Allow', 'direction', 'Inbound', 'priority', 100, 'protocol', 'Tcp', 'sourcePortRange', '*', 'destinationPortRange', '3389', 'sourceAddressPrefixes', createArray('10.0.10.0/26'), 'destinationAddressPrefixes', createArray('10.0.12.0/23'))))))), createArray())]", |
5125 | 5047 | "vnetSubnets": "[concat(variables('coreSubnets'), variables('bastionSubnets'))]" |
5126 | 5048 | }, |
5127 | 5049 | "resources": [ |
|
7504 | 7426 | ] |
7505 | 7427 | }, |
7506 | 7428 | "bastionHost": { |
7507 | | - "condition": "[parameters('enablePrivateNetworking')]", |
| 7429 | + "condition": "[variables('deployAdminAccessResources')]", |
7508 | 7430 | "type": "Microsoft.Resources/deployments", |
7509 | 7431 | "apiVersion": "2025-04-01", |
7510 | 7432 | "name": "[take(format('avm.res.network.bastion-host.{0}', variables('bastionHostName')), 64)]", |
|
9245 | 9167 | ] |
9246 | 9168 | }, |
9247 | 9169 | "jumpboxVM": { |
9248 | | - "condition": "[variables('deployJumpbox')]", |
| 9170 | + "condition": "[variables('deployAdminAccessResources')]", |
9249 | 9171 | "type": "Microsoft.Resources/deployments", |
9250 | 9172 | "apiVersion": "2025-04-01", |
9251 | 9173 | "name": "[take(format('avm.res.compute.virtual-machine.{0}', variables('jumpboxVmName')), 64)]", |
|
24951 | 24873 | }, |
24952 | 24874 | "dependsOn": [ |
24953 | 24875 | "aiFoundryAiServices", |
24954 | | - "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').openAI)]", |
24955 | 24876 | "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').cognitiveServices)]", |
| 24877 | + "[format('avmPrivateDnsZones[{0}]', variables('dnsZoneIndex').openAI)]", |
24956 | 24878 | "virtualNetwork" |
24957 | 24879 | ] |
24958 | 24880 | }, |
|
0 commit comments