1.Virtual.Network/private.endpoint.tf (116 lines of code) (raw):
###############################################################################################
# Private Endpoint (https://learn.microsoft.com/azure/private-link/private-endpoint-overview) #
###############################################################################################
resource azurerm_private_endpoint storage_blob {
name = "${lower(data.azurerm_storage_account.studio.name)}-${azurerm_private_dns_zone_virtual_network_link.storage_blob.name}"
resource_group_name = data.azurerm_storage_account.studio.resource_group_name
location = data.azurerm_storage_account.studio.location
subnet_id = "${local.virtualNetwork.id}/subnets/Storage"
private_service_connection {
name = data.azurerm_storage_account.studio.name
private_connection_resource_id = data.azurerm_storage_account.studio.id
is_manual_connection = false
subresource_names = [
"blob"
]
}
private_dns_zone_group {
name = azurerm_private_dns_zone_virtual_network_link.storage_blob.name
private_dns_zone_ids = [
azurerm_private_dns_zone.storage_blob.id
]
}
depends_on = [
azurerm_subnet.studio,
azurerm_subnet_nat_gateway_association.studio
]
}
resource azurerm_private_endpoint storage_file {
name = "${lower(data.azurerm_storage_account.studio.name)}-${azurerm_private_dns_zone_virtual_network_link.storage_file.name}"
resource_group_name = data.azurerm_storage_account.studio.resource_group_name
location = data.azurerm_storage_account.studio.location
subnet_id = "${local.virtualNetwork.id}/subnets/Storage"
private_service_connection {
name = data.azurerm_storage_account.studio.name
private_connection_resource_id = data.azurerm_storage_account.studio.id
is_manual_connection = false
subresource_names = [
"file"
]
}
private_dns_zone_group {
name = azurerm_private_dns_zone_virtual_network_link.storage_file.name
private_dns_zone_ids = [
azurerm_private_dns_zone.storage_file.id
]
}
depends_on = [
azurerm_private_endpoint.storage_blob
]
}
resource azurerm_private_endpoint key_vault {
name = "${lower(data.azurerm_key_vault.studio.name)}-${azurerm_private_dns_zone_virtual_network_link.key_vault.name}"
resource_group_name = data.azurerm_key_vault.studio.resource_group_name
location = data.azurerm_key_vault.studio.location
subnet_id = "${local.virtualNetwork.id}/subnets/Storage"
private_service_connection {
name = data.azurerm_key_vault.studio.name
private_connection_resource_id = data.azurerm_key_vault.studio.id
is_manual_connection = false
subresource_names = [
"vault"
]
}
private_dns_zone_group {
name = azurerm_private_dns_zone_virtual_network_link.key_vault.name
private_dns_zone_ids = [
azurerm_private_dns_zone.key_vault.id
]
}
depends_on = [
azurerm_private_endpoint.storage_file
]
}
resource azurerm_private_endpoint monitor_workspace {
name = "${lower(data.azurerm_monitor_workspace.studio.name)}-${azurerm_private_dns_zone_virtual_network_link.monitor_workspace.name}"
resource_group_name = data.azurerm_monitor_workspace.studio.resource_group_name
location = data.azurerm_monitor_workspace.studio.location
subnet_id = "${local.virtualNetwork.id}/subnets/Storage"
private_service_connection {
name = data.azurerm_monitor_workspace.studio.name
private_connection_resource_id = data.azurerm_monitor_workspace.studio.id
is_manual_connection = false
subresource_names = [
"prometheusMetrics"
]
}
private_dns_zone_group {
name = azurerm_private_dns_zone_virtual_network_link.monitor_workspace.name
private_dns_zone_ids = [
azurerm_private_dns_zone.monitor_workspace.id
]
}
depends_on = [
azurerm_private_endpoint.key_vault
]
}
resource azurerm_private_endpoint grafana {
name = "${lower(data.azurerm_dashboard_grafana.studio.name)}-${azurerm_private_dns_zone_virtual_network_link.grafana.name}"
resource_group_name = data.azurerm_dashboard_grafana.studio.resource_group_name
location = data.azurerm_dashboard_grafana.studio.location
subnet_id = "${local.virtualNetwork.id}/subnets/Storage"
private_service_connection {
name = data.azurerm_dashboard_grafana.studio.name
private_connection_resource_id = data.azurerm_dashboard_grafana.studio.id
is_manual_connection = false
subresource_names = [
"grafana"
]
}
private_dns_zone_group {
name = azurerm_private_dns_zone_virtual_network_link.grafana.name
private_dns_zone_ids = [
azurerm_private_dns_zone.grafana.id
]
}
depends_on = [
azurerm_private_endpoint.monitor_workspace
]
}
# resource azurerm_private_endpoint app_config {
# name = "${lower(data.azurerm_app_configuration.studio.name)}-${azurerm_private_dns_zone_virtual_network_link.app_config.name}"
# resource_group_name = data.azurerm_key_vault.studio.resource_group_name
# location = data.azurerm_key_vault.studio.location
# subnet_id = "${local.virtualNetwork.id}/subnets/Storage"
# private_service_connection {
# name = data.azurerm_app_configuration.studio.name
# private_connection_resource_id = data.azurerm_app_configuration.studio.id
# is_manual_connection = false
# subresource_names = [
# "configurationStores"
# ]
# }
# private_dns_zone_group {
# name = azurerm_private_dns_zone_virtual_network_link.app_config.name
# private_dns_zone_ids = [
# azurerm_private_dns_zone.app_config.id
# ]
# }
# depends_on = [
# azurerm_private_endpoint.grafana
# ]
# }