Key Vault 密钥与机密

Key Vault Keys vs Secrets

我们有一个主密钥库,其中应包含用于向某些服务主体进行身份验证的证书(每个环境 1 个 SP)。这些服务主体可以访问他们的个人 Key Vault。我们使用秘密来存储证书。然而,似乎 'keys' 更适合存储证书,因为密钥可以自行生成证书。对吗?

目前,我们的 VSTS 服务主体部署了一个 ARM 模板,并将正确的证书放入 Web 应用服务的证书存储中。然后使用此证书将应用程序验证为 SP,并允许它从 SP 个人密钥保管库中检索机密。

我能够像这样添加证书(作为秘密):

{
     "type":"Microsoft.Web/certificates",
     "name":"testCertificate",
     "apiVersion":"2016-03-01",
     "location":"[resourceGroup().location]",
     "properties":{
        "keyVaultId":"/subscriptions/xxxx/resourceGroups/rg/providers/Microsoft.KeyVault/vaults/xxxx",
        "keyVaultSecretName":"testcert",
        "serverFarmId":"[resourceId('Microsoft.Web/serverfarms', 'asp-test1')]"
}

是否可以通过 'key' 而不是 'secret' 添加证书?如何将密钥映射到 ARM 模板?

我认为现在不可能,查看 ARM 架构我似乎找不到使用 ARM 模板创建密钥的方法,而且我没有看到引用密钥的方法在 WebApp 部署中。

此外,我在之前的回答中链接到您的文章明确指出您需要使用机密(在文章底部查找此字符串):

Create a self-signed certificate and authorize it to read Key Vault Secrets as described here

Link: https://blogs.msdn.microsoft.com/appserviceteam/2016/05/24/deploying-azure-web-app-certificate-through-key-vault/