linux 上使用 az keyvault 的 Azure 秘密下载问题

Azure secret download issue on linux using az keyvault

我在 Ubuntu 18.04,尝试使用 Azure CLI (2.0.56) 从 Azure KeyVault 下载 Secret。在 Windows 上的 Powershell 中下载 Secret 工作正常,但在 Linux 上它失败并出现以下错误:

'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)

命令本身:

az keyvault secret download -n secret-file --vault-name testkeyvault -f /usr/src/secret-file.json

我尝试用 UNIX Line Endings 保存文件,编码是 UTF-8,我可以在 Linux 中用 cat 打开文件,我什至可以使用相同的设置秘密Linux 中的文件和 az keyvault secret set 但之后无法直接下载。

也许这可以帮助搜索类似问题的人。我认为问题在于 Azure CLI 中的实施。作为一种解决方法,在使用 show 而不是 download 操作后,我使用 jq 自己解析 secret 的内容。

这是执行此操作的命令:

az keyvault secret show -n secret-file --vault-name testkeyvault | jq '.value | fromjson' > /usr/src/secret-file.json