如何在 ARM 模板中创建 Key Vault 托管存储帐户?
Posted
技术标签:
【中文标题】如何在 ARM 模板中创建 Key Vault 托管存储帐户?【英文标题】:How to create a Key Vault Managed Storage Account in an ARM template? 【发布时间】:2021-01-31 19:46:30 【问题描述】:我有一个 ARM 模板,用于创建存储帐户和密钥保管库:
...
"apiVersion": "2019-04-01",
"type": "Microsoft.Storage/storageAccounts",
"name": "mystorageaccountname",
"location": "canadacentral",
"sku":
"name": "Standard_LRS"
,
"kind": "StorageV2",
"properties":
"supportsHttpsTrafficOnly": true
...
...
"apiVersion": "2019-09-01",
"type": "Microsoft.KeyVault/vaults",
"name": "mykeyvault",
"location": "canadacentral",
"properties":
"tenantId": "[subscription().tenantId]",
"sku":
"family": "A",
"name": "standard"
,
"accessPolicies": []
...
我想要我的Key Vault to manage the storage account。对我来说不幸的是,到目前为止我拥有的found examples 是 Powershell 脚本。
在ARM template documentation 中,我不清楚如何实现这样的事情。
问题
如何在 ARM 模板中配置密钥保管库来管理存储帐户?
【问题讨论】:
【参考方案1】:直到某个时候,因为 ARM 模板不支持直接从它们创建 Azure KV 密钥,所以不可能做这样的事情。最近发布了一个更新,它终于可用了:
"type": "Microsoft.KeyVault/vaults/keys",
"name": "[concat(parameters('vaultName'), '/', parameters('keyName'))]",
"apiVersion": "2019-09-01",
"location": "[resourceGroup().location]",
"dependsOn": [
"[resourceId('Microsoft.KeyVault/vaults', parameters('vaultName'))]"
],
"properties":
"kty": "[parameters('keyType')]",
"keyOps": "[parameters('keyOps')]",
"keySize": "[if(equals(parameters('keySize'), -1), json('null'), parameters('keySize'))]",
"curveName": "[parameters('curveName')]"
您可以在此处查看完整示例 - https://docs.microsoft.com/en-us/azure/key-vault/keys/quick-create-template?tabs=CLI。这样,您就可以引用存储帐户密钥值并将其直接放入 Azure Key Vault。您可以尝试使用该结构来做到这一点:
[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName')), providers('Microsoft.Storage', 'storageAccounts').apiVersions[0]).keys[0].value]
【讨论】:
以上是关于如何在 ARM 模板中创建 Key Vault 托管存储帐户?的主要内容,如果未能解决你的问题,请参考以下文章
通过 ARM 模板部署 Azure ML MSI 可在 Key Vault 上启用清除保护
在 Azure Key Vault 支持的 Databricks 中创建秘密范围失败
部署期间如何使用 Azure Key Vault 传递安全参数值?
如何通过 PowerShell 或 ARM 模板在 Azure 数据资源管理器中创建表和摄取映射