问题描述
我正在使用 terraform 将资源部署到 Azure。我想使用 AD 用户的电子邮件地址为他们分配角色。在 azurerm_role_assignment 资源中,只能使用用户的对象 id。我用电子邮件尝试过,但逻辑上失败了。
resource "azurerm_role_assignment" "example" {
scope = data.azurerm_subscription.primary.id
role_deFinition_name = "Reader"
principal_id = data.azurerm_client_config.example.object_id
}
使用 az powershell,可以使用用户的登录名分配角色:New-AzRoleAssignment -SignInName <userupn>
。
有没有办法用 terraform 做到这一点?
解决方法
我找到了答案。数据 azuread_users 可用作解决方案:
data "azuread_users" "users" {
user_principal_names = ["kat@hashicorp.com"]
}
resource "azurerm_role_assignment" "rbac_wvd" {
scope = data.azurerm_subscription.primary.id
role_definition_name = "Reader"
principal_id = data.azuread_users.wvd_user.object_ids[0]
}