如何 safe/protect Azure 服务主体机密

How safe/protect Azure service principal secret

我的部署任务使用 PowerShell 脚本,它使用服务主体连接到 Azure KeyVault 以获取 pull secret。秘密(密码)以纯文本形式存储在 PowerShell 脚本的代码中。也许还有另一种解决方案如何最大限度地减少令牌查看。

而且我在部署任务中使用 Powershell 内联模式(不是单独的脚本)和 Azure DevOps 秘密变量,但是这个解决方案很难支持(脚本有几个不同的操作,所以你必须保留多个版本的脚本) .

脚本存储在 Git 存储库中,任何有权访问它的人都可以看到秘密并获得对其他密钥的访问权限。可能我对这个概念的理解不正确,但是如果代码中不能存储key,那怎么办呢?

I devops 你可以使用变量组并定义变量是直接从选定的密钥库中提取的(如果你选择的服务主体可以 read/list 访问 KV)LINK

这意味着您可以在 keyvault 中定义所有机密,并且它们将在您的 yaml 中发生任何任务之前被提取。为了能够在脚本中使用它们,您可以将它们定义为脚本的 env 变量或参数,并仅引用 $env:variable 或 $variable,而不是将秘密硬编码在脚本中。