我可以将JSON存储在Azure密钥保管库中吗

时间:2019-01-02 15:50:52

标签: json azure azure-keyvault

我有一些要存储在Azure Key Vault中的JSON。

数据不是像这样的分层结构:

{{1}}

但是我有4组JSON数据,每组中都有关于秘密的内容,因此我希望不必将它们分解为单独的密钥,但是如果需要的话,我会这样做。

2 个答案:

答案 0 :(得分:3)

技巧是正确地在PowerShell命令行上转义引号(\`" = backslashbacktickdouble quote),以使 JSON和PowerShell两种格式,用于转义引号。这是一个示例,说明如何添加JSON字符串作为密钥的值。请注意,--value中的文本对于每个需要转义的引号都有一个\`"转义序列。 PowerShell needs backslashbacktickdouble 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以内,就应该行了。