【问题标题】:Can key vault secrets be retrieved and retained by a pipeline?可以通过管道检索和保留密钥库机密吗?
【发布时间】:2021-08-25 04:42:20
【问题描述】:
我有一个存储在 Azure Key Vault 中的 API 令牌。我想提供对这个 secret 的访问权限,以便可以从各种管道中使用它。但我不一定希望任何编辑/执行这些管道的人都能够保留令牌。如果管道只是echoes secret 值,那么构建代理日志不会简单地显示它,从而使整个密钥库过程成为无用的步骤吗?
如果是这种情况,如果我不一定要信任可以创建管道的每个人,是否有办法保护价值?
【问题讨论】:
标签:
azure-devops
azure-pipelines
azure-keyvault
【解决方案1】:
这取决于如何检索秘密并将其转换为变量。通常,通过标准 Azure Pipelines 任务检索到的机密在显示时将被屏蔽为 ****。
但是,没有什么可以阻止恶意的人对值进行 base64 编码并打印它。或ROT编码。或者反过来。或者将字符串分成两半并打印两半。或运行执行此操作的脚本:az keyvault secret show。以此类推。
如果内存中有一个纯文本形式的秘密值,并且人们有能力操纵该秘密以纯文本形式存储在内存中的环境,那么获取该秘密的纯文本值是微不足道的。在任何情况下对任何计算机都是如此。
如果这是一个问题,到目前为止最好的方法是不让管道读取机密。如果您的应用程序可以配置为直接与 keyvault 集成并在运行时根据需要检索机密,则无需让管道检索机密作为中间步骤。