使用 Terraform 为应用程序角色分配托管身份访问权限

时间:2021-04-08 05:48:05

标签: azure terraform-provider-azure azure-managed-identity

我想使用 Terraform 为应用程序角色分配托管身份访问权限。

我发现了一个类似的过程,但它使用 PowerShell。我想用 Terraform 做到这一点。
https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/how-to-assign-app-role-managed-identity-powershell

resource "azuread_application_app_role" "AppRole1" {
  application_object_id = azuread_application.ResourceController.id
  allowed_member_types  = ["Application"]
  description           = "All access"
  display_name          = "All access"
  is_enabled            = true
  value                 = "All"
}

resource "azurerm_role_assignment" "assignment1" {
  principal_id = data.azuread_service_principal.website.id # This is a managed identity.
  role_definition_id = azuread_application_app_role.AppRole1.id
  scope= azuread_application_app_role.ResourceController.id # ???
}

我应该在范围字段中指定什么,否则 Terraform 无法做到这一点?

2 个答案:

答案 0 :(得分:1)

范围是您要为角色分配托管标识的资源 ID。例如,您希望将托管标识分配给具有您创建的角色的 VM。那么范围就是这样的 VM 资源 ID:

"/subscriptions/subscription_id/resourceGroups/group_name/providers/Microsoft.Compute/virtualMachines/vm_name"

答案 1 :(得分:0)

对于当前的 Terraform Azure 提供商来说,这可能是不可能的。

我在 GitHub 问题上发现了此评论。

<块引用>

azurerm_role_assignment 只能用于将角色分配给 订阅资源。

https://github.com/terraform-providers/terraform-provider-azurerm/issues/6557#issuecomment-658154929