Hof*_*nia 6 azure azure-keyvault azure-managed-identity
我认为托管服务标识是一个伟大的概念,我喜欢keyvault.然而:
当我使用增量资源组部署使用脚本时:
为简洁起见,修改了样本
{
"type": "Microsoft.KeyVault/vaults",
"name": "[parameters('keyvaultName')]",
"apiVersion": "2015-06-01",
"properties": {
"accessPolicies": [
{
"objectId": "[reference(parameters('functionAppName'), '2016-08-01', 'Full').identity.principalId]",
"permissions": {
"keys": [],
"secrets": [
"Get"
]
}
}
]
},
"dependsOn": [
"[resourceId('Microsoft.Web/sites', parameters('functionAppName'))]"
]
},
{
"apiVersion": "2016-08-01",
"type": "Microsoft.Web/sites",
"name": "[parameters('functionAppName')]",
"kind": "functionapp",
"identity": {
"type": "SystemAssigned"
},
}
Run Code Online (Sandbox Code Playgroud)
它成功部署并将MSI添加到keyvault,但是 -
它吹走了已经分配的访问策略.arm是否可以保留accessPolicies并仅添加/更新匹配的策略?
如果没有这个,就不可能使用MSI完全编写部署脚本,并将主体分配给keyvault.
我错过了什么吗?
作为博客文章的作者,我将根据mods发布详细信息:
当您部署名称为“ add”的Microsoft.KeyVault / vaults / accessPolicies类型的资源时,该资源将合并到您的更改中。创建这种特殊的子资源类型是为了允许在托管服务身份方案中,您在部署VM之前不知道VM的身份,并且要在部署过程中向该保管库授予该身份访问权限。
增量部署可以与此json一起使用以实现目标:
{
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"vaultName": {
"type": "string"
}
},
"resources": [
{
"type": "Microsoft.KeyVault/vaults/accessPolicies",
"name": "[concat(parameters('vaultName'), '/add')]",
"apiVersion": "2016-10-01",
"properties": {
"accessPolicies": [
{
"tenantId": "dfe47ca8-acfc-4539-9519-7d195a9e79e4",
"objectId": "5abe9358-10ae-4195-ba23-d34111430329",
"permissions": {
"keys": ["all"],
"secrets": ["all"],
"certificates": ["all"],
"storage": ["all"]
}
}
]
}
}
],
"outputs": {
}
}Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1337 次 |
| 最近记录: |