3624 строки
173 KiB
JSON
3624 строки
173 KiB
JSON
{
|
|
"$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
|
|
"contentVersion": "1.0.0.0",
|
|
"metadata": {
|
|
"_generator": {
|
|
"name": "bicep",
|
|
"version": "0.4.1008.15138",
|
|
"templateHash": "16584189192184544370"
|
|
}
|
|
},
|
|
"parameters": {
|
|
"location": {
|
|
"type": "string",
|
|
"metadata": {
|
|
"description": "Specifies the location for all resources."
|
|
}
|
|
},
|
|
"environment": {
|
|
"type": "string",
|
|
"defaultValue": "dev",
|
|
"metadata": {
|
|
"description": "Specifies the environment of the deployment."
|
|
},
|
|
"allowedValues": [
|
|
"dev",
|
|
"tst",
|
|
"prd"
|
|
]
|
|
},
|
|
"prefix": {
|
|
"type": "string",
|
|
"metadata": {
|
|
"description": "Specifies the prefix for all resources created in this deployment."
|
|
},
|
|
"maxLength": 10,
|
|
"minLength": 2
|
|
},
|
|
"tags": {
|
|
"type": "object",
|
|
"defaultValue": {},
|
|
"metadata": {
|
|
"description": "Specifies the tags that you want to apply to all resources."
|
|
}
|
|
},
|
|
"purviewRootCollectionAdminObjectIds": {
|
|
"type": "array",
|
|
"defaultValue": [],
|
|
"metadata": {
|
|
"description": "Specifies the list of user object IDs that are assigned as collection admin to the root collection in Purview."
|
|
}
|
|
},
|
|
"enableDnsAndFirewallDeployment": {
|
|
"type": "bool",
|
|
"defaultValue": true,
|
|
"metadata": {
|
|
"description": "Specifies whether firewall and private DNS Zones should be deployed."
|
|
}
|
|
},
|
|
"vnetAddressPrefix": {
|
|
"type": "string",
|
|
"defaultValue": "10.0.0.0/16",
|
|
"metadata": {
|
|
"description": "Specifies the address space of the vnet."
|
|
}
|
|
},
|
|
"azureFirewallSubnetAddressPrefix": {
|
|
"type": "string",
|
|
"defaultValue": "10.0.0.0/24",
|
|
"metadata": {
|
|
"description": "Specifies the address space of the subnet that is use for Azure Firewall."
|
|
}
|
|
},
|
|
"servicesSubnetAddressPrefix": {
|
|
"type": "string",
|
|
"defaultValue": "10.0.1.0/24",
|
|
"metadata": {
|
|
"description": "Specifies the address space of the subnet that is used for the services."
|
|
}
|
|
},
|
|
"firewallPrivateIp": {
|
|
"type": "string",
|
|
"defaultValue": "10.0.0.4",
|
|
"metadata": {
|
|
"description": "Specifies the private IP address of the central firewall. Optional if `enableDnsAndFirewallDeployment` is set to `true`."
|
|
}
|
|
},
|
|
"dnsServerAdresses": {
|
|
"type": "array",
|
|
"defaultValue": [
|
|
"10.0.0.4"
|
|
],
|
|
"metadata": {
|
|
"description": "Specifies the private IP addresses of the dns servers. Optional if `enableDnsAndFirewallDeployment` is set to `true`."
|
|
}
|
|
},
|
|
"firewallPolicyId": {
|
|
"type": "string",
|
|
"defaultValue": "",
|
|
"metadata": {
|
|
"description": "Specifies the resource ID of the Azure Firewall Policy. Optional parameter allows you to deploy Firewall rules to an existing Firewall Policy if `enableDnsAndFirewallDeployment` is set to `false`."
|
|
}
|
|
},
|
|
"privateDnsZoneIdKeyVault": {
|
|
"type": "string",
|
|
"defaultValue": "",
|
|
"metadata": {
|
|
"description": "Specifies the resource ID of the private DNS zone for Key Vault. Optional if `enableDnsAndFirewallDeployment` is set to `true`."
|
|
}
|
|
},
|
|
"privateDnsZoneIdPurview": {
|
|
"type": "string",
|
|
"defaultValue": "",
|
|
"metadata": {
|
|
"description": "Specifies the resource ID of the private DNS zone for Purview. Optional if `enableDnsAndFirewallDeployment` is set to `true`."
|
|
}
|
|
},
|
|
"privateDnsZoneIdPurviewPortal": {
|
|
"type": "string",
|
|
"defaultValue": "",
|
|
"metadata": {
|
|
"description": "Specifies the resource ID of the private DNS zone for Purview Portal. Optional if `enableDnsAndFirewallDeployment` is set to `true`."
|
|
}
|
|
},
|
|
"privateDnsZoneIdQueue": {
|
|
"type": "string",
|
|
"defaultValue": "",
|
|
"metadata": {
|
|
"description": "Specifies the resource ID of the private DNS zone for Queue storage. Optional if `enableDnsAndFirewallDeployment` is set to `true`."
|
|
}
|
|
},
|
|
"privateDnsZoneIdBlob": {
|
|
"type": "string",
|
|
"defaultValue": "",
|
|
"metadata": {
|
|
"description": "Specifies the resource ID of the private DNS zone for Blob storage. Optional if `enableDnsAndFirewallDeployment` is set to `true`."
|
|
}
|
|
},
|
|
"privateDnsZoneIdNamespace": {
|
|
"type": "string",
|
|
"defaultValue": "",
|
|
"metadata": {
|
|
"description": "Specifies the resource ID of the private DNS zone for EventHub namespaces. Optional if `enableDnsAndFirewallDeployment` is set to `true`."
|
|
}
|
|
},
|
|
"privateDnsZoneIdContainerRegistry": {
|
|
"type": "string",
|
|
"defaultValue": "",
|
|
"metadata": {
|
|
"description": "Specifies the resource ID of the private DNS zone for Container Registry. Optional if `enableDnsAndFirewallDeployment` is set to `true`."
|
|
}
|
|
},
|
|
"privateDnsZoneIdSynapse": {
|
|
"type": "string",
|
|
"defaultValue": "",
|
|
"metadata": {
|
|
"description": "Specifies the resource ID of the private DNS zone for Synapse. Optional if `enableDnsAndFirewallDeployment` is set to `true`."
|
|
}
|
|
}
|
|
},
|
|
"functions": [],
|
|
"variables": {
|
|
"name": "[toLower(format('{0}-{1}', parameters('prefix'), parameters('environment')))]",
|
|
"tagsDefault": {
|
|
"Owner": "Enterprise Scale Analytics",
|
|
"Project": "Enterprise Scale Analytics",
|
|
"Environment": "[parameters('environment')]",
|
|
"Toolkit": "bicep",
|
|
"Name": "[variables('name')]"
|
|
},
|
|
"tagsJoined": "[union(variables('tagsDefault'), parameters('tags'))]"
|
|
},
|
|
"resources": [
|
|
{
|
|
"type": "Microsoft.Resources/resourceGroups",
|
|
"apiVersion": "2021-01-01",
|
|
"name": "[format('{0}-network', variables('name'))]",
|
|
"location": "[parameters('location')]",
|
|
"tags": "[variables('tagsJoined')]",
|
|
"properties": {}
|
|
},
|
|
{
|
|
"type": "Microsoft.Resources/resourceGroups",
|
|
"apiVersion": "2021-01-01",
|
|
"name": "[format('{0}-global-dns', variables('name'))]",
|
|
"location": "[parameters('location')]",
|
|
"tags": "[variables('tagsJoined')]",
|
|
"properties": {}
|
|
},
|
|
{
|
|
"type": "Microsoft.Resources/resourceGroups",
|
|
"apiVersion": "2021-01-01",
|
|
"name": "[format('{0}-governance', variables('name'))]",
|
|
"location": "[parameters('location')]",
|
|
"tags": "[variables('tagsJoined')]",
|
|
"properties": {}
|
|
},
|
|
{
|
|
"type": "Microsoft.Resources/resourceGroups",
|
|
"apiVersion": "2021-01-01",
|
|
"name": "[format('{0}-container', variables('name'))]",
|
|
"location": "[parameters('location')]",
|
|
"tags": "[variables('tagsJoined')]",
|
|
"properties": {}
|
|
},
|
|
{
|
|
"type": "Microsoft.Resources/resourceGroups",
|
|
"apiVersion": "2021-01-01",
|
|
"name": "[format('{0}-consumption', variables('name'))]",
|
|
"location": "[parameters('location')]",
|
|
"tags": "[variables('tagsJoined')]",
|
|
"properties": {}
|
|
},
|
|
{
|
|
"type": "Microsoft.Resources/resourceGroups",
|
|
"apiVersion": "2021-01-01",
|
|
"name": "[format('{0}-automation', variables('name'))]",
|
|
"location": "[parameters('location')]",
|
|
"tags": "[variables('tagsJoined')]",
|
|
"properties": {}
|
|
},
|
|
{
|
|
"type": "Microsoft.Resources/resourceGroups",
|
|
"apiVersion": "2021-01-01",
|
|
"name": "[format('{0}-mgmt', variables('name'))]",
|
|
"location": "[parameters('location')]",
|
|
"tags": "[variables('tagsJoined')]",
|
|
"properties": {}
|
|
},
|
|
{
|
|
"type": "Microsoft.Resources/deployments",
|
|
"apiVersion": "2020-06-01",
|
|
"name": "networkServices",
|
|
"resourceGroup": "[format('{0}-network', variables('name'))]",
|
|
"properties": {
|
|
"expressionEvaluationOptions": {
|
|
"scope": "inner"
|
|
},
|
|
"mode": "Incremental",
|
|
"parameters": {
|
|
"prefix": {
|
|
"value": "[variables('name')]"
|
|
},
|
|
"location": {
|
|
"value": "[parameters('location')]"
|
|
},
|
|
"tags": {
|
|
"value": "[variables('tagsJoined')]"
|
|
},
|
|
"vnetAddressPrefix": {
|
|
"value": "[parameters('vnetAddressPrefix')]"
|
|
},
|
|
"azureFirewallSubnetAddressPrefix": {
|
|
"value": "[parameters('azureFirewallSubnetAddressPrefix')]"
|
|
},
|
|
"servicesSubnetAddressPrefix": {
|
|
"value": "[parameters('servicesSubnetAddressPrefix')]"
|
|
},
|
|
"dnsServerAdresses": {
|
|
"value": "[parameters('dnsServerAdresses')]"
|
|
},
|
|
"enableDnsAndFirewallDeployment": {
|
|
"value": "[parameters('enableDnsAndFirewallDeployment')]"
|
|
},
|
|
"firewallPrivateIp": {
|
|
"value": "[parameters('firewallPrivateIp')]"
|
|
},
|
|
"firewallPolicyId": {
|
|
"value": "[parameters('firewallPolicyId')]"
|
|
}
|
|
},
|
|
"template": {
|
|
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
|
|
"contentVersion": "1.0.0.0",
|
|
"metadata": {
|
|
"_generator": {
|
|
"name": "bicep",
|
|
"version": "0.4.1008.15138",
|
|
"templateHash": "10662562629090602323"
|
|
}
|
|
},
|
|
"parameters": {
|
|
"location": {
|
|
"type": "string"
|
|
},
|
|
"prefix": {
|
|
"type": "string"
|
|
},
|
|
"tags": {
|
|
"type": "object"
|
|
},
|
|
"firewallPrivateIp": {
|
|
"type": "string",
|
|
"defaultValue": "10.0.0.4"
|
|
},
|
|
"dnsServerAdresses": {
|
|
"type": "array",
|
|
"defaultValue": [
|
|
"10.0.0.4"
|
|
]
|
|
},
|
|
"vnetAddressPrefix": {
|
|
"type": "string",
|
|
"defaultValue": "10.0.0.0/16"
|
|
},
|
|
"azureFirewallSubnetAddressPrefix": {
|
|
"type": "string",
|
|
"defaultValue": "10.0.0.0/24"
|
|
},
|
|
"servicesSubnetAddressPrefix": {
|
|
"type": "string",
|
|
"defaultValue": "10.0.1.0/24"
|
|
},
|
|
"enableDnsAndFirewallDeployment": {
|
|
"type": "bool",
|
|
"defaultValue": true
|
|
},
|
|
"firewallPolicyId": {
|
|
"type": "string",
|
|
"defaultValue": ""
|
|
}
|
|
},
|
|
"functions": [],
|
|
"variables": {
|
|
"azureFirewallSubnetName": "AzureFirewallSubnet",
|
|
"servicesSubnetName": "ServicesSubnet",
|
|
"firewallPolicySubscriptionId": "[if(greaterOrEquals(length(split(parameters('firewallPolicyId'), '/')), 9), split(parameters('firewallPolicyId'), '/')[2], subscription().subscriptionId)]",
|
|
"firewallPolicyResourceGroupName": "[if(greaterOrEquals(length(split(parameters('firewallPolicyId'), '/')), 9), split(parameters('firewallPolicyId'), '/')[4], resourceGroup().name)]",
|
|
"firewallPolicyName": "[if(greaterOrEquals(length(split(parameters('firewallPolicyId'), '/')), 9), last(split(parameters('firewallPolicyId'), '/')), 'incorrectSegmentLength')]"
|
|
},
|
|
"resources": [
|
|
{
|
|
"type": "Microsoft.Network/routeTables",
|
|
"apiVersion": "2020-11-01",
|
|
"name": "[format('{0}-routetable', parameters('prefix'))]",
|
|
"location": "[parameters('location')]",
|
|
"tags": "[parameters('tags')]",
|
|
"properties": {
|
|
"disableBgpRoutePropagation": false,
|
|
"routes": []
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.Network/routeTables/routes",
|
|
"apiVersion": "2020-11-01",
|
|
"name": "[format('{0}/{1}', format('{0}-routetable', parameters('prefix')), 'to-firewall-default')]",
|
|
"properties": {
|
|
"addressPrefix": "0.0.0.0/0",
|
|
"nextHopType": "VirtualAppliance",
|
|
"nextHopIpAddress": "[if(parameters('enableDnsAndFirewallDeployment'), reference(resourceId('Microsoft.Network/azureFirewalls', format('{0}-firewall', parameters('prefix')))).ipConfigurations[0].properties.privateIPAddress, parameters('firewallPrivateIp'))]"
|
|
},
|
|
"dependsOn": [
|
|
"[resourceId('Microsoft.Network/azureFirewalls', format('{0}-firewall', parameters('prefix')))]",
|
|
"[resourceId('Microsoft.Network/routeTables', format('{0}-routetable', parameters('prefix')))]"
|
|
]
|
|
},
|
|
{
|
|
"type": "Microsoft.Network/networkSecurityGroups",
|
|
"apiVersion": "2020-11-01",
|
|
"name": "[format('{0}-nsg', parameters('prefix'))]",
|
|
"location": "[parameters('location')]",
|
|
"tags": "[parameters('tags')]",
|
|
"properties": {
|
|
"securityRules": []
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.Network/virtualNetworks",
|
|
"apiVersion": "2020-06-01",
|
|
"name": "[format('{0}-vnet', parameters('prefix'))]",
|
|
"location": "[parameters('location')]",
|
|
"tags": "[parameters('tags')]",
|
|
"properties": {
|
|
"addressSpace": {
|
|
"addressPrefixes": [
|
|
"[parameters('vnetAddressPrefix')]"
|
|
]
|
|
},
|
|
"dhcpOptions": {
|
|
"dnsServers": "[if(parameters('enableDnsAndFirewallDeployment'), createArray(), parameters('dnsServerAdresses'))]"
|
|
},
|
|
"enableDdosProtection": false,
|
|
"subnets": [
|
|
{
|
|
"name": "[variables('azureFirewallSubnetName')]",
|
|
"properties": {
|
|
"addressPrefix": "[parameters('azureFirewallSubnetAddressPrefix')]",
|
|
"addressPrefixes": [],
|
|
"delegations": [],
|
|
"privateEndpointNetworkPolicies": "Enabled",
|
|
"privateLinkServiceNetworkPolicies": "Enabled",
|
|
"serviceEndpointPolicies": [],
|
|
"serviceEndpoints": []
|
|
}
|
|
},
|
|
{
|
|
"name": "[variables('servicesSubnetName')]",
|
|
"properties": {
|
|
"addressPrefix": "[parameters('servicesSubnetAddressPrefix')]",
|
|
"addressPrefixes": [],
|
|
"networkSecurityGroup": {
|
|
"id": "[resourceId('Microsoft.Network/networkSecurityGroups', format('{0}-nsg', parameters('prefix')))]"
|
|
},
|
|
"routeTable": {
|
|
"id": "[resourceId('Microsoft.Network/routeTables', format('{0}-routetable', parameters('prefix')))]"
|
|
},
|
|
"delegations": [],
|
|
"privateEndpointNetworkPolicies": "Disabled",
|
|
"privateLinkServiceNetworkPolicies": "Disabled",
|
|
"serviceEndpointPolicies": [],
|
|
"serviceEndpoints": []
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"dependsOn": [
|
|
"[resourceId('Microsoft.Network/networkSecurityGroups', format('{0}-nsg', parameters('prefix')))]",
|
|
"[resourceId('Microsoft.Network/routeTables', format('{0}-routetable', parameters('prefix')))]"
|
|
]
|
|
},
|
|
{
|
|
"condition": "[parameters('enableDnsAndFirewallDeployment')]",
|
|
"type": "Microsoft.Network/publicIPPrefixes",
|
|
"apiVersion": "2020-11-01",
|
|
"name": "[format('{0}-publicipprefix', parameters('prefix'))]",
|
|
"location": "[parameters('location')]",
|
|
"tags": "[parameters('tags')]",
|
|
"sku": {
|
|
"name": "Standard",
|
|
"tier": "Regional"
|
|
},
|
|
"properties": {
|
|
"publicIPAddressVersion": "IPv4",
|
|
"prefixLength": 30
|
|
}
|
|
},
|
|
{
|
|
"condition": "[parameters('enableDnsAndFirewallDeployment')]",
|
|
"type": "Microsoft.Network/publicIPAddresses",
|
|
"apiVersion": "2020-11-01",
|
|
"name": "[format('{0}-publicip001', parameters('prefix'))]",
|
|
"location": "[parameters('location')]",
|
|
"tags": "[parameters('tags')]",
|
|
"sku": {
|
|
"name": "Standard",
|
|
"tier": "Regional"
|
|
},
|
|
"properties": {
|
|
"publicIPAddressVersion": "IPv4",
|
|
"publicIPAllocationMethod": "Static",
|
|
"dnsSettings": {
|
|
"domainNameLabel": "[format('{0}-publicip001', parameters('prefix'))]"
|
|
},
|
|
"publicIPPrefix": {
|
|
"id": "[resourceId('Microsoft.Network/publicIPPrefixes', format('{0}-publicipprefix', parameters('prefix')))]"
|
|
}
|
|
},
|
|
"dependsOn": [
|
|
"[resourceId('Microsoft.Network/publicIPPrefixes', format('{0}-publicipprefix', parameters('prefix')))]"
|
|
]
|
|
},
|
|
{
|
|
"condition": "[parameters('enableDnsAndFirewallDeployment')]",
|
|
"type": "Microsoft.Network/firewallPolicies",
|
|
"apiVersion": "2020-11-01",
|
|
"name": "[format('{0}-firewallpolicy', parameters('prefix'))]",
|
|
"location": "[parameters('location')]",
|
|
"tags": "[parameters('tags')]",
|
|
"properties": {
|
|
"intrusionDetection": {
|
|
"mode": "Deny",
|
|
"configuration": {
|
|
"bypassTrafficSettings": [],
|
|
"signatureOverrides": []
|
|
}
|
|
},
|
|
"threatIntelMode": "Deny",
|
|
"threatIntelWhitelist": {
|
|
"fqdns": [],
|
|
"ipAddresses": []
|
|
},
|
|
"sku": {
|
|
"tier": "Premium"
|
|
},
|
|
"dnsSettings": {
|
|
"enableProxy": true,
|
|
"servers": []
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"condition": "[parameters('enableDnsAndFirewallDeployment')]",
|
|
"type": "Microsoft.Network/azureFirewalls",
|
|
"apiVersion": "2020-11-01",
|
|
"name": "[format('{0}-firewall', parameters('prefix'))]",
|
|
"location": "[parameters('location')]",
|
|
"tags": "[parameters('tags')]",
|
|
"zones": [
|
|
"1",
|
|
"2",
|
|
"3"
|
|
],
|
|
"properties": {
|
|
"sku": {
|
|
"name": "AZFW_VNet",
|
|
"tier": "Premium"
|
|
},
|
|
"ipConfigurations": [
|
|
{
|
|
"name": "ipConfiguration001",
|
|
"properties": {
|
|
"publicIPAddress": {
|
|
"id": "[resourceId('Microsoft.Network/publicIPAddresses', format('{0}-publicip001', parameters('prefix')))]"
|
|
},
|
|
"subnet": {
|
|
"id": "[reference(resourceId('Microsoft.Network/virtualNetworks', format('{0}-vnet', parameters('prefix')))).subnets[0].id]"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"firewallPolicy": {
|
|
"id": "[resourceId('Microsoft.Network/firewallPolicies', format('{0}-firewallpolicy', parameters('prefix')))]"
|
|
}
|
|
},
|
|
"dependsOn": [
|
|
"[resourceId('Microsoft.Network/firewallPolicies', format('{0}-firewallpolicy', parameters('prefix')))]",
|
|
"[resourceId('Microsoft.Resources/deployments', format('{0}-firewallpolicy-rules', parameters('prefix')))]",
|
|
"[resourceId('Microsoft.Network/publicIPAddresses', format('{0}-publicip001', parameters('prefix')))]",
|
|
"[resourceId('Microsoft.Network/virtualNetworks', format('{0}-vnet', parameters('prefix')))]"
|
|
]
|
|
},
|
|
{
|
|
"condition": "[parameters('enableDnsAndFirewallDeployment')]",
|
|
"type": "Microsoft.Resources/deployments",
|
|
"apiVersion": "2020-06-01",
|
|
"name": "[format('{0}-firewallpolicy-rules', parameters('prefix'))]",
|
|
"properties": {
|
|
"expressionEvaluationOptions": {
|
|
"scope": "inner"
|
|
},
|
|
"mode": "Incremental",
|
|
"parameters": {
|
|
"firewallPolicyName": {
|
|
"value": "[format('{0}-firewallpolicy', parameters('prefix'))]"
|
|
}
|
|
},
|
|
"template": {
|
|
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
|
|
"contentVersion": "1.0.0.0",
|
|
"metadata": {
|
|
"_generator": {
|
|
"name": "bicep",
|
|
"version": "0.4.1008.15138",
|
|
"templateHash": "778530669057950381"
|
|
}
|
|
},
|
|
"parameters": {
|
|
"firewallPolicyName": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"functions": [],
|
|
"resources": [
|
|
{
|
|
"type": "Microsoft.Network/firewallPolicies/ruleCollectionGroups",
|
|
"apiVersion": "2020-11-01",
|
|
"name": "[format('{0}/networkrules-rulecollection', parameters('firewallPolicyName'))]",
|
|
"properties": {
|
|
"priority": 10000,
|
|
"ruleCollections": [
|
|
{
|
|
"name": "MachineLearning-NetworkRules",
|
|
"priority": 10100,
|
|
"action": {
|
|
"type": "Allow"
|
|
},
|
|
"ruleCollectionType": "FirewallPolicyFilterRuleCollection",
|
|
"rules": [
|
|
{
|
|
"name": "MachineLearning-NetworkRule-001",
|
|
"ruleType": "NetworkRule",
|
|
"ipProtocols": [
|
|
"TCP"
|
|
],
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"sourceIpGroups": [],
|
|
"destinationAddresses": [
|
|
"AzureActiveDirectory",
|
|
"AzureMachineLearning",
|
|
"AzureResourceManager",
|
|
"Storage",
|
|
"AzureKeyVault",
|
|
"AzureContainerRegistry",
|
|
"MicrosoftContainerRegistry",
|
|
"AzureFrontDoor.FirstParty"
|
|
],
|
|
"destinationIpGroups": [],
|
|
"destinationFqdns": [],
|
|
"destinationPorts": [
|
|
"*"
|
|
],
|
|
"description": "Allow outbound access to required services"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "HDInsight-NetworkRules",
|
|
"priority": 10200,
|
|
"action": {
|
|
"type": "Allow"
|
|
},
|
|
"ruleCollectionType": "FirewallPolicyFilterRuleCollection",
|
|
"rules": [
|
|
{
|
|
"name": "HDInsight-NetworkRule-001",
|
|
"ruleType": "NetworkRule",
|
|
"ipProtocols": [
|
|
"TCP"
|
|
],
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"sourceIpGroups": [],
|
|
"destinationAddresses": [
|
|
"Sql"
|
|
],
|
|
"destinationIpGroups": [],
|
|
"destinationFqdns": [],
|
|
"destinationPorts": [
|
|
"1433"
|
|
],
|
|
"description": "Allow default SQL servers provided by HDInsight"
|
|
},
|
|
{
|
|
"name": "HDInsight-NetworkRule-002",
|
|
"ruleType": "NetworkRule",
|
|
"ipProtocols": [
|
|
"TCP"
|
|
],
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"sourceIpGroups": [],
|
|
"destinationAddresses": [
|
|
"AzureMonitor"
|
|
],
|
|
"destinationIpGroups": [],
|
|
"destinationFqdns": [],
|
|
"destinationPorts": [
|
|
"*"
|
|
],
|
|
"description": "Allows scale feature of HDInsight"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Databricks-NetworkRules",
|
|
"priority": 10300,
|
|
"action": {
|
|
"type": "Allow"
|
|
},
|
|
"ruleCollectionType": "FirewallPolicyFilterRuleCollection",
|
|
"rules": [
|
|
{
|
|
"name": "Databricks-NetworkRule-001",
|
|
"ruleType": "NetworkRule",
|
|
"ipProtocols": [
|
|
"TCP"
|
|
],
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"sourceIpGroups": [],
|
|
"destinationAddresses": [
|
|
"AzureActiveDirectory",
|
|
"AzureFrontDoor.Frontend"
|
|
],
|
|
"destinationIpGroups": [],
|
|
"destinationFqdns": [],
|
|
"destinationPorts": [
|
|
"443"
|
|
],
|
|
"description": "Allow OAuth flow for the User to the Workspace Private Endpoint and features like Mount Points, Credential Passthrough, etc."
|
|
},
|
|
{
|
|
"name": "Databricks-NetworkRule-002",
|
|
"ruleType": "NetworkRule",
|
|
"ipProtocols": [
|
|
"TCP"
|
|
],
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"sourceIpGroups": [],
|
|
"destinationAddresses": [
|
|
"AzureDatabricks",
|
|
"Storage"
|
|
],
|
|
"destinationIpGroups": [],
|
|
"destinationFqdns": [],
|
|
"destinationPorts": [
|
|
"443"
|
|
],
|
|
"description": "Required for workers communication with Azure Storage services and Databricks Webapp"
|
|
},
|
|
{
|
|
"name": "Databricks-NetworkRule-003",
|
|
"ruleType": "NetworkRule",
|
|
"ipProtocols": [
|
|
"TCP"
|
|
],
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"sourceIpGroups": [],
|
|
"destinationAddresses": [
|
|
"Sql"
|
|
],
|
|
"destinationIpGroups": [],
|
|
"destinationFqdns": [],
|
|
"destinationPorts": [
|
|
"3306"
|
|
],
|
|
"description": "Required for workers communication with Azure SQL services"
|
|
},
|
|
{
|
|
"name": "Databricks-NetworkRule-004",
|
|
"ruleType": "NetworkRule",
|
|
"ipProtocols": [
|
|
"TCP"
|
|
],
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"sourceIpGroups": [],
|
|
"destinationAddresses": [
|
|
"EventHub"
|
|
],
|
|
"destinationIpGroups": [],
|
|
"destinationFqdns": [],
|
|
"destinationPorts": [
|
|
"9093"
|
|
],
|
|
"description": "Required for workers communication with Azure Eventhub services"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Azure-NetworkRules",
|
|
"priority": 10400,
|
|
"action": {
|
|
"type": "Allow"
|
|
},
|
|
"ruleCollectionType": "FirewallPolicyFilterRuleCollection",
|
|
"rules": [
|
|
{
|
|
"name": "Azure-NetworkRule-001",
|
|
"ruleType": "NetworkRule",
|
|
"ipProtocols": [
|
|
"TCP"
|
|
],
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"sourceIpGroups": [],
|
|
"destinationAddresses": [
|
|
"23.102.135.246",
|
|
"51.4.143.248",
|
|
"23.97.0.13",
|
|
"42.159.7.249"
|
|
],
|
|
"destinationIpGroups": [],
|
|
"destinationFqdns": [],
|
|
"destinationPorts": [
|
|
"1688"
|
|
],
|
|
"description": "Allow Windows Activation in Azure through Azure KMS Service"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "AzureDevOps-NetworkRules",
|
|
"priority": 10500,
|
|
"action": {
|
|
"type": "Allow"
|
|
},
|
|
"ruleCollectionType": "FirewallPolicyFilterRuleCollection",
|
|
"rules": [
|
|
{
|
|
"name": "AzureDevOps-NetworkRule-001",
|
|
"ruleType": "NetworkRule",
|
|
"ipProtocols": [
|
|
"TCP"
|
|
],
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"sourceIpGroups": [],
|
|
"destinationAddresses": [
|
|
"13.107.6.0/24",
|
|
"13.107.9.0/24",
|
|
"13.107.42.0/24",
|
|
"13.107.43.0/24"
|
|
],
|
|
"destinationIpGroups": [],
|
|
"destinationFqdns": [],
|
|
"destinationPorts": [
|
|
"443"
|
|
],
|
|
"description": "Allow Self-hosted DevOps Agents to poll for pending jobs"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.Network/firewallPolicies/ruleCollectionGroups",
|
|
"apiVersion": "2020-11-01",
|
|
"name": "[format('{0}/applicationrules-rulecollection', parameters('firewallPolicyName'))]",
|
|
"properties": {
|
|
"priority": 20000,
|
|
"ruleCollections": [
|
|
{
|
|
"name": "MachineLearning-ApplicationRules",
|
|
"priority": 20100,
|
|
"action": {
|
|
"type": "Allow"
|
|
},
|
|
"ruleCollectionType": "FirewallPolicyFilterRuleCollection",
|
|
"rules": [
|
|
{
|
|
"name": "MachineLearning-ApplicationRule-001",
|
|
"ruleType": "ApplicationRule",
|
|
"protocols": [
|
|
{
|
|
"protocolType": "Http",
|
|
"port": 80
|
|
},
|
|
{
|
|
"protocolType": "Https",
|
|
"port": 443
|
|
}
|
|
],
|
|
"fqdnTags": [],
|
|
"targetFqdns": [
|
|
"anaconda.com",
|
|
"*.anaconda.com",
|
|
"*.anaconda.org",
|
|
"pypi.org",
|
|
"cloud.r-project.org",
|
|
"*pytorch.org",
|
|
"*.tensorflow.org",
|
|
"update.code.visualstudio.com",
|
|
"*.vo.msecnd.net",
|
|
"*.instances.azureml.net",
|
|
"*.instances.azureml.ms"
|
|
],
|
|
"targetUrls": [],
|
|
"terminateTLS": false,
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"destinationAddresses": [],
|
|
"sourceIpGroups": [],
|
|
"description": "MachineLearning allow common FQDNs"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "HDInsight-ApplicationRules",
|
|
"priority": 20200,
|
|
"action": {
|
|
"type": "Allow"
|
|
},
|
|
"ruleCollectionType": "FirewallPolicyFilterRuleCollection",
|
|
"rules": [
|
|
{
|
|
"name": "HDInsight-ApplicationRule-001",
|
|
"ruleType": "ApplicationRule",
|
|
"protocols": [
|
|
{
|
|
"protocolType": "Http",
|
|
"port": 80
|
|
},
|
|
{
|
|
"protocolType": "Https",
|
|
"port": 443
|
|
}
|
|
],
|
|
"fqdnTags": [
|
|
"HDInsight",
|
|
"WindowsUpdate"
|
|
],
|
|
"targetFqdns": [],
|
|
"targetUrls": [],
|
|
"terminateTLS": false,
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"destinationAddresses": [],
|
|
"sourceIpGroups": [],
|
|
"description": "HDInsight Service Tag Rule"
|
|
},
|
|
{
|
|
"name": "HDInsight-ApplicationRule-002",
|
|
"ruleType": "ApplicationRule",
|
|
"protocols": [
|
|
{
|
|
"protocolType": "Https",
|
|
"port": 443
|
|
}
|
|
],
|
|
"fqdnTags": [],
|
|
"targetFqdns": [
|
|
"login.microsoftonline.com",
|
|
"login.windows.net"
|
|
],
|
|
"targetUrls": [],
|
|
"terminateTLS": false,
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"destinationAddresses": [],
|
|
"sourceIpGroups": [],
|
|
"description": "Allows Windows login activity"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "DataFactory-ApplicationRules",
|
|
"priority": 20300,
|
|
"action": {
|
|
"type": "Allow"
|
|
},
|
|
"ruleCollectionType": "FirewallPolicyFilterRuleCollection",
|
|
"rules": [
|
|
{
|
|
"name": "DataFactory-ApplicationRule-001",
|
|
"ruleType": "ApplicationRule",
|
|
"protocols": [
|
|
{
|
|
"protocolType": "Http",
|
|
"port": 80
|
|
},
|
|
{
|
|
"protocolType": "Https",
|
|
"port": 443
|
|
}
|
|
],
|
|
"fqdnTags": [],
|
|
"targetFqdns": [
|
|
"go.microsoft.com",
|
|
"download.microsoft.com",
|
|
"browser.events.data.msn.com",
|
|
"*.clouddatahub.net"
|
|
],
|
|
"targetUrls": [],
|
|
"terminateTLS": false,
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"destinationAddresses": [],
|
|
"sourceIpGroups": [],
|
|
"description": "Allows download of Self-hosted Integration Runtime installer and updates"
|
|
},
|
|
{
|
|
"name": "DataFactory-ApplicationRule-002",
|
|
"ruleType": "ApplicationRule",
|
|
"protocols": [
|
|
{
|
|
"protocolType": "Https",
|
|
"port": 443
|
|
}
|
|
],
|
|
"fqdnTags": [],
|
|
"targetFqdns": [
|
|
"*.servicebus.windows.net"
|
|
],
|
|
"targetUrls": [],
|
|
"terminateTLS": false,
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"destinationAddresses": [],
|
|
"sourceIpGroups": [],
|
|
"description": "Allows interactive authoring with Self-hosted Integration Runtime"
|
|
},
|
|
{
|
|
"name": "DataFactory-ApplicationRule-003",
|
|
"ruleType": "ApplicationRule",
|
|
"protocols": [
|
|
{
|
|
"protocolType": "Http",
|
|
"port": 80
|
|
},
|
|
{
|
|
"protocolType": "Https",
|
|
"port": 443
|
|
}
|
|
],
|
|
"fqdnTags": [],
|
|
"targetFqdns": [
|
|
"*.githubusercontent.com"
|
|
],
|
|
"targetUrls": [],
|
|
"terminateTLS": false,
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"destinationAddresses": [],
|
|
"sourceIpGroups": [],
|
|
"description": "Allows download of SHIR install script from GitHub"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Databricks-ApplicationRules",
|
|
"priority": 20400,
|
|
"action": {
|
|
"type": "Allow"
|
|
},
|
|
"ruleCollectionType": "FirewallPolicyFilterRuleCollection",
|
|
"rules": [
|
|
{
|
|
"name": "Databricks-ApplicationRule-001",
|
|
"ruleType": "ApplicationRule",
|
|
"protocols": [
|
|
{
|
|
"protocolType": "Http",
|
|
"port": 80
|
|
},
|
|
{
|
|
"protocolType": "Https",
|
|
"port": 443
|
|
}
|
|
],
|
|
"fqdnTags": [],
|
|
"targetFqdns": [
|
|
"tunnel.australiaeast.azuredatabricks.net",
|
|
"tunnel.brazilsouth.azuredatabricks.net",
|
|
"tunnel.canadacentral.azuredatabricks.net",
|
|
"tunnel.centralindia.azuredatabricks.net",
|
|
"tunnel.eastus2.azuredatabricks.net",
|
|
"tunnel.eastus2c2.azuredatabricks.net",
|
|
"tunnel.eastusc3.azuredatabricks.net",
|
|
"tunnel.centralusc2.azuredatabricks.net",
|
|
"tunnel.northcentralusc2.azuredatabricks.net",
|
|
"tunnel.southeastasia.azuredatabricks.net",
|
|
"tunnel.francecentral.azuredatabricks.net",
|
|
"tunnel.japaneast.azuredatabricks.net",
|
|
"tunnel.koreacentral.azuredatabricks.net",
|
|
"tunnel.northeuropec2.azuredatabricks.net",
|
|
"tunnel.westus.azuredatabricks.net",
|
|
"tunnel.westeurope.azuredatabricks.net",
|
|
"tunnel.westeuropec2.azuredatabricks.net",
|
|
"tunnel.southafricanorth.azuredatabricks.net",
|
|
"tunnel.switzerlandnorth.azuredatabricks.net",
|
|
"tunnel.uaenorth.azuredatabricks.net",
|
|
"tunnel.ukwest.azuredatabricks.net"
|
|
],
|
|
"targetUrls": [],
|
|
"terminateTLS": false,
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"destinationAddresses": [],
|
|
"sourceIpGroups": [],
|
|
"description": "Allows Secure Cluster Connectivity option"
|
|
},
|
|
{
|
|
"name": "Databricks-ApplicationRule-002",
|
|
"ruleType": "ApplicationRule",
|
|
"protocols": [
|
|
{
|
|
"protocolType": "Http",
|
|
"port": 80
|
|
},
|
|
{
|
|
"protocolType": "Https",
|
|
"port": 443
|
|
}
|
|
],
|
|
"fqdnTags": [],
|
|
"targetFqdns": [
|
|
"archive.ubuntu.com",
|
|
"github.com",
|
|
"*.maven.apache.org",
|
|
"conjars.org"
|
|
],
|
|
"targetUrls": [],
|
|
"terminateTLS": false,
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"destinationAddresses": [],
|
|
"sourceIpGroups": [],
|
|
"description": "Allows Databricks Setup Notebook to run successfully"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Azure-ApplicationRules",
|
|
"priority": 20500,
|
|
"action": {
|
|
"type": "Allow"
|
|
},
|
|
"ruleCollectionType": "FirewallPolicyFilterRuleCollection",
|
|
"rules": [
|
|
{
|
|
"name": "Azure-ApplicationRule-001",
|
|
"ruleType": "ApplicationRule",
|
|
"protocols": [
|
|
{
|
|
"protocolType": "Http",
|
|
"port": 80
|
|
},
|
|
{
|
|
"protocolType": "Https",
|
|
"port": 443
|
|
}
|
|
],
|
|
"fqdnTags": [],
|
|
"targetFqdns": [
|
|
"*microsoft.com",
|
|
"*azure.com",
|
|
"*windows.com",
|
|
"*windows.net",
|
|
"*azure-automation.net",
|
|
"*digicert.com"
|
|
],
|
|
"targetUrls": [],
|
|
"terminateTLS": false,
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"destinationAddresses": [],
|
|
"sourceIpGroups": [],
|
|
"description": "Allows communication with Azure and Microsoft for Logging and Metrics as well as other services"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "AzureDevOps-ApplicationRules",
|
|
"priority": 20600,
|
|
"action": {
|
|
"type": "Allow"
|
|
},
|
|
"ruleCollectionType": "FirewallPolicyFilterRuleCollection",
|
|
"rules": [
|
|
{
|
|
"name": "AzureDevOps-ApplicationRule-001",
|
|
"ruleType": "ApplicationRule",
|
|
"protocols": [
|
|
{
|
|
"protocolType": "Https",
|
|
"port": 443
|
|
}
|
|
],
|
|
"fqdnTags": [],
|
|
"targetFqdns": [
|
|
"*snapcraft.io",
|
|
"vstsagentpackage.azureedge.net"
|
|
],
|
|
"targetUrls": [],
|
|
"terminateTLS": false,
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"destinationAddresses": [],
|
|
"sourceIpGroups": [],
|
|
"description": "Allows installation of Visual Studio DevOps Agent extension"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"dependsOn": [
|
|
"[resourceId('Microsoft.Network/firewallPolicies/ruleCollectionGroups', split(format('{0}/networkrules-rulecollection', parameters('firewallPolicyName')), '/')[0], split(format('{0}/networkrules-rulecollection', parameters('firewallPolicyName')), '/')[1])]"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"dependsOn": [
|
|
"[resourceId('Microsoft.Network/firewallPolicies', format('{0}-firewallpolicy', parameters('prefix')))]"
|
|
]
|
|
},
|
|
{
|
|
"condition": "[and(not(parameters('enableDnsAndFirewallDeployment')), not(empty(parameters('firewallPolicyId'))))]",
|
|
"type": "Microsoft.Resources/deployments",
|
|
"apiVersion": "2020-06-01",
|
|
"name": "[format('{0}-firewallpolicy-rules-toExistingFirewallPolicy', parameters('prefix'))]",
|
|
"subscriptionId": "[variables('firewallPolicySubscriptionId')]",
|
|
"resourceGroup": "[variables('firewallPolicyResourceGroupName')]",
|
|
"properties": {
|
|
"expressionEvaluationOptions": {
|
|
"scope": "inner"
|
|
},
|
|
"mode": "Incremental",
|
|
"parameters": {
|
|
"firewallPolicyName": {
|
|
"value": "[variables('firewallPolicyName')]"
|
|
}
|
|
},
|
|
"template": {
|
|
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
|
|
"contentVersion": "1.0.0.0",
|
|
"metadata": {
|
|
"_generator": {
|
|
"name": "bicep",
|
|
"version": "0.4.1008.15138",
|
|
"templateHash": "778530669057950381"
|
|
}
|
|
},
|
|
"parameters": {
|
|
"firewallPolicyName": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"functions": [],
|
|
"resources": [
|
|
{
|
|
"type": "Microsoft.Network/firewallPolicies/ruleCollectionGroups",
|
|
"apiVersion": "2020-11-01",
|
|
"name": "[format('{0}/networkrules-rulecollection', parameters('firewallPolicyName'))]",
|
|
"properties": {
|
|
"priority": 10000,
|
|
"ruleCollections": [
|
|
{
|
|
"name": "MachineLearning-NetworkRules",
|
|
"priority": 10100,
|
|
"action": {
|
|
"type": "Allow"
|
|
},
|
|
"ruleCollectionType": "FirewallPolicyFilterRuleCollection",
|
|
"rules": [
|
|
{
|
|
"name": "MachineLearning-NetworkRule-001",
|
|
"ruleType": "NetworkRule",
|
|
"ipProtocols": [
|
|
"TCP"
|
|
],
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"sourceIpGroups": [],
|
|
"destinationAddresses": [
|
|
"AzureActiveDirectory",
|
|
"AzureMachineLearning",
|
|
"AzureResourceManager",
|
|
"Storage",
|
|
"AzureKeyVault",
|
|
"AzureContainerRegistry",
|
|
"MicrosoftContainerRegistry",
|
|
"AzureFrontDoor.FirstParty"
|
|
],
|
|
"destinationIpGroups": [],
|
|
"destinationFqdns": [],
|
|
"destinationPorts": [
|
|
"*"
|
|
],
|
|
"description": "Allow outbound access to required services"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "HDInsight-NetworkRules",
|
|
"priority": 10200,
|
|
"action": {
|
|
"type": "Allow"
|
|
},
|
|
"ruleCollectionType": "FirewallPolicyFilterRuleCollection",
|
|
"rules": [
|
|
{
|
|
"name": "HDInsight-NetworkRule-001",
|
|
"ruleType": "NetworkRule",
|
|
"ipProtocols": [
|
|
"TCP"
|
|
],
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"sourceIpGroups": [],
|
|
"destinationAddresses": [
|
|
"Sql"
|
|
],
|
|
"destinationIpGroups": [],
|
|
"destinationFqdns": [],
|
|
"destinationPorts": [
|
|
"1433"
|
|
],
|
|
"description": "Allow default SQL servers provided by HDInsight"
|
|
},
|
|
{
|
|
"name": "HDInsight-NetworkRule-002",
|
|
"ruleType": "NetworkRule",
|
|
"ipProtocols": [
|
|
"TCP"
|
|
],
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"sourceIpGroups": [],
|
|
"destinationAddresses": [
|
|
"AzureMonitor"
|
|
],
|
|
"destinationIpGroups": [],
|
|
"destinationFqdns": [],
|
|
"destinationPorts": [
|
|
"*"
|
|
],
|
|
"description": "Allows scale feature of HDInsight"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Databricks-NetworkRules",
|
|
"priority": 10300,
|
|
"action": {
|
|
"type": "Allow"
|
|
},
|
|
"ruleCollectionType": "FirewallPolicyFilterRuleCollection",
|
|
"rules": [
|
|
{
|
|
"name": "Databricks-NetworkRule-001",
|
|
"ruleType": "NetworkRule",
|
|
"ipProtocols": [
|
|
"TCP"
|
|
],
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"sourceIpGroups": [],
|
|
"destinationAddresses": [
|
|
"AzureActiveDirectory",
|
|
"AzureFrontDoor.Frontend"
|
|
],
|
|
"destinationIpGroups": [],
|
|
"destinationFqdns": [],
|
|
"destinationPorts": [
|
|
"443"
|
|
],
|
|
"description": "Allow OAuth flow for the User to the Workspace Private Endpoint and features like Mount Points, Credential Passthrough, etc."
|
|
},
|
|
{
|
|
"name": "Databricks-NetworkRule-002",
|
|
"ruleType": "NetworkRule",
|
|
"ipProtocols": [
|
|
"TCP"
|
|
],
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"sourceIpGroups": [],
|
|
"destinationAddresses": [
|
|
"AzureDatabricks",
|
|
"Storage"
|
|
],
|
|
"destinationIpGroups": [],
|
|
"destinationFqdns": [],
|
|
"destinationPorts": [
|
|
"443"
|
|
],
|
|
"description": "Required for workers communication with Azure Storage services and Databricks Webapp"
|
|
},
|
|
{
|
|
"name": "Databricks-NetworkRule-003",
|
|
"ruleType": "NetworkRule",
|
|
"ipProtocols": [
|
|
"TCP"
|
|
],
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"sourceIpGroups": [],
|
|
"destinationAddresses": [
|
|
"Sql"
|
|
],
|
|
"destinationIpGroups": [],
|
|
"destinationFqdns": [],
|
|
"destinationPorts": [
|
|
"3306"
|
|
],
|
|
"description": "Required for workers communication with Azure SQL services"
|
|
},
|
|
{
|
|
"name": "Databricks-NetworkRule-004",
|
|
"ruleType": "NetworkRule",
|
|
"ipProtocols": [
|
|
"TCP"
|
|
],
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"sourceIpGroups": [],
|
|
"destinationAddresses": [
|
|
"EventHub"
|
|
],
|
|
"destinationIpGroups": [],
|
|
"destinationFqdns": [],
|
|
"destinationPorts": [
|
|
"9093"
|
|
],
|
|
"description": "Required for workers communication with Azure Eventhub services"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Azure-NetworkRules",
|
|
"priority": 10400,
|
|
"action": {
|
|
"type": "Allow"
|
|
},
|
|
"ruleCollectionType": "FirewallPolicyFilterRuleCollection",
|
|
"rules": [
|
|
{
|
|
"name": "Azure-NetworkRule-001",
|
|
"ruleType": "NetworkRule",
|
|
"ipProtocols": [
|
|
"TCP"
|
|
],
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"sourceIpGroups": [],
|
|
"destinationAddresses": [
|
|
"23.102.135.246",
|
|
"51.4.143.248",
|
|
"23.97.0.13",
|
|
"42.159.7.249"
|
|
],
|
|
"destinationIpGroups": [],
|
|
"destinationFqdns": [],
|
|
"destinationPorts": [
|
|
"1688"
|
|
],
|
|
"description": "Allow Windows Activation in Azure through Azure KMS Service"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "AzureDevOps-NetworkRules",
|
|
"priority": 10500,
|
|
"action": {
|
|
"type": "Allow"
|
|
},
|
|
"ruleCollectionType": "FirewallPolicyFilterRuleCollection",
|
|
"rules": [
|
|
{
|
|
"name": "AzureDevOps-NetworkRule-001",
|
|
"ruleType": "NetworkRule",
|
|
"ipProtocols": [
|
|
"TCP"
|
|
],
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"sourceIpGroups": [],
|
|
"destinationAddresses": [
|
|
"13.107.6.0/24",
|
|
"13.107.9.0/24",
|
|
"13.107.42.0/24",
|
|
"13.107.43.0/24"
|
|
],
|
|
"destinationIpGroups": [],
|
|
"destinationFqdns": [],
|
|
"destinationPorts": [
|
|
"443"
|
|
],
|
|
"description": "Allow Self-hosted DevOps Agents to poll for pending jobs"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.Network/firewallPolicies/ruleCollectionGroups",
|
|
"apiVersion": "2020-11-01",
|
|
"name": "[format('{0}/applicationrules-rulecollection', parameters('firewallPolicyName'))]",
|
|
"properties": {
|
|
"priority": 20000,
|
|
"ruleCollections": [
|
|
{
|
|
"name": "MachineLearning-ApplicationRules",
|
|
"priority": 20100,
|
|
"action": {
|
|
"type": "Allow"
|
|
},
|
|
"ruleCollectionType": "FirewallPolicyFilterRuleCollection",
|
|
"rules": [
|
|
{
|
|
"name": "MachineLearning-ApplicationRule-001",
|
|
"ruleType": "ApplicationRule",
|
|
"protocols": [
|
|
{
|
|
"protocolType": "Http",
|
|
"port": 80
|
|
},
|
|
{
|
|
"protocolType": "Https",
|
|
"port": 443
|
|
}
|
|
],
|
|
"fqdnTags": [],
|
|
"targetFqdns": [
|
|
"anaconda.com",
|
|
"*.anaconda.com",
|
|
"*.anaconda.org",
|
|
"pypi.org",
|
|
"cloud.r-project.org",
|
|
"*pytorch.org",
|
|
"*.tensorflow.org",
|
|
"update.code.visualstudio.com",
|
|
"*.vo.msecnd.net",
|
|
"*.instances.azureml.net",
|
|
"*.instances.azureml.ms"
|
|
],
|
|
"targetUrls": [],
|
|
"terminateTLS": false,
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"destinationAddresses": [],
|
|
"sourceIpGroups": [],
|
|
"description": "MachineLearning allow common FQDNs"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "HDInsight-ApplicationRules",
|
|
"priority": 20200,
|
|
"action": {
|
|
"type": "Allow"
|
|
},
|
|
"ruleCollectionType": "FirewallPolicyFilterRuleCollection",
|
|
"rules": [
|
|
{
|
|
"name": "HDInsight-ApplicationRule-001",
|
|
"ruleType": "ApplicationRule",
|
|
"protocols": [
|
|
{
|
|
"protocolType": "Http",
|
|
"port": 80
|
|
},
|
|
{
|
|
"protocolType": "Https",
|
|
"port": 443
|
|
}
|
|
],
|
|
"fqdnTags": [
|
|
"HDInsight",
|
|
"WindowsUpdate"
|
|
],
|
|
"targetFqdns": [],
|
|
"targetUrls": [],
|
|
"terminateTLS": false,
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"destinationAddresses": [],
|
|
"sourceIpGroups": [],
|
|
"description": "HDInsight Service Tag Rule"
|
|
},
|
|
{
|
|
"name": "HDInsight-ApplicationRule-002",
|
|
"ruleType": "ApplicationRule",
|
|
"protocols": [
|
|
{
|
|
"protocolType": "Https",
|
|
"port": 443
|
|
}
|
|
],
|
|
"fqdnTags": [],
|
|
"targetFqdns": [
|
|
"login.microsoftonline.com",
|
|
"login.windows.net"
|
|
],
|
|
"targetUrls": [],
|
|
"terminateTLS": false,
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"destinationAddresses": [],
|
|
"sourceIpGroups": [],
|
|
"description": "Allows Windows login activity"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "DataFactory-ApplicationRules",
|
|
"priority": 20300,
|
|
"action": {
|
|
"type": "Allow"
|
|
},
|
|
"ruleCollectionType": "FirewallPolicyFilterRuleCollection",
|
|
"rules": [
|
|
{
|
|
"name": "DataFactory-ApplicationRule-001",
|
|
"ruleType": "ApplicationRule",
|
|
"protocols": [
|
|
{
|
|
"protocolType": "Http",
|
|
"port": 80
|
|
},
|
|
{
|
|
"protocolType": "Https",
|
|
"port": 443
|
|
}
|
|
],
|
|
"fqdnTags": [],
|
|
"targetFqdns": [
|
|
"go.microsoft.com",
|
|
"download.microsoft.com",
|
|
"browser.events.data.msn.com",
|
|
"*.clouddatahub.net"
|
|
],
|
|
"targetUrls": [],
|
|
"terminateTLS": false,
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"destinationAddresses": [],
|
|
"sourceIpGroups": [],
|
|
"description": "Allows download of Self-hosted Integration Runtime installer and updates"
|
|
},
|
|
{
|
|
"name": "DataFactory-ApplicationRule-002",
|
|
"ruleType": "ApplicationRule",
|
|
"protocols": [
|
|
{
|
|
"protocolType": "Https",
|
|
"port": 443
|
|
}
|
|
],
|
|
"fqdnTags": [],
|
|
"targetFqdns": [
|
|
"*.servicebus.windows.net"
|
|
],
|
|
"targetUrls": [],
|
|
"terminateTLS": false,
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"destinationAddresses": [],
|
|
"sourceIpGroups": [],
|
|
"description": "Allows interactive authoring with Self-hosted Integration Runtime"
|
|
},
|
|
{
|
|
"name": "DataFactory-ApplicationRule-003",
|
|
"ruleType": "ApplicationRule",
|
|
"protocols": [
|
|
{
|
|
"protocolType": "Http",
|
|
"port": 80
|
|
},
|
|
{
|
|
"protocolType": "Https",
|
|
"port": 443
|
|
}
|
|
],
|
|
"fqdnTags": [],
|
|
"targetFqdns": [
|
|
"*.githubusercontent.com"
|
|
],
|
|
"targetUrls": [],
|
|
"terminateTLS": false,
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"destinationAddresses": [],
|
|
"sourceIpGroups": [],
|
|
"description": "Allows download of SHIR install script from GitHub"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Databricks-ApplicationRules",
|
|
"priority": 20400,
|
|
"action": {
|
|
"type": "Allow"
|
|
},
|
|
"ruleCollectionType": "FirewallPolicyFilterRuleCollection",
|
|
"rules": [
|
|
{
|
|
"name": "Databricks-ApplicationRule-001",
|
|
"ruleType": "ApplicationRule",
|
|
"protocols": [
|
|
{
|
|
"protocolType": "Http",
|
|
"port": 80
|
|
},
|
|
{
|
|
"protocolType": "Https",
|
|
"port": 443
|
|
}
|
|
],
|
|
"fqdnTags": [],
|
|
"targetFqdns": [
|
|
"tunnel.australiaeast.azuredatabricks.net",
|
|
"tunnel.brazilsouth.azuredatabricks.net",
|
|
"tunnel.canadacentral.azuredatabricks.net",
|
|
"tunnel.centralindia.azuredatabricks.net",
|
|
"tunnel.eastus2.azuredatabricks.net",
|
|
"tunnel.eastus2c2.azuredatabricks.net",
|
|
"tunnel.eastusc3.azuredatabricks.net",
|
|
"tunnel.centralusc2.azuredatabricks.net",
|
|
"tunnel.northcentralusc2.azuredatabricks.net",
|
|
"tunnel.southeastasia.azuredatabricks.net",
|
|
"tunnel.francecentral.azuredatabricks.net",
|
|
"tunnel.japaneast.azuredatabricks.net",
|
|
"tunnel.koreacentral.azuredatabricks.net",
|
|
"tunnel.northeuropec2.azuredatabricks.net",
|
|
"tunnel.westus.azuredatabricks.net",
|
|
"tunnel.westeurope.azuredatabricks.net",
|
|
"tunnel.westeuropec2.azuredatabricks.net",
|
|
"tunnel.southafricanorth.azuredatabricks.net",
|
|
"tunnel.switzerlandnorth.azuredatabricks.net",
|
|
"tunnel.uaenorth.azuredatabricks.net",
|
|
"tunnel.ukwest.azuredatabricks.net"
|
|
],
|
|
"targetUrls": [],
|
|
"terminateTLS": false,
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"destinationAddresses": [],
|
|
"sourceIpGroups": [],
|
|
"description": "Allows Secure Cluster Connectivity option"
|
|
},
|
|
{
|
|
"name": "Databricks-ApplicationRule-002",
|
|
"ruleType": "ApplicationRule",
|
|
"protocols": [
|
|
{
|
|
"protocolType": "Http",
|
|
"port": 80
|
|
},
|
|
{
|
|
"protocolType": "Https",
|
|
"port": 443
|
|
}
|
|
],
|
|
"fqdnTags": [],
|
|
"targetFqdns": [
|
|
"archive.ubuntu.com",
|
|
"github.com",
|
|
"*.maven.apache.org",
|
|
"conjars.org"
|
|
],
|
|
"targetUrls": [],
|
|
"terminateTLS": false,
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"destinationAddresses": [],
|
|
"sourceIpGroups": [],
|
|
"description": "Allows Databricks Setup Notebook to run successfully"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "Azure-ApplicationRules",
|
|
"priority": 20500,
|
|
"action": {
|
|
"type": "Allow"
|
|
},
|
|
"ruleCollectionType": "FirewallPolicyFilterRuleCollection",
|
|
"rules": [
|
|
{
|
|
"name": "Azure-ApplicationRule-001",
|
|
"ruleType": "ApplicationRule",
|
|
"protocols": [
|
|
{
|
|
"protocolType": "Http",
|
|
"port": 80
|
|
},
|
|
{
|
|
"protocolType": "Https",
|
|
"port": 443
|
|
}
|
|
],
|
|
"fqdnTags": [],
|
|
"targetFqdns": [
|
|
"*microsoft.com",
|
|
"*azure.com",
|
|
"*windows.com",
|
|
"*windows.net",
|
|
"*azure-automation.net",
|
|
"*digicert.com"
|
|
],
|
|
"targetUrls": [],
|
|
"terminateTLS": false,
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"destinationAddresses": [],
|
|
"sourceIpGroups": [],
|
|
"description": "Allows communication with Azure and Microsoft for Logging and Metrics as well as other services"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "AzureDevOps-ApplicationRules",
|
|
"priority": 20600,
|
|
"action": {
|
|
"type": "Allow"
|
|
},
|
|
"ruleCollectionType": "FirewallPolicyFilterRuleCollection",
|
|
"rules": [
|
|
{
|
|
"name": "AzureDevOps-ApplicationRule-001",
|
|
"ruleType": "ApplicationRule",
|
|
"protocols": [
|
|
{
|
|
"protocolType": "Https",
|
|
"port": 443
|
|
}
|
|
],
|
|
"fqdnTags": [],
|
|
"targetFqdns": [
|
|
"*snapcraft.io",
|
|
"vstsagentpackage.azureedge.net"
|
|
],
|
|
"targetUrls": [],
|
|
"terminateTLS": false,
|
|
"sourceAddresses": [
|
|
"*"
|
|
],
|
|
"destinationAddresses": [],
|
|
"sourceIpGroups": [],
|
|
"description": "Allows installation of Visual Studio DevOps Agent extension"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
"dependsOn": [
|
|
"[resourceId('Microsoft.Network/firewallPolicies/ruleCollectionGroups', split(format('{0}/networkrules-rulecollection', parameters('firewallPolicyName')), '/')[0], split(format('{0}/networkrules-rulecollection', parameters('firewallPolicyName')), '/')[1])]"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"outputs": {
|
|
"vnetId": {
|
|
"type": "string",
|
|
"value": "[resourceId('Microsoft.Network/virtualNetworks', format('{0}-vnet', parameters('prefix')))]"
|
|
},
|
|
"serviceSubnet": {
|
|
"type": "string",
|
|
"value": "[reference(resourceId('Microsoft.Network/virtualNetworks', format('{0}-vnet', parameters('prefix')))).subnets[1].id]"
|
|
},
|
|
"firewallPrivateIp": {
|
|
"type": "string",
|
|
"value": "[if(parameters('enableDnsAndFirewallDeployment'), reference(resourceId('Microsoft.Network/azureFirewalls', format('{0}-firewall', parameters('prefix')))).ipConfigurations[0].properties.privateIPAddress, parameters('firewallPrivateIp'))]"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"dependsOn": [
|
|
"[subscriptionResourceId('Microsoft.Resources/resourceGroups', format('{0}-network', variables('name')))]"
|
|
]
|
|
},
|
|
{
|
|
"condition": "[parameters('enableDnsAndFirewallDeployment')]",
|
|
"type": "Microsoft.Resources/deployments",
|
|
"apiVersion": "2020-06-01",
|
|
"name": "globalDnsZones",
|
|
"resourceGroup": "[format('{0}-global-dns', variables('name'))]",
|
|
"properties": {
|
|
"expressionEvaluationOptions": {
|
|
"scope": "inner"
|
|
},
|
|
"mode": "Incremental",
|
|
"parameters": {
|
|
"tags": {
|
|
"value": "[variables('tagsJoined')]"
|
|
},
|
|
"vnetId": {
|
|
"value": "[reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-network', variables('name'))), 'Microsoft.Resources/deployments', 'networkServices'), '2020-06-01').outputs.vnetId.value]"
|
|
}
|
|
},
|
|
"template": {
|
|
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
|
|
"contentVersion": "1.0.0.0",
|
|
"metadata": {
|
|
"_generator": {
|
|
"name": "bicep",
|
|
"version": "0.4.1008.15138",
|
|
"templateHash": "15535009285184117544"
|
|
}
|
|
},
|
|
"parameters": {
|
|
"vnetId": {
|
|
"type": "string"
|
|
},
|
|
"tags": {
|
|
"type": "object"
|
|
}
|
|
},
|
|
"functions": [],
|
|
"variables": {
|
|
"vnetName": "[if(greaterOrEquals(length(split(parameters('vnetId'), '/')), 9), last(split(parameters('vnetId'), '/')), 'incorrectSegmentLength')]",
|
|
"privateDnsZoneNames": [
|
|
"privatelink.afs.azure.net",
|
|
"privatelink.analysis.windows.net",
|
|
"privatelink.api.azureml.ms",
|
|
"privatelink.azure-automation.net",
|
|
"privatelink.azure-devices.net",
|
|
"privatelink.adf.azure.com",
|
|
"privatelink.azurecr.io",
|
|
"privatelink.azuredatabricks.net",
|
|
"privatelink.azuresynapse.net",
|
|
"privatelink.azurewebsites.net",
|
|
"[format('privatelink.blob.{0}', environment().suffixes.storage)]",
|
|
"privatelink.cassandra.cosmos.azure.com",
|
|
"privatelink.cognitiveservices.azure.com",
|
|
"[format('privatelink{0}', environment().suffixes.sqlServerHostname)]",
|
|
"privatelink.datafactory.azure.net",
|
|
"privatelink.dev.azuresynapse.net",
|
|
"[format('privatelink.dfs.{0}', environment().suffixes.storage)]",
|
|
"privatelink.documents.azure.com",
|
|
"privatelink.eventgrid.azure.net",
|
|
"[format('privatelink.file.{0}', environment().suffixes.storage)]",
|
|
"privatelink.gremlin.cosmos.azure.com",
|
|
"privatelink.mariadb.database.azure.com",
|
|
"privatelink.mongo.cosmos.azure.com",
|
|
"privatelink.mysql.database.azure.com",
|
|
"privatelink.notebooks.azure.net",
|
|
"privatelink.pbidedicated.windows.net",
|
|
"privatelink.postgres.database.azure.com",
|
|
"privatelink.purview.azure.com",
|
|
"privatelink.purviewstudio.azure.com",
|
|
"[format('privatelink.queue.{0}', environment().suffixes.storage)]",
|
|
"privatelink.redis.cache.windows.net",
|
|
"privatelink.search.windows.net",
|
|
"privatelink.service.signalr.net",
|
|
"privatelink.servicebus.windows.net",
|
|
"privatelink.sql.azuresynapse.net",
|
|
"[format('privatelink.table.{0}', environment().suffixes.storage)]",
|
|
"privatelink.table.cosmos.azure.com",
|
|
"privatelink.prod.powerquery.microsoft.com",
|
|
"privatelink.vaultcore.azure.net",
|
|
"[format('privatelink.web.{0}', environment().suffixes.storage)]",
|
|
"privatelink.northeurope.azmk8s.io",
|
|
"privatelink.westeurope.azmk8s.io",
|
|
"privatelink.northeurope.batch.azure.com",
|
|
"privatelink.westeurope.batch.azure.com",
|
|
"northeurope.privatelink.redisenterprise.cache.azure.net",
|
|
"westeurope.privatelink.redisenterprise.cache.azure.net"
|
|
]
|
|
},
|
|
"resources": [
|
|
{
|
|
"copy": {
|
|
"name": "privateDnsZones",
|
|
"count": "[length(variables('privateDnsZoneNames'))]"
|
|
},
|
|
"type": "Microsoft.Network/privateDnsZones",
|
|
"apiVersion": "2020-06-01",
|
|
"name": "[variables('privateDnsZoneNames')[copyIndex()]]",
|
|
"location": "global",
|
|
"tags": "[parameters('tags')]",
|
|
"properties": {}
|
|
},
|
|
{
|
|
"copy": {
|
|
"name": "virtualNetworkLinks",
|
|
"count": "[length(variables('privateDnsZoneNames'))]"
|
|
},
|
|
"type": "Microsoft.Network/privateDnsZones/virtualNetworkLinks",
|
|
"apiVersion": "2020-06-01",
|
|
"name": "[format('{0}/{1}', variables('privateDnsZoneNames')[copyIndex()], variables('vnetName'))]",
|
|
"location": "global",
|
|
"properties": {
|
|
"registrationEnabled": false,
|
|
"virtualNetwork": {
|
|
"id": "[parameters('vnetId')]"
|
|
}
|
|
},
|
|
"dependsOn": [
|
|
"privateDnsZones"
|
|
]
|
|
}
|
|
],
|
|
"outputs": {
|
|
"privateDnsZoneIdFileSync": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.afs.azure.net', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdMachineLearningApi": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.api.azureml.ms', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdMachineLearningNotebooks": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.notebooks.azure.net', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdAutomation": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.azure-automation.net', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdIothub": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.azure-devices.net', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdDataFactory": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.datafactory.azure.net', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdDataFactoryPortal": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.adf.azure.com', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdAppService": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.azurewebsites.net', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdCosmosdbCassandra": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.cassandra.cosmos.azure.com', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdCosmosdbSql": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.documents.azure.com', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdCosmosdbGremlin": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.gremlin.cosmos.azure.com', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdCosmosdbMongo": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.mongo.cosmos.azure.com', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdCosmosdbTable": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.table.cosmos.azure.com', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdCognitiveService": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.cognitiveservices.azure.com', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdSqlServer": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink{1}', resourceGroup().id, environment().suffixes.sqlServerHostname)]"
|
|
},
|
|
"privateDnsZoneIdMySqlServer": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.mysql.database.azure.com', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdMariaDb": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.mariadb.database.azure.com', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdPostgreSql": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.postgres.database.azure.com', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdRedis": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.redis.cache.windows.net', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdSearch": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.search.windows.net', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdSignalr": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.service.signalr.net', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdEventGrid": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.eventgrid.azure.net', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdPurview": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.purview.azure.com', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdPurviewPortal": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.purviewstudio.azure.com', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdDfs": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.dfs.{1}', resourceGroup().id, environment().suffixes.storage)]"
|
|
},
|
|
"privateDnsZoneIdBlob": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.blob.{1}', resourceGroup().id, environment().suffixes.storage)]"
|
|
},
|
|
"privateDnsZoneIdFile": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.file.{1}', resourceGroup().id, environment().suffixes.storage)]"
|
|
},
|
|
"privateDnsZoneIdQueue": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.queue.{1}', resourceGroup().id, environment().suffixes.storage)]"
|
|
},
|
|
"privateDnsZoneIdWeb": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.web.{1}', resourceGroup().id, environment().suffixes.storage)]"
|
|
},
|
|
"privateDnsZoneIdNamespace": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.servicebus.windows.net', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdKeyVault": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.vaultcore.azure.net', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdContainerRegistry": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.azurecr.io', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdSynapse": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.azuresynapse.net', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdSynapseDev": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.dev.azuresynapse.net', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdSynapseSql": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.sql.azuresynapse.net', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdAnalysis": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.analysis.windows.net', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdPbiDedicated": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.pbidedicated.windows.net', resourceGroup().id)]"
|
|
},
|
|
"privateDnsZoneIdPowerQuery": {
|
|
"type": "string",
|
|
"value": "[format('{0}/providers/Microsoft.Network/privateDnsZones/privatelink.prod.powerquery.microsoft.com', resourceGroup().id)]"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"dependsOn": [
|
|
"[subscriptionResourceId('Microsoft.Resources/resourceGroups', format('{0}-global-dns', variables('name')))]",
|
|
"[extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-network', variables('name'))), 'Microsoft.Resources/deployments', 'networkServices')]"
|
|
]
|
|
},
|
|
{
|
|
"type": "Microsoft.Resources/deployments",
|
|
"apiVersion": "2020-06-01",
|
|
"name": "governanceResources",
|
|
"resourceGroup": "[format('{0}-governance', variables('name'))]",
|
|
"properties": {
|
|
"expressionEvaluationOptions": {
|
|
"scope": "inner"
|
|
},
|
|
"mode": "Incremental",
|
|
"parameters": {
|
|
"location": {
|
|
"value": "[parameters('location')]"
|
|
},
|
|
"prefix": {
|
|
"value": "[variables('name')]"
|
|
},
|
|
"tags": {
|
|
"value": "[variables('tagsJoined')]"
|
|
},
|
|
"subnetId": {
|
|
"value": "[reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-network', variables('name'))), 'Microsoft.Resources/deployments', 'networkServices'), '2020-06-01').outputs.serviceSubnet.value]"
|
|
},
|
|
"privateDnsZoneIdPurview": {
|
|
"value": "[if(parameters('enableDnsAndFirewallDeployment'), reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-global-dns', variables('name'))), 'Microsoft.Resources/deployments', 'globalDnsZones'), '2020-06-01').outputs.privateDnsZoneIdPurview.value, parameters('privateDnsZoneIdPurview'))]"
|
|
},
|
|
"privateDnsZoneIdPurviewPortal": {
|
|
"value": "[if(parameters('enableDnsAndFirewallDeployment'), reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-global-dns', variables('name'))), 'Microsoft.Resources/deployments', 'globalDnsZones'), '2020-06-01').outputs.privateDnsZoneIdPurviewPortal.value, parameters('privateDnsZoneIdPurviewPortal'))]"
|
|
},
|
|
"privateDnsZoneIdStorageBlob": {
|
|
"value": "[if(parameters('enableDnsAndFirewallDeployment'), reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-global-dns', variables('name'))), 'Microsoft.Resources/deployments', 'globalDnsZones'), '2020-06-01').outputs.privateDnsZoneIdBlob.value, parameters('privateDnsZoneIdBlob'))]"
|
|
},
|
|
"privateDnsZoneIdStorageQueue": {
|
|
"value": "[if(parameters('enableDnsAndFirewallDeployment'), reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-global-dns', variables('name'))), 'Microsoft.Resources/deployments', 'globalDnsZones'), '2020-06-01').outputs.privateDnsZoneIdQueue.value, parameters('privateDnsZoneIdQueue'))]"
|
|
},
|
|
"privateDnsZoneIdEventhubNamespace": {
|
|
"value": "[if(parameters('enableDnsAndFirewallDeployment'), reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-global-dns', variables('name'))), 'Microsoft.Resources/deployments', 'globalDnsZones'), '2020-06-01').outputs.privateDnsZoneIdNamespace.value, parameters('privateDnsZoneIdNamespace'))]"
|
|
},
|
|
"privateDnsZoneIdKeyVault": {
|
|
"value": "[if(parameters('enableDnsAndFirewallDeployment'), reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-global-dns', variables('name'))), 'Microsoft.Resources/deployments', 'globalDnsZones'), '2020-06-01').outputs.privateDnsZoneIdKeyVault.value, parameters('privateDnsZoneIdKeyVault'))]"
|
|
}
|
|
},
|
|
"template": {
|
|
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
|
|
"contentVersion": "1.0.0.0",
|
|
"metadata": {
|
|
"_generator": {
|
|
"name": "bicep",
|
|
"version": "0.4.1008.15138",
|
|
"templateHash": "9434017586183461209"
|
|
}
|
|
},
|
|
"parameters": {
|
|
"location": {
|
|
"type": "string"
|
|
},
|
|
"prefix": {
|
|
"type": "string"
|
|
},
|
|
"tags": {
|
|
"type": "object"
|
|
},
|
|
"subnetId": {
|
|
"type": "string"
|
|
},
|
|
"privateDnsZoneIdPurview": {
|
|
"type": "string",
|
|
"defaultValue": ""
|
|
},
|
|
"privateDnsZoneIdPurviewPortal": {
|
|
"type": "string",
|
|
"defaultValue": ""
|
|
},
|
|
"privateDnsZoneIdStorageBlob": {
|
|
"type": "string",
|
|
"defaultValue": ""
|
|
},
|
|
"privateDnsZoneIdStorageQueue": {
|
|
"type": "string",
|
|
"defaultValue": ""
|
|
},
|
|
"privateDnsZoneIdEventhubNamespace": {
|
|
"type": "string",
|
|
"defaultValue": ""
|
|
},
|
|
"privateDnsZoneIdKeyVault": {
|
|
"type": "string",
|
|
"defaultValue": ""
|
|
}
|
|
},
|
|
"functions": [],
|
|
"variables": {
|
|
"purview001Name": "[format('{0}-purview001', parameters('prefix'))]",
|
|
"keyvault001Name": "[format('{0}-vault001', parameters('prefix'))]"
|
|
},
|
|
"resources": [
|
|
{
|
|
"type": "Microsoft.Resources/deployments",
|
|
"apiVersion": "2020-06-01",
|
|
"name": "purview001",
|
|
"properties": {
|
|
"expressionEvaluationOptions": {
|
|
"scope": "inner"
|
|
},
|
|
"mode": "Incremental",
|
|
"parameters": {
|
|
"location": {
|
|
"value": "[parameters('location')]"
|
|
},
|
|
"tags": {
|
|
"value": "[parameters('tags')]"
|
|
},
|
|
"subnetId": {
|
|
"value": "[parameters('subnetId')]"
|
|
},
|
|
"purviewName": {
|
|
"value": "[variables('purview001Name')]"
|
|
},
|
|
"privateDnsZoneIdPurview": {
|
|
"value": "[parameters('privateDnsZoneIdPurview')]"
|
|
},
|
|
"privateDnsZoneIdPurviewPortal": {
|
|
"value": "[parameters('privateDnsZoneIdPurviewPortal')]"
|
|
},
|
|
"privateDnsZoneIdStorageBlob": {
|
|
"value": "[parameters('privateDnsZoneIdStorageBlob')]"
|
|
},
|
|
"privateDnsZoneIdStorageQueue": {
|
|
"value": "[parameters('privateDnsZoneIdStorageQueue')]"
|
|
},
|
|
"privateDnsZoneIdEventhubNamespace": {
|
|
"value": "[parameters('privateDnsZoneIdEventhubNamespace')]"
|
|
}
|
|
},
|
|
"template": {
|
|
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
|
|
"contentVersion": "1.0.0.0",
|
|
"metadata": {
|
|
"_generator": {
|
|
"name": "bicep",
|
|
"version": "0.4.1008.15138",
|
|
"templateHash": "7303854044756677568"
|
|
}
|
|
},
|
|
"parameters": {
|
|
"location": {
|
|
"type": "string"
|
|
},
|
|
"tags": {
|
|
"type": "object"
|
|
},
|
|
"subnetId": {
|
|
"type": "string"
|
|
},
|
|
"purviewName": {
|
|
"type": "string"
|
|
},
|
|
"privateDnsZoneIdPurview": {
|
|
"type": "string"
|
|
},
|
|
"privateDnsZoneIdPurviewPortal": {
|
|
"type": "string"
|
|
},
|
|
"privateDnsZoneIdStorageBlob": {
|
|
"type": "string"
|
|
},
|
|
"privateDnsZoneIdStorageQueue": {
|
|
"type": "string"
|
|
},
|
|
"privateDnsZoneIdEventhubNamespace": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"functions": [],
|
|
"variables": {
|
|
"purviewPrivateEndpointNamePortal": "[format('{0}-portal-private-endpoint', parameters('purviewName'))]",
|
|
"purviewPrivateEndpointNameAccount": "[format('{0}-account-private-endpoint', parameters('purviewName'))]",
|
|
"purviewPrivateEndpointNameBlob": "[format('{0}-private-endpoint-blob', parameters('purviewName'))]",
|
|
"purviewPrivateEndpointNameQueue": "[format('{0}-private-endpoint-queue', parameters('purviewName'))]",
|
|
"purviewPrivateEndpointNameNamespace": "[format('{0}-private-endpoint-namespace', parameters('purviewName'))]",
|
|
"purviewRegions": [
|
|
"australiaeast",
|
|
"brazilsouth",
|
|
"canadacentral",
|
|
"centralindia",
|
|
"eastus",
|
|
"eastus2",
|
|
"northeurope",
|
|
"southcentralus",
|
|
"southeastasia",
|
|
"uksouth",
|
|
"westcentralus",
|
|
"westeurope",
|
|
"westus2"
|
|
]
|
|
},
|
|
"resources": [
|
|
{
|
|
"type": "Microsoft.Purview/accounts",
|
|
"apiVersion": "2021-07-01",
|
|
"name": "[parameters('purviewName')]",
|
|
"location": "[if(contains(variables('purviewRegions'), parameters('location')), parameters('location'), 'northeurope')]",
|
|
"tags": "[parameters('tags')]",
|
|
"identity": {
|
|
"type": "SystemAssigned"
|
|
},
|
|
"properties": {
|
|
"cloudConnectors": {},
|
|
"friendlyName": "[parameters('purviewName')]",
|
|
"managedResourceGroupName": "[parameters('purviewName')]",
|
|
"publicNetworkAccess": "Disabled"
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.Network/privateEndpoints",
|
|
"apiVersion": "2020-11-01",
|
|
"name": "[variables('purviewPrivateEndpointNamePortal')]",
|
|
"location": "[parameters('location')]",
|
|
"tags": "[parameters('tags')]",
|
|
"properties": {
|
|
"manualPrivateLinkServiceConnections": [],
|
|
"privateLinkServiceConnections": [
|
|
{
|
|
"name": "[variables('purviewPrivateEndpointNamePortal')]",
|
|
"properties": {
|
|
"groupIds": [
|
|
"portal"
|
|
],
|
|
"privateLinkServiceId": "[resourceId('Microsoft.Purview/accounts', parameters('purviewName'))]",
|
|
"requestMessage": ""
|
|
}
|
|
}
|
|
],
|
|
"subnet": {
|
|
"id": "[parameters('subnetId')]"
|
|
}
|
|
},
|
|
"dependsOn": [
|
|
"[resourceId('Microsoft.Purview/accounts', parameters('purviewName'))]"
|
|
]
|
|
},
|
|
{
|
|
"condition": "[not(empty(parameters('privateDnsZoneIdPurviewPortal')))]",
|
|
"type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups",
|
|
"apiVersion": "2020-11-01",
|
|
"name": "[format('{0}/{1}', variables('purviewPrivateEndpointNamePortal'), 'default')]",
|
|
"properties": {
|
|
"privateDnsZoneConfigs": [
|
|
{
|
|
"name": "[format('{0}-arecord', variables('purviewPrivateEndpointNamePortal'))]",
|
|
"properties": {
|
|
"privateDnsZoneId": "[parameters('privateDnsZoneIdPurviewPortal')]"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"dependsOn": [
|
|
"[resourceId('Microsoft.Network/privateEndpoints', variables('purviewPrivateEndpointNamePortal'))]"
|
|
]
|
|
},
|
|
{
|
|
"type": "Microsoft.Network/privateEndpoints",
|
|
"apiVersion": "2020-11-01",
|
|
"name": "[variables('purviewPrivateEndpointNameAccount')]",
|
|
"location": "[parameters('location')]",
|
|
"tags": "[parameters('tags')]",
|
|
"properties": {
|
|
"manualPrivateLinkServiceConnections": [],
|
|
"privateLinkServiceConnections": [
|
|
{
|
|
"name": "[variables('purviewPrivateEndpointNameAccount')]",
|
|
"properties": {
|
|
"groupIds": [
|
|
"account"
|
|
],
|
|
"privateLinkServiceId": "[resourceId('Microsoft.Purview/accounts', parameters('purviewName'))]",
|
|
"requestMessage": ""
|
|
}
|
|
}
|
|
],
|
|
"subnet": {
|
|
"id": "[parameters('subnetId')]"
|
|
}
|
|
},
|
|
"dependsOn": [
|
|
"[resourceId('Microsoft.Purview/accounts', parameters('purviewName'))]"
|
|
]
|
|
},
|
|
{
|
|
"condition": "[not(empty(parameters('privateDnsZoneIdPurview')))]",
|
|
"type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups",
|
|
"apiVersion": "2020-11-01",
|
|
"name": "[format('{0}/{1}', variables('purviewPrivateEndpointNameAccount'), 'default')]",
|
|
"properties": {
|
|
"privateDnsZoneConfigs": [
|
|
{
|
|
"name": "[format('{0}-arecord', variables('purviewPrivateEndpointNameAccount'))]",
|
|
"properties": {
|
|
"privateDnsZoneId": "[parameters('privateDnsZoneIdPurview')]"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"dependsOn": [
|
|
"[resourceId('Microsoft.Network/privateEndpoints', variables('purviewPrivateEndpointNameAccount'))]"
|
|
]
|
|
},
|
|
{
|
|
"type": "Microsoft.Network/privateEndpoints",
|
|
"apiVersion": "2020-11-01",
|
|
"name": "[variables('purviewPrivateEndpointNameBlob')]",
|
|
"location": "[parameters('location')]",
|
|
"tags": "[parameters('tags')]",
|
|
"properties": {
|
|
"manualPrivateLinkServiceConnections": [],
|
|
"privateLinkServiceConnections": [
|
|
{
|
|
"name": "[variables('purviewPrivateEndpointNameBlob')]",
|
|
"properties": {
|
|
"groupIds": [
|
|
"blob"
|
|
],
|
|
"privateLinkServiceId": "[reference(resourceId('Microsoft.Purview/accounts', parameters('purviewName'))).managedResources.storageAccount]",
|
|
"requestMessage": ""
|
|
}
|
|
}
|
|
],
|
|
"subnet": {
|
|
"id": "[parameters('subnetId')]"
|
|
}
|
|
},
|
|
"dependsOn": [
|
|
"[resourceId('Microsoft.Purview/accounts', parameters('purviewName'))]"
|
|
]
|
|
},
|
|
{
|
|
"condition": "[not(empty(parameters('privateDnsZoneIdStorageBlob')))]",
|
|
"type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups",
|
|
"apiVersion": "2020-11-01",
|
|
"name": "[format('{0}/{1}', variables('purviewPrivateEndpointNameBlob'), 'default')]",
|
|
"properties": {
|
|
"privateDnsZoneConfigs": [
|
|
{
|
|
"name": "[format('{0}-arecord', variables('purviewPrivateEndpointNameBlob'))]",
|
|
"properties": {
|
|
"privateDnsZoneId": "[parameters('privateDnsZoneIdStorageBlob')]"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"dependsOn": [
|
|
"[resourceId('Microsoft.Network/privateEndpoints', variables('purviewPrivateEndpointNameBlob'))]"
|
|
]
|
|
},
|
|
{
|
|
"type": "Microsoft.Network/privateEndpoints",
|
|
"apiVersion": "2020-11-01",
|
|
"name": "[variables('purviewPrivateEndpointNameQueue')]",
|
|
"location": "[parameters('location')]",
|
|
"tags": "[parameters('tags')]",
|
|
"properties": {
|
|
"manualPrivateLinkServiceConnections": [],
|
|
"privateLinkServiceConnections": [
|
|
{
|
|
"name": "[variables('purviewPrivateEndpointNameQueue')]",
|
|
"properties": {
|
|
"groupIds": [
|
|
"queue"
|
|
],
|
|
"privateLinkServiceId": "[reference(resourceId('Microsoft.Purview/accounts', parameters('purviewName'))).managedResources.storageAccount]",
|
|
"requestMessage": ""
|
|
}
|
|
}
|
|
],
|
|
"subnet": {
|
|
"id": "[parameters('subnetId')]"
|
|
}
|
|
},
|
|
"dependsOn": [
|
|
"[resourceId('Microsoft.Purview/accounts', parameters('purviewName'))]"
|
|
]
|
|
},
|
|
{
|
|
"condition": "[not(empty(parameters('privateDnsZoneIdStorageQueue')))]",
|
|
"type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups",
|
|
"apiVersion": "2020-11-01",
|
|
"name": "[format('{0}/{1}', variables('purviewPrivateEndpointNameQueue'), 'default')]",
|
|
"properties": {
|
|
"privateDnsZoneConfigs": [
|
|
{
|
|
"name": "[format('{0}-arecord', variables('purviewPrivateEndpointNameQueue'))]",
|
|
"properties": {
|
|
"privateDnsZoneId": "[parameters('privateDnsZoneIdStorageQueue')]"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"dependsOn": [
|
|
"[resourceId('Microsoft.Network/privateEndpoints', variables('purviewPrivateEndpointNameQueue'))]"
|
|
]
|
|
},
|
|
{
|
|
"type": "Microsoft.Network/privateEndpoints",
|
|
"apiVersion": "2020-11-01",
|
|
"name": "[variables('purviewPrivateEndpointNameNamespace')]",
|
|
"location": "[parameters('location')]",
|
|
"tags": "[parameters('tags')]",
|
|
"properties": {
|
|
"manualPrivateLinkServiceConnections": [],
|
|
"privateLinkServiceConnections": [
|
|
{
|
|
"name": "[variables('purviewPrivateEndpointNameNamespace')]",
|
|
"properties": {
|
|
"groupIds": [
|
|
"namespace"
|
|
],
|
|
"privateLinkServiceId": "[reference(resourceId('Microsoft.Purview/accounts', parameters('purviewName'))).managedResources.eventHubNamespace]",
|
|
"requestMessage": ""
|
|
}
|
|
}
|
|
],
|
|
"subnet": {
|
|
"id": "[parameters('subnetId')]"
|
|
}
|
|
},
|
|
"dependsOn": [
|
|
"[resourceId('Microsoft.Purview/accounts', parameters('purviewName'))]"
|
|
]
|
|
},
|
|
{
|
|
"condition": "[not(empty(parameters('privateDnsZoneIdEventhubNamespace')))]",
|
|
"type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups",
|
|
"apiVersion": "2020-11-01",
|
|
"name": "[format('{0}/{1}', variables('purviewPrivateEndpointNameNamespace'), 'default')]",
|
|
"properties": {
|
|
"privateDnsZoneConfigs": [
|
|
{
|
|
"name": "[format('{0}-arecord', variables('purviewPrivateEndpointNameNamespace'))]",
|
|
"properties": {
|
|
"privateDnsZoneId": "[parameters('privateDnsZoneIdEventhubNamespace')]"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"dependsOn": [
|
|
"[resourceId('Microsoft.Network/privateEndpoints', variables('purviewPrivateEndpointNameNamespace'))]"
|
|
]
|
|
}
|
|
],
|
|
"outputs": {
|
|
"purviewId": {
|
|
"type": "string",
|
|
"value": "[resourceId('Microsoft.Purview/accounts', parameters('purviewName'))]"
|
|
},
|
|
"purviewManagedStorageId": {
|
|
"type": "string",
|
|
"value": "[reference(resourceId('Microsoft.Purview/accounts', parameters('purviewName'))).managedResources.storageAccount]"
|
|
},
|
|
"purviewManagedEventHubId": {
|
|
"type": "string",
|
|
"value": "[reference(resourceId('Microsoft.Purview/accounts', parameters('purviewName'))).managedResources.eventHubNamespace]"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.Resources/deployments",
|
|
"apiVersion": "2020-06-01",
|
|
"name": "keyVault001",
|
|
"properties": {
|
|
"expressionEvaluationOptions": {
|
|
"scope": "inner"
|
|
},
|
|
"mode": "Incremental",
|
|
"parameters": {
|
|
"location": {
|
|
"value": "[parameters('location')]"
|
|
},
|
|
"tags": {
|
|
"value": "[parameters('tags')]"
|
|
},
|
|
"subnetId": {
|
|
"value": "[parameters('subnetId')]"
|
|
},
|
|
"keyvaultName": {
|
|
"value": "[variables('keyvault001Name')]"
|
|
},
|
|
"privateDnsZoneIdKeyVault": {
|
|
"value": "[parameters('privateDnsZoneIdKeyVault')]"
|
|
}
|
|
},
|
|
"template": {
|
|
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
|
|
"contentVersion": "1.0.0.0",
|
|
"metadata": {
|
|
"_generator": {
|
|
"name": "bicep",
|
|
"version": "0.4.1008.15138",
|
|
"templateHash": "6717429930577625102"
|
|
}
|
|
},
|
|
"parameters": {
|
|
"location": {
|
|
"type": "string"
|
|
},
|
|
"tags": {
|
|
"type": "object"
|
|
},
|
|
"subnetId": {
|
|
"type": "string"
|
|
},
|
|
"keyvaultName": {
|
|
"type": "string"
|
|
},
|
|
"privateDnsZoneIdKeyVault": {
|
|
"type": "string",
|
|
"defaultValue": ""
|
|
}
|
|
},
|
|
"functions": [],
|
|
"variables": {
|
|
"keyVaultPrivateEndpointName": "[format('{0}-private-endpoint', parameters('keyvaultName'))]"
|
|
},
|
|
"resources": [
|
|
{
|
|
"type": "Microsoft.KeyVault/vaults",
|
|
"apiVersion": "2021-04-01-preview",
|
|
"name": "[parameters('keyvaultName')]",
|
|
"location": "[parameters('location')]",
|
|
"tags": "[parameters('tags')]",
|
|
"properties": {
|
|
"accessPolicies": [],
|
|
"createMode": "default",
|
|
"enabledForDeployment": false,
|
|
"enabledForDiskEncryption": false,
|
|
"enabledForTemplateDeployment": false,
|
|
"enablePurgeProtection": true,
|
|
"enableRbacAuthorization": true,
|
|
"enableSoftDelete": true,
|
|
"networkAcls": {
|
|
"bypass": "AzureServices",
|
|
"defaultAction": "Deny",
|
|
"ipRules": [],
|
|
"virtualNetworkRules": []
|
|
},
|
|
"sku": {
|
|
"family": "A",
|
|
"name": "standard"
|
|
},
|
|
"softDeleteRetentionInDays": 7,
|
|
"tenantId": "[subscription().tenantId]"
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.Network/privateEndpoints",
|
|
"apiVersion": "2020-11-01",
|
|
"name": "[variables('keyVaultPrivateEndpointName')]",
|
|
"location": "[parameters('location')]",
|
|
"tags": "[parameters('tags')]",
|
|
"properties": {
|
|
"manualPrivateLinkServiceConnections": [],
|
|
"privateLinkServiceConnections": [
|
|
{
|
|
"name": "[variables('keyVaultPrivateEndpointName')]",
|
|
"properties": {
|
|
"groupIds": [
|
|
"vault"
|
|
],
|
|
"privateLinkServiceId": "[resourceId('Microsoft.KeyVault/vaults', parameters('keyvaultName'))]",
|
|
"requestMessage": ""
|
|
}
|
|
}
|
|
],
|
|
"subnet": {
|
|
"id": "[parameters('subnetId')]"
|
|
}
|
|
},
|
|
"dependsOn": [
|
|
"[resourceId('Microsoft.KeyVault/vaults', parameters('keyvaultName'))]"
|
|
]
|
|
},
|
|
{
|
|
"condition": "[not(empty(parameters('privateDnsZoneIdKeyVault')))]",
|
|
"type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups",
|
|
"apiVersion": "2020-11-01",
|
|
"name": "[format('{0}/{1}', variables('keyVaultPrivateEndpointName'), 'default')]",
|
|
"properties": {
|
|
"privateDnsZoneConfigs": [
|
|
{
|
|
"name": "[format('{0}-arecord', variables('keyVaultPrivateEndpointName'))]",
|
|
"properties": {
|
|
"privateDnsZoneId": "[parameters('privateDnsZoneIdKeyVault')]"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"dependsOn": [
|
|
"[resourceId('Microsoft.Network/privateEndpoints', variables('keyVaultPrivateEndpointName'))]"
|
|
]
|
|
}
|
|
],
|
|
"outputs": {
|
|
"keyvaultId": {
|
|
"type": "string",
|
|
"value": "[resourceId('Microsoft.KeyVault/vaults', parameters('keyvaultName'))]"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.Resources/deployments",
|
|
"apiVersion": "2020-06-01",
|
|
"name": "purviewKeyVaultRoleAssignment",
|
|
"properties": {
|
|
"expressionEvaluationOptions": {
|
|
"scope": "inner"
|
|
},
|
|
"mode": "Incremental",
|
|
"parameters": {
|
|
"purviewId": {
|
|
"value": "[reference(resourceId('Microsoft.Resources/deployments', 'purview001'), '2020-06-01').outputs.purviewId.value]"
|
|
},
|
|
"keyVaultId": {
|
|
"value": "[reference(resourceId('Microsoft.Resources/deployments', 'keyVault001'), '2020-06-01').outputs.keyvaultId.value]"
|
|
}
|
|
},
|
|
"template": {
|
|
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
|
|
"contentVersion": "1.0.0.0",
|
|
"metadata": {
|
|
"_generator": {
|
|
"name": "bicep",
|
|
"version": "0.4.1008.15138",
|
|
"templateHash": "15661358800544907189"
|
|
}
|
|
},
|
|
"parameters": {
|
|
"purviewId": {
|
|
"type": "string"
|
|
},
|
|
"keyVaultId": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"functions": [],
|
|
"variables": {
|
|
"keyVaultName": "[if(greaterOrEquals(length(split(parameters('keyVaultId'), '/')), 9), last(split(parameters('keyVaultId'), '/')), 'incorrectSegmentLength')]",
|
|
"purviewSubscriptionId": "[if(greaterOrEquals(length(split(parameters('purviewId'), '/')), 9), split(parameters('purviewId'), '/')[2], subscription().subscriptionId)]",
|
|
"purviewResourceGroupName": "[if(greaterOrEquals(length(split(parameters('purviewId'), '/')), 9), split(parameters('purviewId'), '/')[4], resourceGroup().name)]",
|
|
"purviewName": "[if(greaterOrEquals(length(split(parameters('purviewId'), '/')), 9), last(split(parameters('purviewId'), '/')), 'incorrectSegmentLength')]"
|
|
},
|
|
"resources": [
|
|
{
|
|
"type": "Microsoft.Authorization/roleAssignments",
|
|
"apiVersion": "2020-04-01-preview",
|
|
"scope": "[format('Microsoft.KeyVault/vaults/{0}', variables('keyVaultName'))]",
|
|
"name": "[guid(uniqueString(resourceId('Microsoft.KeyVault/vaults', variables('keyVaultName')), extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', variables('purviewSubscriptionId'), variables('purviewResourceGroupName')), 'Microsoft.Purview/accounts', variables('purviewName'))))]",
|
|
"properties": {
|
|
"roleDefinitionId": "[resourceId('Microsoft.Authorization/roleDefinitions', '4633458b-17de-408a-b874-0445c86b69e6')]",
|
|
"principalId": "[reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', variables('purviewSubscriptionId'), variables('purviewResourceGroupName')), 'Microsoft.Purview/accounts', variables('purviewName')), '2020-12-01-preview', 'full').identity.principalId]",
|
|
"principalType": "ServicePrincipal"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"dependsOn": [
|
|
"[resourceId('Microsoft.Resources/deployments', 'keyVault001')]",
|
|
"[resourceId('Microsoft.Resources/deployments', 'purview001')]"
|
|
]
|
|
}
|
|
],
|
|
"outputs": {
|
|
"purviewId": {
|
|
"type": "string",
|
|
"value": "[reference(resourceId('Microsoft.Resources/deployments', 'purview001'), '2020-06-01').outputs.purviewId.value]"
|
|
},
|
|
"purviewManagedStorageId": {
|
|
"type": "string",
|
|
"value": "[reference(resourceId('Microsoft.Resources/deployments', 'purview001'), '2020-06-01').outputs.purviewManagedStorageId.value]"
|
|
},
|
|
"purviewManagedEventHubId": {
|
|
"type": "string",
|
|
"value": "[reference(resourceId('Microsoft.Resources/deployments', 'purview001'), '2020-06-01').outputs.purviewManagedEventHubId.value]"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"dependsOn": [
|
|
"[extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-global-dns', variables('name'))), 'Microsoft.Resources/deployments', 'globalDnsZones')]",
|
|
"[subscriptionResourceId('Microsoft.Resources/resourceGroups', format('{0}-governance', variables('name')))]",
|
|
"[extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-network', variables('name'))), 'Microsoft.Resources/deployments', 'networkServices')]"
|
|
]
|
|
},
|
|
{
|
|
"type": "Microsoft.Resources/deployments",
|
|
"apiVersion": "2020-06-01",
|
|
"name": "containerResources",
|
|
"resourceGroup": "[format('{0}-container', variables('name'))]",
|
|
"properties": {
|
|
"expressionEvaluationOptions": {
|
|
"scope": "inner"
|
|
},
|
|
"mode": "Incremental",
|
|
"parameters": {
|
|
"location": {
|
|
"value": "[parameters('location')]"
|
|
},
|
|
"prefix": {
|
|
"value": "[variables('name')]"
|
|
},
|
|
"tags": {
|
|
"value": "[variables('tagsJoined')]"
|
|
},
|
|
"subnetId": {
|
|
"value": "[reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-network', variables('name'))), 'Microsoft.Resources/deployments', 'networkServices'), '2020-06-01').outputs.serviceSubnet.value]"
|
|
},
|
|
"privateDnsZoneIdContainerRegistry": {
|
|
"value": "[if(parameters('enableDnsAndFirewallDeployment'), reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-global-dns', variables('name'))), 'Microsoft.Resources/deployments', 'globalDnsZones'), '2020-06-01').outputs.privateDnsZoneIdContainerRegistry.value, parameters('privateDnsZoneIdContainerRegistry'))]"
|
|
}
|
|
},
|
|
"template": {
|
|
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
|
|
"contentVersion": "1.0.0.0",
|
|
"metadata": {
|
|
"_generator": {
|
|
"name": "bicep",
|
|
"version": "0.4.1008.15138",
|
|
"templateHash": "7590531782081910607"
|
|
}
|
|
},
|
|
"parameters": {
|
|
"location": {
|
|
"type": "string"
|
|
},
|
|
"prefix": {
|
|
"type": "string"
|
|
},
|
|
"tags": {
|
|
"type": "object"
|
|
},
|
|
"subnetId": {
|
|
"type": "string"
|
|
},
|
|
"privateDnsZoneIdContainerRegistry": {
|
|
"type": "string",
|
|
"defaultValue": ""
|
|
}
|
|
},
|
|
"functions": [],
|
|
"variables": {
|
|
"containerRegistry001Name": "[format('{0}-containerregistry001', parameters('prefix'))]"
|
|
},
|
|
"resources": [
|
|
{
|
|
"type": "Microsoft.Resources/deployments",
|
|
"apiVersion": "2020-06-01",
|
|
"name": "containerRegistry001",
|
|
"properties": {
|
|
"expressionEvaluationOptions": {
|
|
"scope": "inner"
|
|
},
|
|
"mode": "Incremental",
|
|
"parameters": {
|
|
"location": {
|
|
"value": "[parameters('location')]"
|
|
},
|
|
"tags": {
|
|
"value": "[parameters('tags')]"
|
|
},
|
|
"subnetId": {
|
|
"value": "[parameters('subnetId')]"
|
|
},
|
|
"containerRegistryName": {
|
|
"value": "[variables('containerRegistry001Name')]"
|
|
},
|
|
"privateDnsZoneIdContainerRegistry": {
|
|
"value": "[parameters('privateDnsZoneIdContainerRegistry')]"
|
|
}
|
|
},
|
|
"template": {
|
|
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
|
|
"contentVersion": "1.0.0.0",
|
|
"metadata": {
|
|
"_generator": {
|
|
"name": "bicep",
|
|
"version": "0.4.1008.15138",
|
|
"templateHash": "15554382069101917536"
|
|
}
|
|
},
|
|
"parameters": {
|
|
"location": {
|
|
"type": "string"
|
|
},
|
|
"tags": {
|
|
"type": "object"
|
|
},
|
|
"subnetId": {
|
|
"type": "string"
|
|
},
|
|
"containerRegistryName": {
|
|
"type": "string"
|
|
},
|
|
"privateDnsZoneIdContainerRegistry": {
|
|
"type": "string",
|
|
"defaultValue": ""
|
|
}
|
|
},
|
|
"functions": [],
|
|
"variables": {
|
|
"containerRegistryNameCleaned": "[replace(parameters('containerRegistryName'), '-', '')]",
|
|
"containerRegistryPrivateEndpointName": "[format('{0}-private-endpoint', variables('containerRegistryNameCleaned'))]"
|
|
},
|
|
"resources": [
|
|
{
|
|
"type": "Microsoft.ContainerRegistry/registries",
|
|
"apiVersion": "2020-11-01-preview",
|
|
"name": "[variables('containerRegistryNameCleaned')]",
|
|
"location": "[parameters('location')]",
|
|
"tags": "[parameters('tags')]",
|
|
"identity": {
|
|
"type": "SystemAssigned"
|
|
},
|
|
"sku": {
|
|
"name": "Premium"
|
|
},
|
|
"properties": {
|
|
"adminUserEnabled": false,
|
|
"anonymousPullEnabled": true,
|
|
"dataEndpointEnabled": false,
|
|
"networkRuleBypassOptions": "None",
|
|
"networkRuleSet": {
|
|
"defaultAction": "Deny",
|
|
"ipRules": [],
|
|
"virtualNetworkRules": []
|
|
},
|
|
"policies": {
|
|
"quarantinePolicy": {
|
|
"status": "enabled"
|
|
},
|
|
"retentionPolicy": {
|
|
"status": "enabled",
|
|
"days": 7
|
|
},
|
|
"trustPolicy": {
|
|
"status": "disabled",
|
|
"type": "Notary"
|
|
}
|
|
},
|
|
"publicNetworkAccess": "Disabled"
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.Network/privateEndpoints",
|
|
"apiVersion": "2020-11-01",
|
|
"name": "[variables('containerRegistryPrivateEndpointName')]",
|
|
"location": "[parameters('location')]",
|
|
"tags": "[parameters('tags')]",
|
|
"properties": {
|
|
"manualPrivateLinkServiceConnections": [],
|
|
"privateLinkServiceConnections": [
|
|
{
|
|
"name": "[variables('containerRegistryPrivateEndpointName')]",
|
|
"properties": {
|
|
"groupIds": [
|
|
"registry"
|
|
],
|
|
"privateLinkServiceId": "[resourceId('Microsoft.ContainerRegistry/registries', variables('containerRegistryNameCleaned'))]",
|
|
"requestMessage": ""
|
|
}
|
|
}
|
|
],
|
|
"subnet": {
|
|
"id": "[parameters('subnetId')]"
|
|
}
|
|
},
|
|
"dependsOn": [
|
|
"[resourceId('Microsoft.ContainerRegistry/registries', variables('containerRegistryNameCleaned'))]"
|
|
]
|
|
},
|
|
{
|
|
"condition": "[not(empty(parameters('privateDnsZoneIdContainerRegistry')))]",
|
|
"type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups",
|
|
"apiVersion": "2020-11-01",
|
|
"name": "[format('{0}/{1}', variables('containerRegistryPrivateEndpointName'), 'default')]",
|
|
"properties": {
|
|
"privateDnsZoneConfigs": [
|
|
{
|
|
"name": "[format('{0}-arecord', variables('containerRegistryPrivateEndpointName'))]",
|
|
"properties": {
|
|
"privateDnsZoneId": "[parameters('privateDnsZoneIdContainerRegistry')]"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"dependsOn": [
|
|
"[resourceId('Microsoft.Network/privateEndpoints', variables('containerRegistryPrivateEndpointName'))]"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"dependsOn": [
|
|
"[subscriptionResourceId('Microsoft.Resources/resourceGroups', format('{0}-container', variables('name')))]",
|
|
"[extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-global-dns', variables('name'))), 'Microsoft.Resources/deployments', 'globalDnsZones')]",
|
|
"[extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-network', variables('name'))), 'Microsoft.Resources/deployments', 'networkServices')]"
|
|
]
|
|
},
|
|
{
|
|
"type": "Microsoft.Resources/deployments",
|
|
"apiVersion": "2020-06-01",
|
|
"name": "consumptionResources",
|
|
"resourceGroup": "[format('{0}-consumption', variables('name'))]",
|
|
"properties": {
|
|
"expressionEvaluationOptions": {
|
|
"scope": "inner"
|
|
},
|
|
"mode": "Incremental",
|
|
"parameters": {
|
|
"location": {
|
|
"value": "[parameters('location')]"
|
|
},
|
|
"prefix": {
|
|
"value": "[variables('name')]"
|
|
},
|
|
"tags": {
|
|
"value": "[variables('tagsJoined')]"
|
|
},
|
|
"subnetId": {
|
|
"value": "[reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-network', variables('name'))), 'Microsoft.Resources/deployments', 'networkServices'), '2020-06-01').outputs.serviceSubnet.value]"
|
|
},
|
|
"privateDnsZoneIdSynapseprivatelinkhub": {
|
|
"value": "[if(parameters('enableDnsAndFirewallDeployment'), reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-global-dns', variables('name'))), 'Microsoft.Resources/deployments', 'globalDnsZones'), '2020-06-01').outputs.privateDnsZoneIdSynapse.value, parameters('privateDnsZoneIdSynapse'))]"
|
|
},
|
|
"privateDnsZoneIdAnalysis": {
|
|
"value": "[if(parameters('enableDnsAndFirewallDeployment'), reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-global-dns', variables('name'))), 'Microsoft.Resources/deployments', 'globalDnsZones'), '2020-06-01').outputs.privateDnsZoneIdAnalysis.value, '')]"
|
|
},
|
|
"privateDnsZoneIdPbiDedicated": {
|
|
"value": "[if(parameters('enableDnsAndFirewallDeployment'), reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-global-dns', variables('name'))), 'Microsoft.Resources/deployments', 'globalDnsZones'), '2020-06-01').outputs.privateDnsZoneIdPbiDedicated.value, '')]"
|
|
},
|
|
"privateDnsZoneIdPowerQuery": {
|
|
"value": "[if(parameters('enableDnsAndFirewallDeployment'), reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-global-dns', variables('name'))), 'Microsoft.Resources/deployments', 'globalDnsZones'), '2020-06-01').outputs.privateDnsZoneIdPowerQuery.value, '')]"
|
|
}
|
|
},
|
|
"template": {
|
|
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
|
|
"contentVersion": "1.0.0.0",
|
|
"metadata": {
|
|
"_generator": {
|
|
"name": "bicep",
|
|
"version": "0.4.1008.15138",
|
|
"templateHash": "15755202774636359425"
|
|
}
|
|
},
|
|
"parameters": {
|
|
"location": {
|
|
"type": "string"
|
|
},
|
|
"prefix": {
|
|
"type": "string"
|
|
},
|
|
"tags": {
|
|
"type": "object"
|
|
},
|
|
"subnetId": {
|
|
"type": "string"
|
|
},
|
|
"privateDnsZoneIdSynapseprivatelinkhub": {
|
|
"type": "string",
|
|
"defaultValue": ""
|
|
},
|
|
"privateDnsZoneIdAnalysis": {
|
|
"type": "string",
|
|
"defaultValue": ""
|
|
},
|
|
"privateDnsZoneIdPbiDedicated": {
|
|
"type": "string",
|
|
"defaultValue": ""
|
|
},
|
|
"privateDnsZoneIdPowerQuery": {
|
|
"type": "string",
|
|
"defaultValue": ""
|
|
}
|
|
},
|
|
"functions": [],
|
|
"variables": {
|
|
"synapsePrivatelinkHub001Name": "[format('{0}-synapseplhub001', parameters('prefix'))]",
|
|
"powerbiPrivateLink001Name": "[format('{0}-powerbipl001', parameters('prefix'))]"
|
|
},
|
|
"resources": [
|
|
{
|
|
"type": "Microsoft.Resources/deployments",
|
|
"apiVersion": "2020-06-01",
|
|
"name": "synapsePrivateLinkHub001",
|
|
"properties": {
|
|
"expressionEvaluationOptions": {
|
|
"scope": "inner"
|
|
},
|
|
"mode": "Incremental",
|
|
"parameters": {
|
|
"location": {
|
|
"value": "[parameters('location')]"
|
|
},
|
|
"tags": {
|
|
"value": "[parameters('tags')]"
|
|
},
|
|
"subnetId": {
|
|
"value": "[parameters('subnetId')]"
|
|
},
|
|
"synapsePrivatelinkHubName": {
|
|
"value": "[variables('synapsePrivatelinkHub001Name')]"
|
|
},
|
|
"privateDnsZoneIdSynapseprivatelinkhub": {
|
|
"value": "[parameters('privateDnsZoneIdSynapseprivatelinkhub')]"
|
|
}
|
|
},
|
|
"template": {
|
|
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
|
|
"contentVersion": "1.0.0.0",
|
|
"metadata": {
|
|
"_generator": {
|
|
"name": "bicep",
|
|
"version": "0.4.1008.15138",
|
|
"templateHash": "12027290728982839572"
|
|
}
|
|
},
|
|
"parameters": {
|
|
"location": {
|
|
"type": "string"
|
|
},
|
|
"tags": {
|
|
"type": "object"
|
|
},
|
|
"subnetId": {
|
|
"type": "string"
|
|
},
|
|
"synapsePrivatelinkHubName": {
|
|
"type": "string"
|
|
},
|
|
"privateDnsZoneIdSynapseprivatelinkhub": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"functions": [],
|
|
"variables": {
|
|
"synapsePrivatelinkHubNameCleaned": "[replace(parameters('synapsePrivatelinkHubName'), '-', '')]",
|
|
"synapsePrivatelinkHubPrivateEndpointName": "[format('{0}-private-endpoint', variables('synapsePrivatelinkHubNameCleaned'))]"
|
|
},
|
|
"resources": [
|
|
{
|
|
"type": "Microsoft.Synapse/privateLinkHubs",
|
|
"apiVersion": "2021-03-01",
|
|
"name": "[variables('synapsePrivatelinkHubNameCleaned')]",
|
|
"location": "[parameters('location')]",
|
|
"tags": "[parameters('tags')]",
|
|
"properties": {}
|
|
},
|
|
{
|
|
"type": "Microsoft.Network/privateEndpoints",
|
|
"apiVersion": "2020-11-01",
|
|
"name": "[variables('synapsePrivatelinkHubPrivateEndpointName')]",
|
|
"location": "[parameters('location')]",
|
|
"tags": "[parameters('tags')]",
|
|
"properties": {
|
|
"manualPrivateLinkServiceConnections": [],
|
|
"privateLinkServiceConnections": [
|
|
{
|
|
"name": "[variables('synapsePrivatelinkHubPrivateEndpointName')]",
|
|
"properties": {
|
|
"groupIds": [
|
|
"web"
|
|
],
|
|
"privateLinkServiceId": "[resourceId('Microsoft.Synapse/privateLinkHubs', variables('synapsePrivatelinkHubNameCleaned'))]",
|
|
"requestMessage": ""
|
|
}
|
|
}
|
|
],
|
|
"subnet": {
|
|
"id": "[parameters('subnetId')]"
|
|
}
|
|
},
|
|
"dependsOn": [
|
|
"[resourceId('Microsoft.Synapse/privateLinkHubs', variables('synapsePrivatelinkHubNameCleaned'))]"
|
|
]
|
|
},
|
|
{
|
|
"condition": "[not(empty(parameters('privateDnsZoneIdSynapseprivatelinkhub')))]",
|
|
"type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups",
|
|
"apiVersion": "2020-11-01",
|
|
"name": "[format('{0}/{1}', variables('synapsePrivatelinkHubPrivateEndpointName'), 'default')]",
|
|
"properties": {
|
|
"privateDnsZoneConfigs": [
|
|
{
|
|
"name": "[format('{0}-arecord', variables('synapsePrivatelinkHubPrivateEndpointName'))]",
|
|
"properties": {
|
|
"privateDnsZoneId": "[parameters('privateDnsZoneIdSynapseprivatelinkhub')]"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"dependsOn": [
|
|
"[resourceId('Microsoft.Network/privateEndpoints', variables('synapsePrivatelinkHubPrivateEndpointName'))]"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"dependsOn": [
|
|
"[subscriptionResourceId('Microsoft.Resources/resourceGroups', format('{0}-consumption', variables('name')))]",
|
|
"[extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-global-dns', variables('name'))), 'Microsoft.Resources/deployments', 'globalDnsZones')]",
|
|
"[extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-network', variables('name'))), 'Microsoft.Resources/deployments', 'networkServices')]"
|
|
]
|
|
},
|
|
{
|
|
"type": "Microsoft.Resources/deployments",
|
|
"apiVersion": "2020-06-01",
|
|
"name": "automationResources",
|
|
"resourceGroup": "[format('{0}-automation', variables('name'))]",
|
|
"properties": {
|
|
"expressionEvaluationOptions": {
|
|
"scope": "inner"
|
|
},
|
|
"mode": "Incremental",
|
|
"parameters": {
|
|
"location": {
|
|
"value": "[parameters('location')]"
|
|
},
|
|
"tags": {
|
|
"value": "[variables('tagsJoined')]"
|
|
},
|
|
"prefix": {
|
|
"value": "[variables('name')]"
|
|
},
|
|
"purviewId": {
|
|
"value": "[reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-governance', variables('name'))), 'Microsoft.Resources/deployments', 'governanceResources'), '2020-06-01').outputs.purviewId.value]"
|
|
},
|
|
"purviewRootCollectionAdminObjectIds": {
|
|
"value": "[parameters('purviewRootCollectionAdminObjectIds')]"
|
|
}
|
|
},
|
|
"template": {
|
|
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
|
|
"contentVersion": "1.0.0.0",
|
|
"metadata": {
|
|
"_generator": {
|
|
"name": "bicep",
|
|
"version": "0.4.1008.15138",
|
|
"templateHash": "3427473663551644887"
|
|
}
|
|
},
|
|
"parameters": {
|
|
"location": {
|
|
"type": "string"
|
|
},
|
|
"prefix": {
|
|
"type": "string"
|
|
},
|
|
"tags": {
|
|
"type": "object"
|
|
},
|
|
"purviewId": {
|
|
"type": "string"
|
|
},
|
|
"purviewRootCollectionAdminObjectIds": {
|
|
"type": "array",
|
|
"defaultValue": []
|
|
}
|
|
},
|
|
"functions": [],
|
|
"variables": {
|
|
"userAssignedIdentity001Name": "[format('{0}-uai001', parameters('prefix'))]",
|
|
"purviewSubscriptionId": "[if(greaterOrEquals(length(split(parameters('purviewId'), '/')), 9), split(parameters('purviewId'), '/')[2], subscription().subscriptionId)]",
|
|
"purviewResourceGroupName": "[if(greaterOrEquals(length(split(parameters('purviewId'), '/')), 9), split(parameters('purviewId'), '/')[4], resourceGroup().name)]"
|
|
},
|
|
"resources": [
|
|
{
|
|
"type": "Microsoft.Resources/deployments",
|
|
"apiVersion": "2020-06-01",
|
|
"name": "userAssignedIdentity001",
|
|
"properties": {
|
|
"expressionEvaluationOptions": {
|
|
"scope": "inner"
|
|
},
|
|
"mode": "Incremental",
|
|
"parameters": {
|
|
"location": {
|
|
"value": "[parameters('location')]"
|
|
},
|
|
"tags": {
|
|
"value": "[parameters('tags')]"
|
|
},
|
|
"userAssignedIdentityName": {
|
|
"value": "[variables('userAssignedIdentity001Name')]"
|
|
}
|
|
},
|
|
"template": {
|
|
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
|
|
"contentVersion": "1.0.0.0",
|
|
"metadata": {
|
|
"_generator": {
|
|
"name": "bicep",
|
|
"version": "0.4.1008.15138",
|
|
"templateHash": "14015064762219018421"
|
|
}
|
|
},
|
|
"parameters": {
|
|
"location": {
|
|
"type": "string"
|
|
},
|
|
"tags": {
|
|
"type": "object"
|
|
},
|
|
"userAssignedIdentityName": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"functions": [],
|
|
"resources": [
|
|
{
|
|
"type": "Microsoft.ManagedIdentity/userAssignedIdentities",
|
|
"apiVersion": "2018-11-30",
|
|
"name": "[parameters('userAssignedIdentityName')]",
|
|
"location": "[parameters('location')]",
|
|
"tags": "[parameters('tags')]"
|
|
}
|
|
],
|
|
"outputs": {
|
|
"userAssignedIdentityId": {
|
|
"type": "string",
|
|
"value": "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('userAssignedIdentityName'))]"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"type": "Microsoft.Resources/deployments",
|
|
"apiVersion": "2020-06-01",
|
|
"name": "userAssignedIdentity001RoleAssignmentPurview",
|
|
"subscriptionId": "[variables('purviewSubscriptionId')]",
|
|
"resourceGroup": "[variables('purviewResourceGroupName')]",
|
|
"properties": {
|
|
"expressionEvaluationOptions": {
|
|
"scope": "inner"
|
|
},
|
|
"mode": "Incremental",
|
|
"parameters": {
|
|
"userAssignedIdentityId": {
|
|
"value": "[reference(resourceId('Microsoft.Resources/deployments', 'userAssignedIdentity001'), '2020-06-01').outputs.userAssignedIdentityId.value]"
|
|
}
|
|
},
|
|
"template": {
|
|
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
|
|
"contentVersion": "1.0.0.0",
|
|
"metadata": {
|
|
"_generator": {
|
|
"name": "bicep",
|
|
"version": "0.4.1008.15138",
|
|
"templateHash": "14776111258115914080"
|
|
}
|
|
},
|
|
"parameters": {
|
|
"userAssignedIdentityId": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"functions": [],
|
|
"variables": {
|
|
"userAssignedIdentitySubscriptionId": "[if(greaterOrEquals(length(split(parameters('userAssignedIdentityId'), '/')), 9), split(parameters('userAssignedIdentityId'), '/')[2], subscription().subscriptionId)]",
|
|
"userAssignedIdentityResourceGroupName": "[if(greaterOrEquals(length(split(parameters('userAssignedIdentityId'), '/')), 9), split(parameters('userAssignedIdentityId'), '/')[4], resourceGroup().name)]",
|
|
"userAssignedIdentityName": "[if(greaterOrEquals(length(split(parameters('userAssignedIdentityId'), '/')), 9), last(split(parameters('userAssignedIdentityId'), '/')), 'incorrectSegmentLength')]"
|
|
},
|
|
"resources": [
|
|
{
|
|
"type": "Microsoft.Authorization/roleAssignments",
|
|
"apiVersion": "2020-04-01-preview",
|
|
"name": "[guid(uniqueString(resourceGroup().id, extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', variables('userAssignedIdentitySubscriptionId'), variables('userAssignedIdentityResourceGroupName')), 'Microsoft.ManagedIdentity/userAssignedIdentities', variables('userAssignedIdentityName'))))]",
|
|
"properties": {
|
|
"roleDefinitionId": "[resourceId('Microsoft.Authorization/roleDefinitions', '8e3af657-a8ff-443c-a75c-2fe8c4bcb635')]",
|
|
"principalId": "[reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', variables('userAssignedIdentitySubscriptionId'), variables('userAssignedIdentityResourceGroupName')), 'Microsoft.ManagedIdentity/userAssignedIdentities', variables('userAssignedIdentityName')), '2018-11-30').principalId]",
|
|
"principalType": "ServicePrincipal"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"dependsOn": [
|
|
"[resourceId('Microsoft.Resources/deployments', 'userAssignedIdentity001')]"
|
|
]
|
|
},
|
|
{
|
|
"type": "Microsoft.Resources/deployments",
|
|
"apiVersion": "2020-06-01",
|
|
"name": "purviewSetup",
|
|
"properties": {
|
|
"expressionEvaluationOptions": {
|
|
"scope": "inner"
|
|
},
|
|
"mode": "Incremental",
|
|
"parameters": {
|
|
"location": {
|
|
"value": "[parameters('location')]"
|
|
},
|
|
"tags": {
|
|
"value": "[parameters('tags')]"
|
|
},
|
|
"userAssignedIdentityId": {
|
|
"value": "[reference(resourceId('Microsoft.Resources/deployments', 'userAssignedIdentity001'), '2020-06-01').outputs.userAssignedIdentityId.value]"
|
|
},
|
|
"purviewId": {
|
|
"value": "[parameters('purviewId')]"
|
|
},
|
|
"purviewRootCollectionAdminObjectIds": {
|
|
"value": "[parameters('purviewRootCollectionAdminObjectIds')]"
|
|
}
|
|
},
|
|
"template": {
|
|
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
|
|
"contentVersion": "1.0.0.0",
|
|
"metadata": {
|
|
"_generator": {
|
|
"name": "bicep",
|
|
"version": "0.4.1008.15138",
|
|
"templateHash": "549082427021809542"
|
|
}
|
|
},
|
|
"parameters": {
|
|
"location": {
|
|
"type": "string"
|
|
},
|
|
"tags": {
|
|
"type": "object"
|
|
},
|
|
"userAssignedIdentityId": {
|
|
"type": "string"
|
|
},
|
|
"purviewId": {
|
|
"type": "string"
|
|
},
|
|
"purviewRootCollectionAdminObjectIds": {
|
|
"type": "array"
|
|
},
|
|
"forceUpdateTag": {
|
|
"type": "string",
|
|
"defaultValue": "[utcNow()]"
|
|
}
|
|
},
|
|
"functions": [],
|
|
"variables": {
|
|
"purviewName": "[if(greaterOrEquals(length(split(parameters('purviewId'), '/')), 9), last(split(parameters('purviewId'), '/')), 'incorrectSegmentLength')]",
|
|
"purviewSetupName": "[format('{0}-setup', variables('purviewName'))]",
|
|
"purviewRootCollectionAdminsInput": "[replace(replace(string(parameters('purviewRootCollectionAdminObjectIds')), '[', ''), ']', '')]"
|
|
},
|
|
"resources": [
|
|
{
|
|
"condition": "[greater(length(parameters('purviewRootCollectionAdminObjectIds')), 0)]",
|
|
"type": "Microsoft.Resources/deploymentScripts",
|
|
"apiVersion": "2020-10-01",
|
|
"name": "[variables('purviewSetupName')]",
|
|
"location": "[parameters('location')]",
|
|
"tags": "[parameters('tags')]",
|
|
"kind": "AzurePowerShell",
|
|
"identity": {
|
|
"type": "UserAssigned",
|
|
"userAssignedIdentities": {
|
|
"[format('{0}', parameters('userAssignedIdentityId'))]": {}
|
|
}
|
|
},
|
|
"properties": {
|
|
"azPowerShellVersion": "6.3",
|
|
"arguments": "[format('-PurviewId \\\"{0}\\\" -PurviewRootCollectionAdmins {1}', parameters('purviewId'), variables('purviewRootCollectionAdminsInput'))]",
|
|
"cleanupPreference": "OnSuccess",
|
|
"containerSettings": {
|
|
"containerGroupName": "[variables('purviewSetupName')]"
|
|
},
|
|
"environmentVariables": [],
|
|
"forceUpdateTag": "[parameters('forceUpdateTag')]",
|
|
"scriptContent": "# Copyright (c) Microsoft Corporation.\r\n# Licensed under the MIT license.\r\n\r\n# Define script arguments\r\n[CmdletBinding()]\r\nparam (\r\n [Parameter(Mandatory = $true)]\r\n [ValidateNotNullOrEmpty()]\r\n [string]\r\n $PurviewId,\r\n\r\n [Parameter(Mandatory = $false)]\r\n [string[]]\r\n $PurviewRootCollectionAdmins = @(),\r\n\r\n [Parameter(Mandatory=$false)]\r\n [Switch]\r\n $SetPurviewAccountAsDefault\r\n)\r\n\r\n# Install Required Module\r\nWrite-Output \"Installing Required Module\"\r\nSet-PSRepository `\r\n -Name PSGallery `\r\n -InstallationPolicy Trusted\r\nInstall-Module `\r\n -Name Az.Purview `\r\n -Repository PSGallery `\r\n -Force\r\n\r\n# Define Parameters\r\nWrite-Output \"Defining Parameters\"\r\n$tenantId = (Get-AzContext).Tenant.Id\r\n$purviewSubscriptionId = $PurviewId.Split(\"/\")[2]\r\n$purviewResourceGroupName = $PurviewId.Split(\"/\")[4]\r\n$purviewAccountName = $PurviewId.Split(\"/\")[8]\r\n\r\nif ($SetPurviewAccountAsDefault) {\r\n # Set Purview Account as Default in Tenant\r\n Write-Output \"Setting Purview Account as Default in Tenant\"\r\n Set-AzPurviewDefaultAccount `\r\n -ScopeTenantId $tenantId `\r\n -ScopeType \"Tenant\" `\r\n -Scope $tenantId `\r\n -SubscriptionId $purviewSubscriptionId `\r\n -ResourceGroupName $purviewResourceGroupName `\r\n -AccountName $purviewAccountName\r\n} else {\r\n # NOT Set Purview Account as Default in Tenant\r\n Write-Output \"NOT Setting Purview Account as Default in Tenant\"\r\n}\r\n\r\nforeach ($purviewRootCollectionAdmin in $PurviewRootCollectionAdmins) {\r\n # Set Purview Root Collection Admin\r\n Write-Output \"Setting Purview Root Collection Admin '${purviewRootCollectionAdmin}'\"\r\n Add-AzPurviewAccountRootCollectionAdmin `\r\n -SubscriptionId $purviewSubscriptionId `\r\n -ResourceGroupName $purviewResourceGroupName `\r\n -AccountName $purviewAccountName `\r\n -ObjectId $purviewRootCollectionAdmin\r\n}\r\n",
|
|
"retentionInterval": "P1D",
|
|
"supportingScriptUris": [],
|
|
"timeout": "PT30M"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"dependsOn": [
|
|
"[resourceId('Microsoft.Resources/deployments', 'userAssignedIdentity001')]",
|
|
"[extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', variables('purviewSubscriptionId'), variables('purviewResourceGroupName')), 'Microsoft.Resources/deployments', 'userAssignedIdentity001RoleAssignmentPurview')]"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"dependsOn": [
|
|
"[subscriptionResourceId('Microsoft.Resources/resourceGroups', format('{0}-automation', variables('name')))]",
|
|
"[extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-governance', variables('name'))), 'Microsoft.Resources/deployments', 'governanceResources')]"
|
|
]
|
|
}
|
|
],
|
|
"outputs": {
|
|
"vnetId": {
|
|
"type": "string",
|
|
"value": "[reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-network', variables('name'))), 'Microsoft.Resources/deployments', 'networkServices'), '2020-06-01').outputs.vnetId.value]"
|
|
},
|
|
"firewallPrivateIp": {
|
|
"type": "string",
|
|
"value": "[reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-network', variables('name'))), 'Microsoft.Resources/deployments', 'networkServices'), '2020-06-01').outputs.firewallPrivateIp.value]"
|
|
},
|
|
"purviewId": {
|
|
"type": "string",
|
|
"value": "[reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-governance', variables('name'))), 'Microsoft.Resources/deployments', 'governanceResources'), '2020-06-01').outputs.purviewId.value]"
|
|
},
|
|
"purviewManagedStorageId": {
|
|
"type": "string",
|
|
"value": "[reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-governance', variables('name'))), 'Microsoft.Resources/deployments', 'governanceResources'), '2020-06-01').outputs.purviewManagedStorageId.value]"
|
|
},
|
|
"purviewManagedEventHubId": {
|
|
"type": "string",
|
|
"value": "[reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-governance', variables('name'))), 'Microsoft.Resources/deployments', 'governanceResources'), '2020-06-01').outputs.purviewManagedEventHubId.value]"
|
|
},
|
|
"privateDnsZoneIdKeyVault": {
|
|
"type": "string",
|
|
"value": "[if(parameters('enableDnsAndFirewallDeployment'), reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-global-dns', variables('name'))), 'Microsoft.Resources/deployments', 'globalDnsZones'), '2020-06-01').outputs.privateDnsZoneIdKeyVault.value, '')]"
|
|
},
|
|
"privateDnsZoneIdDataFactory": {
|
|
"type": "string",
|
|
"value": "[if(parameters('enableDnsAndFirewallDeployment'), reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-global-dns', variables('name'))), 'Microsoft.Resources/deployments', 'globalDnsZones'), '2020-06-01').outputs.privateDnsZoneIdDataFactory.value, '')]"
|
|
},
|
|
"privateDnsZoneIdDataFactoryPortal": {
|
|
"type": "string",
|
|
"value": "[if(parameters('enableDnsAndFirewallDeployment'), reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-global-dns', variables('name'))), 'Microsoft.Resources/deployments', 'globalDnsZones'), '2020-06-01').outputs.privateDnsZoneIdDataFactoryPortal.value, '')]"
|
|
},
|
|
"privateDnsZoneIdBlob": {
|
|
"type": "string",
|
|
"value": "[if(parameters('enableDnsAndFirewallDeployment'), reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-global-dns', variables('name'))), 'Microsoft.Resources/deployments', 'globalDnsZones'), '2020-06-01').outputs.privateDnsZoneIdBlob.value, '')]"
|
|
},
|
|
"privateDnsZoneIdDfs": {
|
|
"type": "string",
|
|
"value": "[if(parameters('enableDnsAndFirewallDeployment'), reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-global-dns', variables('name'))), 'Microsoft.Resources/deployments', 'globalDnsZones'), '2020-06-01').outputs.privateDnsZoneIdDfs.value, '')]"
|
|
},
|
|
"privateDnsZoneIdSqlServer": {
|
|
"type": "string",
|
|
"value": "[if(parameters('enableDnsAndFirewallDeployment'), reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-global-dns', variables('name'))), 'Microsoft.Resources/deployments', 'globalDnsZones'), '2020-06-01').outputs.privateDnsZoneIdSqlServer.value, '')]"
|
|
},
|
|
"privateDnsZoneIdMySqlServer": {
|
|
"type": "string",
|
|
"value": "[if(parameters('enableDnsAndFirewallDeployment'), reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-global-dns', variables('name'))), 'Microsoft.Resources/deployments', 'globalDnsZones'), '2020-06-01').outputs.privateDnsZoneIdMySqlServer.value, '')]"
|
|
},
|
|
"privateDnsZoneIdNamespace": {
|
|
"type": "string",
|
|
"value": "[if(parameters('enableDnsAndFirewallDeployment'), reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-global-dns', variables('name'))), 'Microsoft.Resources/deployments', 'globalDnsZones'), '2020-06-01').outputs.privateDnsZoneIdNamespace.value, '')]"
|
|
},
|
|
"privateDnsZoneIdSynapseDev": {
|
|
"type": "string",
|
|
"value": "[if(parameters('enableDnsAndFirewallDeployment'), reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-global-dns', variables('name'))), 'Microsoft.Resources/deployments', 'globalDnsZones'), '2020-06-01').outputs.privateDnsZoneIdSynapseDev.value, '')]"
|
|
},
|
|
"privateDnsZoneIdSynapseSql": {
|
|
"type": "string",
|
|
"value": "[if(parameters('enableDnsAndFirewallDeployment'), reference(extensionResourceId(format('/subscriptions/{0}/resourceGroups/{1}', subscription().subscriptionId, format('{0}-global-dns', variables('name'))), 'Microsoft.Resources/deployments', 'globalDnsZones'), '2020-06-01').outputs.privateDnsZoneIdSynapseSql.value, '')]"
|
|
}
|
|
}
|
|
} |