Azure Private DNS A Record
This page shows how to write Terraform and Azure Resource Manager for Private DNS A Record and write them securely.
azurerm_private_dns_a_record (Terraform)
The A Record in Private DNS can be configured in Terraform with the resource name azurerm_private_dns_a_record
. The following sections describe 10 examples of how to use the resource and its parameters.
Example Usage from GitHub
resource "azurerm_private_dns_a_record" "monitor_api" {
name = "api"
zone_name = azurerm_private_dns_zone.monitor.name
resource_group_name = var.rg.name
ttl = 3600
records = [cidrhost(var.subnet.address_prefixes[0], 7)]
resource "azurerm_private_dns_a_record" "acrdata" {
name = regex("(?P<dns>.*)\\.azurecr\\.io",azurerm_private_endpoint.acr.custom_dns_configs[0].fqdn).dns
zone_name = azurerm_private_dns_zone.acr.name
resource_group_name = azurerm_resource_group.spoke.name
ttl = 300
records = azurerm_private_endpoint.acr.custom_dns_configs[0].ip_addresses
resource "azurerm_private_dns_a_record" "over1B" {
name = "test"
zone_name = azurerm_private_dns_zone.example.name
resource_group_name = azurerm_resource_group.example.name
ttl = 300
records = ["10.0.180.17"]
resource "azurerm_private_dns_a_record" "bastion_a_record" {
name = "bastion"
zone_name = azurerm_private_dns_zone.private_dns.name
resource_group_name = azurerm_resource_group.rg.name
ttl = 3600
records = [azurerm_linux_virtual_machine.bastion.private_ip_address]
resource "azurerm_private_dns_a_record" "aseStar" {
name = "*"
zone_name = azurerm_private_dns_zone.ase.name
resource_group_name = azurerm_resource_group.spoke.name
ttl = 300
records = [ split("\r\n", data.local_file.ase_ip.content)[0] ]
resource "azurerm_private_dns_a_record" "mhs-inbound" {
name = "mhs-inbound"
zone_name = data.terraform_remote_state.base.outputs.base_private_dns_zone
resource_group_name = var.account_resource_group
ttl = 30
records = [kubernetes_service.mhs-inbound.status[0].load_balancer[0].ingress[0].ip]
resource "azurerm_private_dns_a_record" "dns-a-record-ind" {
for_each = { for i in local.items : i.key => i }
name = format("%s%s%03d", var.os_code, var.instance_type, each.value.index)
zone_name = local.dns_zone_name
resource_group_name = local.network_resource_group
resource "azurerm_private_dns_a_record" "hello_demo" {
name = "hello"
zone_name = azurerm_private_dns_zone.demo.name
resource_group_name = var.rg-name
ttl = 300
records = ["15.1.2.100"]
resource "azurerm_private_dns_a_record" "over1B" {
name = "test"
zone_name = azurerm_private_dns_zone.example.name
resource_group_name = azurerm_resource_group.example.name
ttl = 300
records = ["10.0.180.17"]
resource "azurerm_private_dns_a_record" "gp2gp" {
name = "gp2gp"
zone_name = data.terraform_remote_state.base.outputs.base_private_dns_zone
resource_group_name = var.account_resource_group
ttl = 30
records = [kubernetes_service.gp2gp.status[0].load_balancer[0].ingress[0].ip]
Parameters
-
fqdn
optional computed - string -
id
optional computed - string -
name
required - string -
records
required - set of string -
resource_group_name
required - string -
tags
optional - map from string to string -
ttl
required - number -
zone_name
required - string -
timeouts
single block
Explanation in Terraform Registry
Enables you to manage DNS A Records within Azure Private DNS.
Microsoft.Network/privateDnsZones/A (Azure Resource Manager)
The privateDnsZones/A in Microsoft.Network can be configured in Azure Resource Manager with the resource name Microsoft.Network/privateDnsZones/A
. The following sections describe how to use the resource and its parameters.
Example Usage from GitHub
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"resources": [
"type": "Microsoft.Network/privateDnsZones/A",
"apiVersion": "2018-09-01",
"name": "[concat(parameters('privateDnsZones_lablocaliza_lab_name'), '/bd')]",
"dependsOn": [
"[resourceId('Microsoft.Network/privateDnsZones', parameters('privateDnsZones_lablocaliza_lab_name'))]"
],
"type": "Microsoft.Network/privateDnsZones/A",
"apiVersion": "2018-09-01",
"name": "[concat(parameters('privateDnsZones_izzyacademy_com_name'), '/aks-nodepool1-38281013-vmss000000')]",
"dependsOn": [
"[resourceId('Microsoft.Network/privateDnsZones', parameters('privateDnsZones_izzyacademy_com_name'))]"
],
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources":
[
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"resources": [
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"resources": [
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"topLevelManagementGroupPrefix": {
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"resources": [
{
"$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"resources": [
"type": "Microsoft.Network/privateDnsZones/A",
"apiVersion": "2018-09-01",
"name": "[concat(parameters('privatedns_acr_zone_name'), '/', parameters('acr_name'))]",
"dependsOn": [
"[resourceId('Microsoft.Network/privateDnsZones', parameters('privatedns_acr_zone_name'))]"
],
Frequently asked questions
What is Azure Private DNS A Record?
Azure Private DNS A Record is a resource for Private DNS of Microsoft Azure. Settings can be wrote in Terraform.
Where can I find the example code for the Azure Private DNS A Record?
For Terraform, the yz4898/att_mvm, fortunkam/aks-secure-baseline and gilyas/infracost source code examples are useful. See the Terraform Example section for further details.
For Azure Resource Manager, the saq1bahmed/EntScale, L4ur0Resend3/Lab and izzymsft/SecuringWebAPIs source code examples are useful. See the Azure Resource Manager Example section for further details.