我有一个用秘密定义的Azure密钥库,我可以使用“Azure密钥库”任务在devops构建管道中访问它。现在我需要将秘密变量传递给python内联脚本。
由于它是加密的,python无法直接读取该值。我如何解密并传递它们。这个秘密持有Databricks的访问令牌。我们正在尝试使用DevOps管道创建Databricks集群。
我的Yaml有以下任务
我尝试了以下方法。
>
使用powershell从秘密转换为环境变量。我试图首先使用这个链接-https://github.com/Microsoft/azure-pipelines-tasks/issues/8345将秘密转换为变量。当在python中作为论证调用时,它不是传递秘密值,而是传递python中带有$符号的变量名称。
由于一些限制我们不想使用变量组
编辑:更新以添加更多详细信息。
该任务可用于从vault中获取所有或部分机密的最新值,并将其设置为变量,可用于管道的后续任务
正如上面对azure keyvault任务所述。您可以直接使用azure keyvault中的机密,方法是在python脚本中将它们包装在“$(secretname)”中。将其转换为环境变量不需要额外的powershell任务。
当您在控制台中打印出来时,出于安全原因,它将被加密并输出 "***" 。但是秘密的实际价值对您的代码是可见的。
我使用下面的示例python脚本进行测试,以确认可以在python脚本中访问secret值。
我创建了一个名为“密码”的秘密测试密钥库,其值为“123456789”。python脚本在控制台中执行“111111”任务,这证实了该秘密对python脚本是可见的。
您可以按照本文档中的详细步骤使用keyvault中的秘密。
我试过不同的组合,没有一个对我有效。 测试管道号。1-使用连接到密钥库的group变量(为了方便起见,这里的密钥名是静态的,但实际上,它是在管道过程中通过powershell脚本设置的): 结果是:
我已经使用ARM在Azure DevOps中创建了一个密钥库,现在我想在同一个管道中为它写一个秘密。 我用以下内联的PowerShell创建了一个Azure PowerShell任务: 密钥存储库创建得很好,但在尝试写入密钥时,我会遇到以下错误:
目前,在我看来,有很多方法可以引用秘密: 使用@或 直接,在存储库中为fx一个名为secret的秘密,然后直接引用它 具有Azure函数,或 配置已运行的应用程序,并将密钥存储库添加到堆栈 我很难看出什么时候用什么。
使用AKV管理存储帐户:https://docs.microsoft.com/en-us/Azure/key-vault/key-vault-overview-storage-keys-powershell#manage-storage-account-keys 使用Azure Automation进行密钥循环:https://docs.microsoft.com/en-us/Azure/key-