我有一些要存储在Azure Key Vault中的JSON。
数据不是像这样的分层结构:
{{1}}
但是我有4组JSON数据,每组中都有关于秘密的内容,因此我希望不必将它们分解为单独的密钥,但是如果需要的话,我会这样做。
答案 0 :(得分:3)
技巧是正确地在PowerShell命令行上转义引号(\`"
= backslash
,backtick
和double quote
),以使 JSON和PowerShell两种格式,用于转义引号。这是一个示例,说明如何添加JSON字符串作为密钥的值。请注意,--value
中的文本对于每个需要转义的引号都有一个\`"
转义序列。 PowerShell needs backslash
,backtick
和double quote
以在命令行中转引号。 JSON通常需要使用backslash
序列来转义JSON字符串中的引号,但是由于PowerShell正在转义整个引号(恰好也使用了\
来这样做),因此多余的\
不是需要:
az keyvault secret set --vault-name "<YourKeyVaultName>" --name "AppSecret" --description "An optional description" --disabled false --value "{\`"type\`":\`"XXXXXX\`",\`"project_id\`":\`"XXXXXX\`",\`"private_key_id\`":\`"XXXXXXXX\`"}"
答案 1 :(得分:2)
将其视为有效的声明,以使用Azure CLI将秘密添加到Azure密钥保管库:
az keyvault secret set --vault-name "<YourKeyVaultName>" --name "AppSecret" --value "MySecret"
,取自Tutorial: Use Azure Key Vault with an Azure web app in .NET
在此基础上,我看不到任何理由MySecret
不能为JSON字符串。
进一步研究,看看About keys, secrets, and certificates - Key Vault secrets:
从开发人员的角度来看,Key Vault API接受并以字符串形式返回秘密值。在内部,Key Vault以八位字节序列(8位字节)的顺序存储和管理机密,每个最大长度为25k字节。
只要您的JSON限制在25k以内,就应该行了。