使用cloudshell和devops pipline进行Azure的Powershell角色辅助

问题描述 投票:0回答:1

我正在尝试删除特定对象ID的关联。以下是我遇到的错误。我在AD中附加了服务主体访问级别。

[当我尝试使用devops pipline执行同一命令时,我得到了不同的错误。

要删除访问权限,我的服务主在API权限中需要什么权限本节只看懂能行吗?以及为什么我会选择clould.execption错误。任何建议。

enter image description here

enter image description here

enter image description here

azure-devops azure-active-directory azure-powershell azure-ad-graph-api paas
1个回答
0
投票

我可以重现您的问题,命令Remove-AzRoleAssignment将调用Azure AD Graph以验证您传递的$objectid,因此您需要提供Azure AD Graph的应用程序许可 Directory.Read.All( Microsoft Graph,未委派权限)。

enter image description here

添加许可后,会有一些延迟(30m-1h),然后测试该命令,它可以工作。 (我在本地测试,在云外壳中也一样)

enter image description here

Note:除Azure AD中的权限外,您的服务主体还需要在订阅/特定资源范围内具有许可,即,服务主体是订阅的Owner/User Access Admin中的Access control (IAM)角色/特定资源范围(在您的情况下为存储帐户)。如果服务主体不具有该角色,请如下添加它。

enter image description here


[在Azure Devops中,您不需要使用Connect-AzAccount登录(实际上,在云shell中,您也不需要登录,但是也可以登录),它将自动使用与服务连接(Task version >= 4.*)相关的服务主体。

因此,请确保您的服务主体的机密正确并且已验证连接。要运行Remove-AzRoleAssignment,还要在上方添加与服务连接相关的“应用程序注册”权限。

enter image description here

然后测试它,就可以了。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.