在 devops 管道中使用 azure powershell 内联脚本分配 azure 数据工厂访问策略
Azure data factory access policies assigment using azure powershell inline script in devops pipline
有一项任务使用云 shell 可以简单轻松地完成,我需要授予对我的
的访问权限
Datafactory 获取、设置访问策略
命令
$objectid = (Get-AzDataFactoryV2 -ResourceGroupName "BDAZE1ENRG01" -Name
"BDAZE1INDF03").Identity.PrincipalId
Set-AzKeyVaultAccessPolicy –VaultName "BDAZE1ENKV01" -PermissionsToKeys get,list -
PermissionsToSecrets get,list -ObjectId $objectid
Devops 任务屏幕截图
enter image description here
JEpOB.png
错误是 devops 日志
powershell版本3.1.0任务版本内联脚本4.0
到运行命令Set-AzKeyVaultAccessPolicy
,它会调用Azure AD Graph来验证你传递的$objectid
。在 could shell 中,它使用您的用户帐户的凭据,它有效意味着您的用户帐户具有权限。在 devops 中,默认情况下服务主体无权执行此操作。
要解决这个问题,最简单的方法是使用下面的-BypassObjectIdValidation
参数,然后就可以正常工作了。
Set-AzKeyVaultAccessPolicy –VaultName "joykeyvault" -PermissionsToKeys get,list -PermissionsToSecrets get,list -ObjectId $objectid -BypassObjectIdValidation
当然还有另一种方法,只需像下面这样在Azure AD Graph中为您的devops连接的AD App授予应用程序权限。 (必须是 Application
在 Azure Active Directory Graph
中键入权限,而不是 Microsoft Graph
,不要忘记单击 Grant admin consent
按钮)
有一项任务使用云 shell 可以简单轻松地完成,我需要授予对我的
的访问权限
Datafactory 获取、设置访问策略
命令
$objectid = (Get-AzDataFactoryV2 -ResourceGroupName "BDAZE1ENRG01" -Name
"BDAZE1INDF03").Identity.PrincipalId
Set-AzKeyVaultAccessPolicy –VaultName "BDAZE1ENKV01" -PermissionsToKeys get,list -
PermissionsToSecrets get,list -ObjectId $objectid
Devops 任务屏幕截图 enter image description here
JEpOB.png
错误是 devops 日志
powershell版本3.1.0任务版本内联脚本4.0
到运行命令Set-AzKeyVaultAccessPolicy
,它会调用Azure AD Graph来验证你传递的$objectid
。在 could shell 中,它使用您的用户帐户的凭据,它有效意味着您的用户帐户具有权限。在 devops 中,默认情况下服务主体无权执行此操作。
要解决这个问题,最简单的方法是使用下面的-BypassObjectIdValidation
参数,然后就可以正常工作了。
Set-AzKeyVaultAccessPolicy –VaultName "joykeyvault" -PermissionsToKeys get,list -PermissionsToSecrets get,list -ObjectId $objectid -BypassObjectIdValidation
当然还有另一种方法,只需像下面这样在Azure AD Graph中为您的devops连接的AD App授予应用程序权限。 (必须是 Application
在 Azure Active Directory Graph
中键入权限,而不是 Microsoft Graph
,不要忘记单击 Grant admin consent
按钮)