Enhance examples and documentation for role assignments, adding scenarios for multiple principals and role constraints

This commit is contained in:
2026-02-27 19:30:42 +01:00
parent 6b6615b7d3
commit b7594f4a5f
8 changed files with 366 additions and 12 deletions

48
examples/scenario-1.tf Normal file
View File

@@ -0,0 +1,48 @@
# Scenario: Multiple principals with different role assignments at the same scope
variable "principals" {
type = map(object({
principal_name = string
principal_type = string
roles = list(string)
delegable_roles = optional(list(string))
restricted_roles = optional(list(string))
}))
default = {
principal1 = {
principal_name = "sp-principal1"
principal_type = "User"
roles = ["Reader"]
}
principal2 = {
principal_name = "sg-admins"
principal_type = "Group"
roles = ["Contributor"]
}
principal3 = {
principal_name = "john.doe@example.com"
principal_type = "User"
roles = ["Owner"]
restricted_roles = [
"Owner",
"User Access Administrator",
"Role Based Access Control Administrator"
]
}
}
}
module "simple_iam" {
source = "../modules/terraform-azurerm-simple-iam"
scope = data.azurerm_subscription.current.id
principal_id = each.value.principal_id
principal_type = each.value.principal_type
roles = each.value.roles
delegable_roles = try(each.value.delegable_roles, [])
restricted_roles = try(each.value.restricted_roles, [])
for_each = var.principals
}