有一项任务可以使用云外壳轻松实现,我需要访问我的
数据访问,在访问策略中设置
命令
$objectid = (Get-AzDataFactoryV2 -ResourceGroupName "BDAZE1ENRG01" -Name
"BDAZE1INDF03").Identity.PrincipalId
Set-AzKeyVaultAccessPolicy –VaultName "BDAZE1ENKV01" -PermissionsToKeys get,list -
PermissionsToSecrets get,list -ObjectId $objectid
开发任务屏幕截图 enter image description here
JEpOB.png
错误是devops日志
powershell版本3.1.0任务版本内联脚本4.0
答案 0 :(得分:0)
要运行命令Set-AzKeyVaultAccessPolicy
,它将调用Azure AD Graph来验证您传递的$objectid
。在can shell中,它使用您的用户帐户的凭据,这意味着您的用户帐户具有权限。在devops中,默认情况下,服务主体无权执行此操作。
要解决此问题,最简单的方法是使用如下所示的-BypassObjectIdValidation
参数,这样就可以正常工作。
Set-AzKeyVaultAccessPolicy –VaultName "joykeyvault" -PermissionsToKeys get,list -PermissionsToSecrets get,list -ObjectId $objectid -BypassObjectIdValidation
当然,还有另一种方法,只需在Azure AD Graph中为应用程序权限授予AD应用程序的权限,如下所示。 (必须是Application
中的Azure Active Directory Graph
类型权限,而不是Microsoft Graph
,不要忘了单击Grant admin consent
按钮)