使用 ARM 模板的 Azure Vault 上的 ListSecrets?

ListSecrets on Azure Vault using an ARM template?

如何使用 ARM 模板从 Azure Vault 获取机密?

我的模板:

{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {},
    "resources": [],
    "outputs": {
        "referenceOutput": {
            "type": "object",
            "value": "[listSecrets(resourceId('my-resource-group', 'Microsoft.KeyVault/vaults/secrets', 'myKeyVault','mySecret'), '2016-10-01')]"
        }
    }
}

然后 运行 与:

az group deployment create -g some-rg --template-file ./arm.json

错误:

Deployment failed. Correlation ID: f76de3f2-a9ff-427c-9ae0-b7b24c3fde5d. {
  "error": {    "code": "BadRequest",    "message": "<!DOCTYPE html P

....

<h2>404 - File or directory not found.</h2>\r\n  <h3>The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.</h3>\r\n </fieldset></div>\r\n</div>\r\n</body>\r\n</ht
ml>\r\n"

使用 ARM 模板无法做到这一点,但您可以在 ARM 模板中引用机密以将其作为值传递。

"password": {
    "reference": {
        "keyVault": {
            "id": "vaultId"
        },
        "secretName": "secretName"
    }
}

但是你要知道这个表达式不能直接在模板中使用。调用嵌套模板时,您可以在参数文件 and\or 中使用它。

此外,您可以对某些资源的某些属性(例如 VM 密码)使用类似的表达式