[使用Cloud Shell完成一项简单且轻松的任务,我需要授予访问权限在访问策略中设置数据出厂获取命令
$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
要运行命令Set-AzKeyVaultAccessPolicy
,它将调用Azure AD Graph以验证您传递的$objectid
。在can shell中,它使用您的用户帐户的凭据,这意味着您的用户帐户具有权限。在devops中,默认情况下,服务主体无权执行此操作。
要解决该问题,最简单的方法是使用如下所示的-BypassObjectIdValidation
参数,它将正常工作。
Set-AzKeyVaultAccessPolicy –VaultName "joykeyvault" -PermissionsToKeys get,list -PermissionsToSecrets get,list -ObjectId $objectid -BypassObjectIdValidation
当然,还有另一种方法,只需为您的devops连接的AD App授予Azure AD Graph中的应用程序权限,如下所示。 (必须是Application
中的Azure Active Directory Graph
类型权限,而不是Microsoft Graph
,不要忘记单击Grant admin consent
按钮)