rolebindings.tf (24 lines of code) (raw):
data "azuread_service_principal" "hci_rp" {
count = var.rp_service_principal_object_id == "" ? 1 : 0
client_id = "1412d89f-b8a8-4111-b4fd-e82905cbd85d"
}
resource "azurerm_role_assignment" "service_principal_role_assign" {
for_each = local.rp_roles
principal_id = var.rp_service_principal_object_id == "" ? data.azuread_service_principal.hci_rp[0].object_id : var.rp_service_principal_object_id
scope = var.resource_group_id
role_definition_name = each.value
depends_on = [data.azuread_service_principal.hci_rp]
}
resource "azurerm_role_assignment" "machine_role_assign" {
for_each = {
for idx, assignment in local.role_assignments :
"${assignment.server_name}_${assignment.role_key}" => assignment
}
principal_id = each.value.principal_id
scope = replace(local.key_vault.id, var.keyvault_name, lower(var.keyvault_name))
role_definition_name = each.value.role_name
depends_on = [
azurerm_key_vault.deployment_keyvault,
data.azurerm_key_vault.key_vault
]
}