Azure DevOps:以编程方式访问秘密变量

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

上下文:具有多个应用程序的单一存储库(Nx)

在 Azure DevOps 中,我尝试检索应用程序的部署令牌。由于将令牌存储在存储库上的 JSON 中并不安全,因此我想将 secretName 中的

 秘密名称 
保存在配置文件中(位于某处),然后使用简单的脚本检索它:

    for app in $apps; do
       # Check if the deployment-config.json exists for the app
       configPath="apps/$app/deployment-configs/deployment-config.${{ parameters.target_environment }}.json"
       if [ -f "$configPath" ]; then
          secretName=$(jq -r '.secretName' "$configPath") # Retrieve secret name from config file
          # TODO: RETRIEVE SECRET!
       fi
    done

现在我已经有了包含我的脚本的变量的名称。

设置管道秘密不起作用,因为我需要显式地将所有秘密作为

env
参数传递(当您在 3 个不同环境中拥有多个应用程序时,这并不理想)。 所以像
secretValue=${!secretName}
这样的东西是行不通的。

有没有办法在不显式将秘密设置为 env 的情况下实现此目的?使用 Azure KeyVault 可能是一种有效的实施方法

bash azure azure-devops
1个回答
0
投票

在管道

script
步骤中,我们可以直接使用管道机密或通过管道库
AzureKeyVault@2
任务从Azure Key Vault检索的机密。

Image

如果您要将秘密值填充到配置 JSON 文件中,您可以尝试使用第 3 方市场扩展任务替换令牌

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