Azure Private Endpoint Terraform module

Terraform module for creation Azure Private Endpoint

Usage

This module provisions Azure Private Endpoint, for instance, it is possible to create Private Endpoint for compliant Azure Services, create Private DNS Zone Group for that Private Endpoint and even associate additional ip address to Private Endpoint DNS A Record

Below is an example on how to create Private Endpoint for Storage Account's Data Lake File System Gen2 and associate it with certain Private DNS Zone:

data "azurerm_subnet" "example" {
  name                 = "example_subnet"
  virtual_network_name = "example_vnet"
  resource_group_name  = "example_rg"
}

data "azurerm_storage_account" "example" {
  name           = "example_storage_account"
  resource_group = "example_rg"
}

data "azurerm_private_dns_zone" "example" {
  name                = "privatelink.dfs.core.windows.net"
  resource_group_name = "example_rg"
}

module "private_endpoint" {
  source   = "data-platform-hq/private-endpoint/azurerm"
  version  = "~> 1.2"
  
  private_endpoint_name  = "pep-dlz-example-eastus-1"
  location               = "eastus"
  resource_group         = "example_rg"
  subnet_id              = data.azurerm_subnet.example.id
  connection_resource_id = data.azurerm_storage_account.example.id
  subresource_names      = "dfs"
  private_dns_zone_id    = [data.azurerm_private_dns_zone.example.id]
}

Requirements

Name Version
terraform >= 1.0.0
azurerm >= 4.0.1

Providers

Name Version
azurerm >= 4.0.1

Modules

No modules.

Resources

Name Type
azurerm_private_endpoint.this resource

Inputs

Name Description Type Default Required
connection_resource_id The ID of the Private Link Enabled Remote Resource which this Private Endpoint should be connected to. string n/a yes
is_mutual_connection Does the Private Endpoint require Manual Approval from the remote resource owner? bool false no
location Azure location string n/a yes
network_interface_name Custom Network Interface name string null no
private_dns_zone_id Specifies the set of Private DNS Zones to include within the Private DNS Zone Group set(string) [] no
private_endpoint_name Private Endpoint name string n/a yes
private_service_connection_name Custom Service Connection name of Private Endpoints string null no
resource_group Resource group where Private Endpoint would be created string n/a yes
subnet_id The ID of the Subnet from which Private IP Addresses will be allocated for this Private Endpoint. string n/a yes
subresource_names A list of subresource names which the Private Endpoint is able to connect to. string n/a yes
tags tags for resources map(string) {} no

Outputs

Name Description
custom_dns_configs Custom DNS Record properties. If a Private DNS Zone Group has been defined and is currently connected correctly this block will be empty
id Id of Private Endpoint
name Name of Private Endpoint
private_dns_zone_configs DNS Zone Group Record properties. If a Private DNS Zone Group has not been configured correctly the record_sets attributes will be empty.

License

Apache 2 Licensed. For more information please see LICENSE