Azure Network Public IP
This page shows how to write Terraform and Azure Resource Manager for Network Public IP and write them securely.
azurerm_public_ip (Terraform)
The Public IP in Network can be configured in Terraform with the resource name azurerm_public_ip
. The following sections describe 1 example of how to use the resource and its parameters.
Example Usage from GitHub
resource "azurerm_public_ip" "manager_pip" {
name = "cdh-pip"
location = var.location
resource_group_name = azurerm_resource_group.terraform_rg.name
allocation_method = "Static"
Parameters
-
allocation_method
required - string -
domain_name_label
optional - string -
fqdn
optional computed - string -
id
optional computed - string -
idle_timeout_in_minutes
optional - number -
ip_address
optional computed - string -
ip_tags
optional - map from string to string -
ip_version
optional - string -
location
required - string -
name
required - string -
public_ip_prefix_id
optional - string -
resource_group_name
required - string -
reverse_fqdn
optional - string -
sku
optional - string -
tags
optional - map from string to string -
zones
optional - list of string -
timeouts
single block
Explanation in Terraform Registry
Manages a Public IP Address.
Tips: Best Practices for The Other Azure Network Resources
In addition to the azurerm_network_security_group, Azure Network has the other resources that should be configured for security reasons. Please check some examples of those resources and precautions.
azurerm_network_security_group
Ensure to disable RDP port from the Internet
It is better to disable the RDP port from the Internet. RDP access should not be accepted from the Internet (*, 0.0.0.0, /0, internet, any), and consider using the Azure Bastion Service.
azurerm_network_security_rule
Ensure to set a more restrictive CIDR range for ingress from the internet
It is better to set a more restrictive CIDR range not to use very broad subnets. If possible, segments should be divided into smaller subnets.
azurerm_network_watcher_flow_log
Ensure to enable Retention policy for flow logs and set it to enough duration
It is better to enable a retention policy for flow logs. Flow logs show us all network activity in the cloud environment and support us when we face critical incidents.
Microsoft.Network/publicIPAddresses (Azure Resource Manager)
The publicIPAddresses in Microsoft.Network can be configured in Azure Resource Manager with the resource name Microsoft.Network/publicIPAddresses
. The following sections describe how to use the resource and its parameters.
Example Usage from GitHub
"type": "Microsoft.Network/publicIPAddresses",
"name": "[parameters('primaryDCIPAddressNameWithSuffix')]",
"location": "[parameters('location')]",
"properties": {
"publicIPAllocationMethod": "dynamic"
}
"type": "Microsoft.Network/publicIPAddresses",
"location": "northeurope",
"tags": {
"testkey": "testvalue"
},
"properties": {
"type": "Microsoft.Network/publicIPAddresses",
"name": "[parameters('pdcRdpIPAddressName')]",
"location": "[parameters('location')]",
"properties": {
"publicIPAllocationMethod": "dynamic"
}
"type": "Microsoft.Network/publicIPAddresses",
"name": "[parameters('pdcRdpIPAddressName')]",
"location": "[parameters('location')]",
"properties": {
"publicIPAllocationMethod": "dynamic"
}
"type": "Microsoft.Network/publicIPAddresses",
"name": "[parameters('pdcRdpIPAddressName')]",
"location": "[parameters('location')]",
"properties": {
"publicIPAllocationMethod": "dynamic"
}
"type": "Microsoft.Network/publicIPAddresses",
"name": "[parameters('pdcRdpIPAddressName')]",
"location": "[parameters('location')]",
"properties": {
"publicIPAllocationMethod": "dynamic"
}
"type": "Microsoft.Network/publicIPAddresses",
"location": "northeurope",
"tags": {
"testkey": "testvalue"
},
"properties": {
"type":"Microsoft.Network/publicIPAddresses",
"name":"[variables('publicIPAddressName')]",
"location":"[resourceGroup().location]",
"properties":{
"publicIPAllocationMethod":"[parameters('publicIPAddressType')]"
}
"type": "Microsoft.Network/publicIPAddresses",
"name": "[parameters('dcPublicIPAddressName')]",
"location": "[parameters('location1')]",
"properties": {
"publicIPAllocationMethod": "[parameters('dcPublicIPAddressType')]"
}
"type": "Microsoft.Network/publicIPAddresses",
"location": "[resourceGroup().location]",
"apiVersion": "[parameters('publicIpApiVersion')]",
"tags": {
"displayName": "[variables('publicIpName1')]"
},
Parameters
name
required - stringtype
required - stringapiVersion
required - stringlocation
required - stringResource location.
tags
optional - stringResource tags.
extendedLocation
optionalname
required - stringThe name of the extended location.
type
required - stringThe type of the extended location.
sku
optionalname
optional - stringName of a public IP address SKU.
tier
optional - stringTier of a public IP address SKU.
properties
requiredpublicIPAllocationMethod
required - stringThe public IP address allocation method.
publicIPAddressVersion
optional - stringThe public IP address version.
dnsSettings
optionaldomainNameLabel
required - stringThe domain name label. The concatenation of the domain name label and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS system.
fqdn
optional - stringThe Fully Qualified Domain Name of the A DNS record associated with the public IP. This is the concatenation of the domainNameLabel and the regionalized DNS zone.
reverseFqdn
optional - stringThe reverse FQDN. A user-visible, fully qualified domain name that resolves to this public IP address. If the reverseFqdn is specified, then a PTR DNS record is created pointing from the IP address in the in-addr.arpa domain to the reverse FQDN.
ddosSettings
optionalddosCustomPolicy
optionalid
required - stringResource ID.
protectionCoverage
optional - stringThe DDoS protection policy customizability of the public IP. Only standard coverage will have the ability to be customized.
protectedIP
optional - booleanEnables DDoS protection on the public IP.
ipTags
optional arrayipTagType
optional - stringThe IP tag type. Example: FirstPartyUsage.
tag
optional - stringThe value of the IP tag associated with the public IP. Example: SQL.
ipAddress
optional - stringThe IP address associated with the public IP address resource.
publicIPPrefix
optionalid
required - stringResource ID.
idleTimeoutInMinutes
optional - integerThe idle timeout of the public IP address.
zones
optional - arrayA list of availability zones denoting the IP allocated for the resource needs to come from.
Frequently asked questions
What is Azure Network Public IP?
Azure Network Public IP is a resource for Network of Microsoft Azure. Settings can be wrote in Terraform.
Where can I find the example code for the Azure Network Public IP?
For Terraform, the jirojo2/cdh-cloud source code example is useful. See the Terraform Example section for further details.
For Azure Resource Manager, the millusdk/Arm-high-availability, apache/jclouds and carrollh/siosDataKeeper-demo source code examples are useful. See the Azure Resource Manager Example section for further details.