Scenarios/Secure-Baseline/terraform/modules/serviceprincipal/serviceprincipal.tf (34 lines of code) (raw):
resource "azuread_application" "aro-lza-sp" {
display_name = var.aro_spn_name
owners = [data.azuread_client_config.current.object_id]
}
resource "azuread_service_principal" "aro-lza-sp" {
client_id = azuread_application.aro-lza-sp.client_id
app_role_assignment_required = false
owners = [data.azuread_client_config.current.object_id]
}
resource "time_rotating" "password-rotation" {
rotation_days = 365
}
#resource "azuread_application_password" "sp_client_secret" {
# application_id = azuread_application.aro-lza-sp.object_id
# display_name = "rbac"
# rotate_when_changed = {
# rotation = time_rotating.password-rotation.id
# }
#}
resource "azuread_service_principal_password" "aro-lza-sp" {
service_principal_id = azuread_service_principal.aro-lza-sp.id
display_name = "rbac"
rotate_when_changed = {
rotation = time_rotating.password-rotation.id
}
}
resource "azurerm_role_assignment" "aro-spoke" {
scope = data.azurerm_resource_group.spoke.id
role_definition_name = "Contributor"
principal_id = azuread_service_principal.aro-lza-sp.object_id
}
resource "azurerm_role_assignment" "aro-hub" {
scope = data.azurerm_resource_group.hub.id
role_definition_name = "Contributor"
principal_id = azuread_service_principal.aro-lza-sp.object_id
}
resource "azurerm_role_assignment" "spoke_vnet_id" {
scope = data.azurerm_virtual_network.spoke.id
role_definition_name = "Network Contributor"
principal_id = data.azuread_service_principal.aro_resource_provisioner.object_id
}