Я пытаюсь назначить случайные пароли нескольким пользователям AAD - в файле csv - с помощью Terraform и ресурсов "azuread_user"
Во-первых, у меня есть этот CSV-файл с некоторыми пользователями:
user_name
User1
User2
User3
User4
Далее я прочитал этот файл CSV, используя:
locals {
users = csvdecode(file("${path.module}/users.csv"))
}
Затем, используя ресурс random_password, я генерирую новый пароль:
resource "random_password" "password" {
length = 16
special = true
override_special = "!#$%&*()-_=+[]{}<>:?"
}
Затем с помощью «azuread_user» я пытаюсь создать пользователя со сгенерированным паролем:
resource "azuread_user" "users" {
for_each = { for user in local.users : user.first_name => user }
user_principal_name = format(
"%s@%s",
each.value.user_name,
"mydomain.com"
)
password = each.value.password
display_name = "${each.value.first_name} ${each.value.last_name}"
}
но проблема в том, что у каждого пользователя один и тот же пароль от ресурса "random_password" "пароль".
Как я могу назначить случайный пароль для каждого пользователя?
Я попытался создать пользователей со случайными паролями, как показано ниже:
locals {
users = {
"[email protected]" = { first_name = "John", last_name = "Doe" , department = "Marketing Department" },
"[email protected]" = { first_name = "Jane", last_name = "Doe" , department = "IT Department"}
}
}
resource "random_password" "passwords" {
for_each = local.users
length = 16
special = true
}
resource "azuread_user" "users" {
for_each = local.users
display_name = "${each.value.first_name} ${each.value.last_name}"
mail_nickname = each.value.first_name
user_principal_name = each.key
password = random_password.passwords[each.key].result
department = each.value.department
}
Чтобы проверить, генерируются ли случайные пароли, я сохранил их в хранилище ключей и проверил . Они кажутся разными для разных пользователей.
resource "azurerm_key_vault" "example" {
name = "kavyaexmplekeyvault"
location = data.azurerm_resource_group.example.location
resource_group_name = data.azurerm_resource_group.example.name
enabled_for_disk_encryption = true
tenant_id = data.azurerm_client_config.current.tenant_id
soft_delete_retention_days = 7
purge_protection_enabled = false
sku_name = "standard"
access_policy {
tenant_id = data.azurerm_client_config.current.tenant_id
object_id = data.azurerm_client_config.current.object_id
key_permissions = [
"Create",
"Get",
]
secret_permissions = [
"Set",
"Get",
"Delete",
"Purge",
"Recover",
"List"
]
storage_permissions = [
"Get","Set"
]
}
}
resource "azurerm_key_vault_secret" "password_one" {
for_each = local.users
name = "passwrdone${each.value.first_name}"
value = random_password.passwords[each.key].result
key_vault_id = azurerm_key_vault.example.id
}
Пароль для Джейн:
Пароль для Джона: