Azure Devops Release Pipeline - 密钥中有特殊字符的 Keyvault
Azure Devops Release Pipeline - Keyvault with special characters in the secret
我是 运行 devops 发布管道,我通过此任务撤回 keyvaults 秘密
步骤:
- 任务:AzureKeyVault@1
我的秘密值看起来像这样。 abc$def&ghi
我正在通过 Powershell 使用此机密更新数据库记录。
最终在数据库中的值为“abcghi” $ 和直到字符,包括 & 被排除在外。
我是否需要以某种方式逃避来自 keyvault 的秘密?
-兰迪
您是否尝试在 PowerShell 数据库更新脚本中使用双引号字符串内的秘密值?像这样:
$sqlCommand = "update table set value='abc$def&ghi' where id=1";
如果是这样,PowerShell 正在尝试将 $def
扩展为变量。它可能 不是真正的 变量,并且会扩展为空字符串。
您可以使用反引号转义密钥保管库中的美元符号 `$
,但如果您需要在非 PowerShell 场景中使用该机密,则必须小心。
或者,您可以在字符串周围使用单引号字符;尽管您随后需要转义该字符串中使用的任何单引号字符:
$sqlCommand = 'update table set value=''abc$def&ghi'' where id=1';
有关详细信息,请参阅 PowerShell 文档 about quoting rules。
我是 运行 devops 发布管道,我通过此任务撤回 keyvaults 秘密
步骤:
- 任务:AzureKeyVault@1
我的秘密值看起来像这样。 abc$def&ghi
我正在通过 Powershell 使用此机密更新数据库记录。
最终在数据库中的值为“abcghi” $ 和直到字符,包括 & 被排除在外。
我是否需要以某种方式逃避来自 keyvault 的秘密?
-兰迪
您是否尝试在 PowerShell 数据库更新脚本中使用双引号字符串内的秘密值?像这样:
$sqlCommand = "update table set value='abc$def&ghi' where id=1";
如果是这样,PowerShell 正在尝试将 $def
扩展为变量。它可能 不是真正的 变量,并且会扩展为空字符串。
您可以使用反引号转义密钥保管库中的美元符号 `$
,但如果您需要在非 PowerShell 场景中使用该机密,则必须小心。
或者,您可以在字符串周围使用单引号字符;尽管您随后需要转义该字符串中使用的任何单引号字符:
$sqlCommand = 'update table set value=''abc$def&ghi'' where id=1';
有关详细信息,请参阅 PowerShell 文档 about quoting rules。