我使用PowerShell脚本的部署任务,该脚本使用Service Principal连接到Azure KeyVault以获取秘密。秘密(密码)以纯文本形式存储在PowerShell脚本的代码中。也许还有另一种解决方案,如何最大程度地减少令牌查看。
我也将Powershell内联模式(不是单独的脚本)与Azure DevOps Secret Variable一起用于部署任务,但是此解决方案难以支持(脚本具有多种不同的操作,因此您必须保留脚本的多个版本)。 / p>
脚本存储在Git存储库中,有权访问该脚本的任何人都可以看到该秘密并获得对其他密钥的访问权限。也许我没有正确理解这个概念,但是如果密钥不能存储在代码中,那我该怎么办?
答案 0 :(得分:0)
我可以使用变量组并定义将变量直接从选定的密钥库中拉出(如果您选择的服务主体具有对KV的读取/列表访问权限)LINK。
这意味着您可以定义密钥库中的所有机密,并且它们会在Yaml中的任何任务发生之前被拉出。为了能够在脚本中使用它们,您可以将它们定义为脚本的env变量或参数,并仅引用$ env:variable或$ variable,而不是在脚本中进行硬编码。