【发布时间】:2019-11-25 16:50:02
【问题描述】:
一个基于 Azure DevOps YAML 的管道是从头开始创建的,需要使用 Azure 订阅。订阅值已存储在 Key Vault 中,然后链接到变量组。 Pipeline 可以不显眼地访问变量组和链接的 Key Vault。但是,管道执行失败,并显示管道无权访问所需订阅的错误。当订阅值移动到变量组时,问题仍然存在。当 Subscription 值被声明为管道变量时,问题就消失了。单击错误旁边的“授权”按钮对问题没有帮助。
- stage: 'DeployDevelopment'
displayName: ''
dependsOn: Build
jobs:
- deployment: DeployDevelopment
pool:
vmImage: 'ubuntu-latest'
environment: Development
variables:
- group: Secrets
- group: Release
strategy:
runOnce:
deploy:
steps:
- task: AzureRmWebAppDeployment@4
displayName: ''
inputs:
azureSubscription: '$(ConnectedServiceName)'
appType: 'webAppLinux'
WebAppName: '$(DevEnvironemntWebAppName)'
packageForLinux: '$(Pipeline.Workspace)/app/s'
RuntimeStack: 'NODE|10-lts'
StartupCommand: '$(StartupCommand)'
WebConfigParameters: '-Handler iisnode -NodeStartFile server.js -appType node'
AppSettings: '-WEBSITE_NODE_DEFAULT_VERSION 10.12.0'
【问题讨论】:
-
Azure 服务连接至少需要获取和列出机密保管库的管理权限。您是否在访问策略中选择了这两个权限?
-
已授予所需权限。但是,即使订阅值未存储在 Key Vault 中,而仅存储在变量组中,问题仍然存在。
-
测试了来自 Azure 密钥库的链接机密作为变量组中的变量,我能够在管道中成功download the secret。您能分享您的详细操作步骤吗?这将有助于进一步调查。跨度>
-
我在问题中添加了代码 sn-p。从 Key Vault 下载任何变量都不是问题,因为我还设法获取并且最重要的是使用了其他变量。该问题特定于订阅值,并且此值不必位于 Key Vault 中。如果将它放在变量组中,问题仍然存在。
标签: azure yaml azure-pipelines azure-pipelines-release-pipeline azure-pipelines-build-task