当前位置: 首页 > 知识库问答 >
问题:

Azure DevOps中密钥库秘密变量的动态访问

谭文林
2023-03-14

我试过不同的组合,没有一个对我有效。

测试管道号。1-使用连接到密钥库的group变量(为了方便起见,这里的密钥名是静态的,但实际上,它是在管道过程中通过powershell脚本设置的):

jobs:
- job: JobA
  variables:
  - group: KeyVaultGroup #Key vault have secret values "Key1,Key2,Key3..."
  - name: KeyName
    value: Key2
  - name: MyValue
    value: $[ variables[variables.KeyName] ]
  steps:
  - powershell: |
      Write-Host "Var1 $($env:VARENV1)"
      Write-Host "Var2 $($env:VARENV2)"
    env:
      VarEnv1: $(MyValue)
      VarEnv2: $($(KeyName))

结果是:

Var1 
Var2 $(Key2)

共有1个答案

贝嘉泽
2023-03-14

在这种情况下,最好的方法是使用Azure CLI任务和Azure keyvault命令:

  - task: AzureCLI@2
    inputs:
      azureSubscription: 'rg-the-code-manual'
      scriptType: 'pscore'
      scriptLocation: 'inlineScript'
      inlineScript: |
        $secretValue =  az keyvault secret show --vault-name tcm-kv --name $(keyName) --query value
        echo $secretValue

这个脚本的内容是在运行时评估的,所以您可以在执行这个任务之前设置keyname,一切都会好起来。如果需要secret的值作为变量,可以使用日志命令创建这样的值。

消除双引号的最简单方法是将输出更改为tsv

$secretValue =  az keyvault secret show --vault-name tcm-kv --name $(keyName) --query value -o tsv
 类似资料:
  • 问题是不能使用句号(.)在一个蔚蓝的钥匙库里。 有人知道如何使用Azure密钥库中的秘密在AppSettings.json文件中用嵌套级别替换变量吗?

  • 我正在python中构建由事件网格事件触发的Azure函数,它应该能够从Kay Vault收集秘密。 我将系统分配的托管标识添加到我的功能应用程序中,然后我可以在密钥库访问策略中选择我的应用程序。我授予它如下所示的权限: (我尝试了不同的组合在这一个)

  • 我有一个用秘密定义的Azure密钥库,我可以使用“Azure密钥库”任务在devops构建管道中访问它。现在我需要将秘密变量传递给python内联脚本。 由于它是加密的,python无法直接读取该值。我如何解密并传递它们。这个秘密持有Databricks的访问令牌。我们正在尝试使用DevOps管道创建Databricks集群。 我的Yaml有以下任务 Azure KeyVault Powershe

  • 目前,在我看来,有很多方法可以引用秘密: 使用@或 直接,在存储库中为fx一个名为secret的秘密,然后直接引用它 具有Azure函数,或 配置已运行的应用程序,并将密钥存储库添加到堆栈 我很难看出什么时候用什么。

  • 我试图编译代码时遇到了这个异常。我已经安装了eclips工具包,我正在使用EclipseKepler 异常线程"main"java.lang.NoClassDefFoundError: org/apache/共用/日志/LogFactory在com.amazonaws.Amazon WebServiceClient.(Amazon WebServiceClient.java:56)在test_to

  • 我试图从Powershell管道脚本中读取Azure DevOps秘密变量。该变量在Azure中如下所示: 我尝试以的形式访问secret变量,例如 简单地作为环境变量,例如 如上映射显示了隐藏在星号后面的字符串。