terraform/azureprep/kv.tf (174 lines of code) (raw):
# create key vaults to store all secrets that will later be used by the ADO Project
#
# NO CHANGES NEEDED HERE, CHANGE THESE VALUES WILL RESULT IN UNPREDICTABLE BEHAVIOR
resource azurerm_key_vault kvprod {
provider = azurerm.prod
name = var.prod_kv_name
location = azurerm_resource_group.prod.location
resource_group_name = azurerm_resource_group.prod.name
sku_name = "standard"
tenant_id = data.azurerm_subscription.prod.tenant_id
purge_protection_enabled = false
access_policy {
tenant_id = data.azurerm_subscription.prod.tenant_id
object_id = data.azuread_client_config.current.object_id
key_permissions = [
"Get",
"List",
"Create",
"Delete",
"Purge",
]
secret_permissions = [
"Get",
"List",
"Set",
"Delete",
"Purge",
]
storage_permissions = [
"Get",
"List",
"Delete",
"Set",
"Update",
]
}
access_policy {
tenant_id = data.azurerm_subscription.prod.tenant_id
object_id = azuread_service_principal.prod.object_id
secret_permissions = [
"Get",
"List",
"Set",
"Delete",
"Purge",
]
}
}
resource azurerm_key_vault_secret kvsclientidprod {
provider = azurerm.prod
name = "tf-client-id"
value = "${azuread_application.prod.application_id}"
key_vault_id = azurerm_key_vault.kvprod.id
}
resource azurerm_key_vault_secret kvsclientsecretprod {
provider = azurerm.prod
name = "tf-client-secret"
value = "${azuread_application_password.prod.value}"
key_vault_id = azurerm_key_vault.kvprod.id
}
resource azurerm_key_vault_secret kvstenantidprod {
provider = azurerm.prod
name = "tf-tenant-id"
value = "${data.azuread_client_config.current.tenant_id}"
key_vault_id = azurerm_key_vault.kvprod.id
}
resource azurerm_key_vault_secret kvssubscriptionidprod {
provider = azurerm.prod
name = "tf-subscription-id"
value = "${var.prod_subscription_id}"
key_vault_id = azurerm_key_vault.kvprod.id
}
resource azurerm_key_vault_secret kvsstraccntnameprod {
provider = azurerm.prod
name = "tf-storage-account"
value = "${azurerm_storage_account.prod.name}"
key_vault_id = azurerm_key_vault.kvprod.id
}
resource azurerm_key_vault_secret kvsstrcontnameprod {
provider = azurerm.prod
name = "tf-container"
value = "${azurerm_storage_container.prod.name}"
key_vault_id = azurerm_key_vault.kvprod.id
}
resource azurerm_key_vault_secret kvsstraccntrgprod {
provider = azurerm.prod
name = "tf-resource-group"
value = "${azurerm_resource_group.prod.name}"
key_vault_id = azurerm_key_vault.kvprod.id
}
#
#
# REPEAT ABOVE BUT FOR DEV - NEED TO FIX THIS TO BE A MODULE AT SOME POINT
#
#
resource azurerm_key_vault kvdev {
provider = azurerm.dev
name = var.dev_kv_name
location = azurerm_resource_group.dev.location
resource_group_name = azurerm_resource_group.dev.name
sku_name = "standard"
tenant_id = data.azurerm_subscription.dev.tenant_id
purge_protection_enabled = false
access_policy {
tenant_id = data.azurerm_subscription.prod.tenant_id
object_id = data.azuread_client_config.current.object_id
key_permissions = [
"Get",
"List",
"Create",
"Delete",
"Purge",
]
secret_permissions = [
"Get",
"List",
"Set",
"Delete",
"Purge",
]
storage_permissions = [
"Get",
"List",
"Delete",
"Set",
"Update",
]
}
access_policy {
tenant_id = data.azurerm_subscription.dev.tenant_id
object_id = azuread_service_principal.dev.object_id
secret_permissions = [
"Get",
"List",
"Set",
"Delete",
"Purge",
]
}
}
resource azurerm_key_vault_secret kvsclientiddev {
provider = azurerm.dev
name = "tf-client-id"
value = "${azuread_application.dev.application_id}"
key_vault_id = azurerm_key_vault.kvdev.id
}
resource azurerm_key_vault_secret kvsclientsecretdev {
provider = azurerm.dev
name = "tf-client-secret"
value = "${azuread_application_password.dev.value}"
key_vault_id = azurerm_key_vault.kvdev.id
}
resource azurerm_key_vault_secret kvstenantiddev {
provider = azurerm.dev
name = "tf-tenant-id"
value = "${data.azuread_client_config.current.tenant_id}"
key_vault_id = azurerm_key_vault.kvdev.id
}
resource azurerm_key_vault_secret kvssubscriptioniddev {
provider = azurerm.dev
name = "tf-subscription-id"
value = "${var.dev_subscription_id}"
key_vault_id = azurerm_key_vault.kvdev.id
}
resource azurerm_key_vault_secret kvsstraccntnamedev {
provider = azurerm.dev
name = "tf-storage-account"
value = "${azurerm_storage_account.dev.name}"
key_vault_id = azurerm_key_vault.kvdev.id
}
resource azurerm_key_vault_secret kvsstrcontnamedev {
provider = azurerm.dev
name = "tf-container"
value = "${azurerm_storage_container.dev.name}"
key_vault_id = azurerm_key_vault.kvdev.id
}
resource azurerm_key_vault_secret kvsstraccntrgdev {
provider = azurerm.dev
name = "tf-resource-group"
value = "${azurerm_resource_group.dev.name}"
key_vault_id = azurerm_key_vault.kvdev.id
}