在devops pipline中使用azure powershell内联脚本对Azure数据工厂访问策略进行设置

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

[使用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

azure azure-devops azure-powershell azure-keyvault paas
1个回答
0
投票

要运行命令Set-AzKeyVaultAccessPolicy,它将调用Azure AD Graph以验证您传递的$objectid。在can shell中,它使用您的用户帐户的凭据,这意味着您的用户帐户具有权限。在devops中,默认情况下,服务主体无权执行此操作。

要解决该问题,最简单的方法是使用如下所示的-BypassObjectIdValidation参数,它将正常工作。

Set-AzKeyVaultAccessPolicy –VaultName "joykeyvault" -PermissionsToKeys get,list -PermissionsToSecrets get,list -ObjectId $objectid -BypassObjectIdValidation

enter image description here

当然,还有另一种方法,只需为您的devops连接的AD App授予Azure AD Graph中的应用程序权限,如下所示。 (必须是Application中的Azure Active Directory Graph类型权限,而不是Microsoft Graph,不要忘记单击Grant admin consent按钮)

enter image description here

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