azure - 使用 ARM 模板创建用户管理的身份和服务器管理员
问题描述
我想将用户管理的身份作为管理员添加到 azure 中的 sql server 资源。我可以使用这样的 ARM 模板创建用户身份:
{
"type": "Microsoft.ManagedIdentity/userAssignedIdentities",
"name": "[variables('identityName')]",
"apiVersion": "2018-11-30",
"location": "[resourceGroup().location]"
},
我也可以从 ARM 模板创建管理员资源。但是如何在管理员资源中引用上面创建的身份呢?:
{
"name": "[concat(variables('serverName'),'/ActiveDirectory')]",
"type": "Microsoft.Sql/servers/administrators",
"dependsOn": [
"[resourceId('Microsoft.Sql/servers', variables('serverName'))]"
],
"apiVersion": "2019-06-01-preview",
"properties": {
"administratorType": "ActiveDirectory",
"login": "[parameters('identityName')]",
"sid": "<How do I add reference here>",
"tenantId": "<How do I add reference here>"
}
}
解决方案
我尝试了一些东西,以下似乎工作正常:
{
"name": "[concat(variables('serverName'),'/ActiveDirectory')]",
"type": "Microsoft.Sql/servers/administrators",
"dependsOn": [
"[resourceId('Microsoft.Sql/servers', variables('serverName'))]",
"[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', variables('identityName'))]"
],
"apiVersion": "2019-06-01-preview",
"properties": {
"administratorType": "ActiveDirectory",
"login": "[variables('identityName')]",
"sid": "[reference(concat('Microsoft.ManagedIdentity/userAssignedIdentities/', variables('identityName'))).clientId]",
"tenantId": "[reference(concat('Microsoft.ManagedIdentity/userAssignedIdentities/', variables('identityName'))).tenantId]"
}
},
推荐阅读
- reactjs - 在 react-native 动画中使用计算变量
- python - AttributeError:“function”对象没有属性“tableId”。Apache Beam 数据流运行器
- node.js - 节点 TypeScript 导入/导出机制
- excel - 如何使用 vba 在 excel 中仅将一个工作表保存为不同的工作簿?
- azure - 错误“指定的应用程序包不存在。” 在从 azure cli 检查是否存在 azure 批处理应用程序包时?
- r - 手动制作随机森林模型不会给出相同的结果
- mongodb - MongoDB 中的并行更新问题
- java - 如何正确构建“PUT 方法”并执行“实习请求”?
- performance - 为什么最大的内容绘画几乎是 4 秒?
- git - Visual Studio Code 中文件名旁边的这个标记数字是什么