gpt4 book ai didi

json - 使用 ARM 将 Azure RBAC 应用于资源

转载 作者:行者123 更新时间:2023-12-04 12:39:05 29 4
gpt4 key购买 nike

有没有办法通过 ARM 在资源级别应用 RBAC 规则?我能够关注this Microsoft guide在资源组级别添加用户/角色,但不在资源级别添加用户/角色。特别是,我正在尝试通过 ARM 向 AppInsights 添加新的读者角色。但是,当我调整范围时,模板失败并出现以下错误:

"error": {
"code": "InvalidCreateRoleAssignmentRequest",
"message": "The request to create role assignment '{guid}' is not valid. Role assignment scope '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/Microsoft.Insights/components/{resourceGroupName}' must match the scope specified on the URI '/subscriptions/{resourceGroupName}/resourcegroups/{resourceGroupName}'."
}

我想知道如果作用域变量无法更改,它的作用是什么。我是否应该在其他地方修改范围才能使其正常工作?

提前致谢!

最佳答案

关键是删除 scope属性,而是使用 Microsoft.FooResource/BarSubType/providers/roleAssignments 将角色分配嵌套在所需资源下作为类型,并使用以下格式作为名称:{resourceName}/Microsoft.Authorization/{uniqueRoleAssignmentGuid} 。请注意,GUID 应该稳定但对于此角色分配是唯一的,一个简单的选项是 guid(subscription().subscriptionId, 'some-sub-identifier-if-you-wish') .

以下模板向您展示如何使用同一模板中定义的用户分配的托管标识将 RBAC 应用于单个资源:

{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccountName": { "type": "string" },
"userAssignedIdentityName": { "type": "string" }
},
"variables": {
"ContributorRoleDefinition": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', 'b24988ac-6180-42a0-ab88-20f7382dd24c')]",
},
"resources": [
{
"type": "Microsoft.ManagedIdentity/userAssignedIdentities",
"name": "[parameters('userAssignedIdentityName')]",
"location": "[resourceGroup().location]",
"apiVersion": "2018-11-30"
},
{
"type": "Microsoft.Storage/storageAccounts",
"name": "[parameters('storageAccountName')]",
"location": "[resourceGroup().location]",
"apiVersion": "2016-12-01",
"sku": { "name": "Standard_LRS" },
"kind": "Storage",
"resources": [
{
"type": "Microsoft.Storage/storageAccounts/providers/roleAssignments",
"apiVersion": "2017-05-01",
"name": "[concat(parameters('storageAccountName'), '/Microsoft.Authorization/', guid(subscription().subscriptionId, 'foo'))]",
"properties": {
"roleDefinitionId": "[variables('ContributorRoleDefinition')]",
"principalId": "[reference(parameters('userAssignedIdentityName'), '2018-11-30').principalId]"
},
"dependsOn": [
"[resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]",
"[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('userAssignedIdentityName'))]"
]
}
]
}
]
}

来源:https://www.henrybeen.nl/creating-an-authorization-rule-using-an-arm-template/

关于json - 使用 ARM 将 Azure RBAC 应用于资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52340455/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com