我想使用 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 无法做到这一点?
答案 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