Scenarios/Secure-Baseline/terraform/modules/supporting/sup_kv.tf (49 lines of code) (raw):
resource "azurerm_key_vault" "sub_kv" {
name = local.key_vault_name
location = var.location
resource_group_name = data.azurerm_resource_group.spoke.name
tenant_id = data.azurerm_client_config.current.tenant_id
sku_name = "standard"
purge_protection_enabled = false
public_network_access_enabled = false
network_acls {
bypass = "AzureServices"
default_action = "Deny"
}
}
resource "azurerm_private_endpoint" "kv" {
name = "kvPvtEndpoint"
resource_group_name = data.azurerm_resource_group.spoke.name
location = var.location
subnet_id = var.private_endpoint_subnet_id
private_service_connection {
name = "kvConnection"
private_connection_resource_id = azurerm_key_vault.sub_kv.id
is_manual_connection = false
subresource_names = [ "vault" ]
}
private_dns_zone_group {
name = "KeyVault-ZoneGroup"
private_dns_zone_ids = [
azurerm_private_dns_zone.kv.id
]
}
}
resource "azurerm_private_dns_zone" "kv" {
name = "privatelink.vaultcore.azure.net"
resource_group_name = data.azurerm_resource_group.spoke.name
}
resource "azurerm_private_dns_zone_virtual_network_link" "kv" {
name = "KeyVaultDNSLink"
resource_group_name = data.azurerm_resource_group.spoke.name
private_dns_zone_name = azurerm_private_dns_zone.kv.name
virtual_network_id = var.spoke_vnet_id
registration_enabled = false
}
resource "azurerm_private_dns_zone_virtual_network_link" "kv2" {
name = "KeyvaultDNSLinkHub"
resource_group_name = data.azurerm_resource_group.spoke.name
private_dns_zone_name = azurerm_private_dns_zone.kv.name
virtual_network_id = var.hub_vnet_id
registration_enabled = false
}