Azure 使用Terraform将托管身份访问分配给应用程序角色

Azure 使用Terraform将托管身份访问分配给应用程序角色,azure,terraform-provider-azure,azure-managed-identity,Azure,Terraform Provider Azure,Azure Managed Identity,我想使用Terraform为应用程序角色分配托管身份访问权限 我发现了一个类似的过程,但它使用PowerShell。我想用Terraform做这件事。 我应该在scope字段中指定什么,否则Terraform无法做到这一点?scope是您要为角色分配托管标识的资源Id。例如,您希望将托管标识分配给具有您创建的角色的VM。那么作用域就是VM资源ID,如下所示: "/subscriptions/subscription_id/resourceGroups/group_name/provi

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

我发现了一个类似的过程,但它使用PowerShell。我想用Terraform做这件事。


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

scope是您要为角色分配托管标识的资源Id。例如,您希望将托管标识分配给具有您创建的角色的VM。那么作用域就是VM资源ID,如下所示:

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

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

我在GitHub的一个问题上找到了这条评论

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


如果目标是VM或其他Azure资源,则它可以工作。在这种情况下,访问目标是一个应用程序角色。@Wakusei可以,但如果要分配应用程序角色,则
azurerm\u角色分配
资源无法实现。您需要通过配置属性来创建资源
azuread\u应用程序
。可以使用app\u角色或azuread\u应用程序\u app\u角色创建应用程序角色。但是两者都没有角色分配。@Wakusei我的意思是你可以通过resource
azuread\u应用程序\u应用程序\u角色
创建应用程序角色,然后通过配置
app\u角色
属性将应用程序角色分配给应用程序来创建resource
azuread\u应用程序。应用程序角色没有单独的分配。在本例中,访问源是一个托管标识。这与我在评论中所说的相同。但这并不意味着你不能通过地形做到这一点。仔细阅读我的评论!
"/subscriptions/subscription_id/resourceGroups/group_name/providers/Microsoft.Compute/virtualMachines/vm_name"