【问题标题】:Reading KeyVault from Devopos Pipeline - YAML从 Devops 管道读取 Key Vault - YAML
【发布时间】:2022-01-28 02:51:56
【问题描述】:

在 yaml 中添加任务以读取 KV。

我得到了这个 yaml 代码:

parameters:
  - name: DeployTo
    type: string
    default: SIT
    values:
      - SIT
pool:
    vmImage: vs2017-win2016
variables:
    environmentToDeploy: ${{ lower(parameters.DeployTo)}}
    subscription: np
  
stages:
- stage: SIT
  displayName: SIT - Infrastructure deploy 
  condition: eq('${{ parameters.DeployTo}}','SIT')

  jobs:
     - template: ymlTemplates\environment-deploy.yml  # Template reference
       parameters:
          DeployTo: '${{ parameters.DeployTo }}'
          environmentToDeploy: '${{ variables.environmentToDeploy }}'
          subscriptionId: 'xxxf7fc0-exx3-x000-9f55-04xxxxxx76f4'
          SqlPassword: $(sqlpassword)
          AdminPassword: $(adminpassword)

目前sqlpasswordadminpassword 的值作为管道变量传递。我想从 KeyVault 中阅读此内容。我怎样才能在工作之前在这个 .yaml 中放置一个任务。 :)

【问题讨论】:

  • 我建议您首先尝试使用服务主体/服务连接,以避免整个 KeyVault 繁琐。显然,如果这是一个本地 SQL Server,这不是一个选项。

标签: azure-devops yaml azure-pipelines-yaml schema.yml


【解决方案1】:

使用AzureKeyVault task。来自 KeyVault 的机密将作为管道变量提供。

管道如下所示:

  jobs:
     # assuming 'sqlpassword' and 'sqlpassword' secrets in keyvault
     - task: AzureKeyVault@1
       inputs:
         azureSubscription: 'my azure subscription'
         keyVaultName: 'my vault'
         secretsFilter: '*'

     - template: ymlTemplates\environment-deploy.yml  # Template reference
       parameters:
          DeployTo: '${{ parameters.DeployTo }}'
          environmentToDeploy: '${{ variables.environmentToDeploy }}'
          subscriptionId: 'xxxf7fc0-exx3-x000-9f55-04xxxxxx76f4'
          SqlPassword: $(sqlpassword)
          AdminPassword: $(adminpassword)

【讨论】:

  • 请记住,您的服务原则可能必须具有额外的访问权限才能读取 Key Vault Secret 值。
猜你喜欢
  • 1970-01-01
  • 2019-03-25
  • 2020-12-08
  • 1970-01-01
  • 2018-06-06
  • 2020-09-09
  • 2020-05-23
  • 2020-03-11
  • 2021-07-05
相关资源
最近更新 更多