Azure ARM 模板 - 创建 empty/default 个机密的 Key Vault

Azure ARM tempate - Key Vault with creating empty/default secrets

我正在部署一个带有机密列表的 Azure Key Vault。为此,我使用了 quickstart-template.

这似乎工作正常,但有一些问题:

  1. 秘密值(在 parameters.json 中提供)在每次部署时被覆盖
  2. 我只想创建密钥,以便管理员用户可以为其提供值。但是从属性部分中删除值会导致错误 BadRequest / An invalid value was provided for 'value'.

第二个问题已在 github 注册,但有人找到解决此问题的方法吗?

我建议查看 API 文档,而不是模板参考(因为它是垃圾)。 Here 表示需要该值。

所以这是预料之中的。这不是错误。

话虽如此,这意味着您需要一些其他方式来管理 Azure Key Vault 中的机密

如果您正在寻找管理员在以后提供密码,我建议为管理员附加一个 Access Policy to the KeyVault via ARM 并在密码中包含一个虚拟值,这样他们就可以在门户中更新.

此外,如果您不是真的热衷于虚拟值或考虑自动化 creation/insertion 过程,我建议您使用 PowerShell to create and insert the secret to your Key Vault

通过 ARM 设置机密可能如下所示:

 {
      "type": "Microsoft.KeyVault/vaults/secrets",
      "name": "[concat(variables('keyVaultName'),'/',variables('secretName'))]",
      "apiVersion": "2018-02-14",
      "properties": {
        "contentType": "text/plain",
        "value": "[parameters('secretValue')]"
      },
      "dependsOn": [
        "[resourceId('Microsoft.KeyVault/vaults',  variables('keyVaultName'))]"
      ]
    },

这对我有用:

az keyvault secret set --vault-name=<vault-name> --name <secret-name> --file /dev/null