带有电子邮件地址的 Terraform azurerm 角色定义

问题描述

我正在使用 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]
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...