【发布时间】:2022-09-27 17:27:55
【问题描述】:
我有一个 Azure Durable 函数,它运行一些 PowerShell 代码。
该代码从新创建的应用程序帐户中获取应用程序 ID,并授予其对资源组的贡献者访问权限。
代码如下所示:
$param = @{
ApplicationId = $SpnAppId
RoleDefinitionName = \'Contributor\'
ResourceGroupName = $ResourceGroupName
ErrorAction = \'Stop\'
}
New-AzRoleAssignment @param
我的代码在 2 个不同的租户中运行。在这两个租户中,我可以使用运行函数会话的应用程序帐户的凭据运行交互式 PowerShell 控制台,并将新创建的应用程序帐户添加为资源组的参与者。调整函数的两个应用程序帐户在包含资源组的订阅上都有 Directory.Read.All(Application) 和 Owner。
奇怪的是,在一个租户中,该函数按预期将贡献者角色授予资源组上的应用程序帐户,在运行该函数时,在另一个租户中却没有。
考虑到交互运行时两个租户中的操作都成功,什么可能导致函数在一个租户中失败,ERROR: Insufficient privileges to complete the operation 在另一个租户中失败?
标签: powershell azure-functions azure-rbac