Azure 我可以通过ARM模板应用权限吗?
在Azure中,如果我想通过RBAC为资源组授予读取权限,我可以通过ARM模板来实现吗?我知道这可以通过VSTS构建步骤或PS脚本实现,但有没有办法通过ARM模板授予权限?不,这是不可能的,因为应用权限的REST调用是这样的:Azure 我可以通过ARM模板应用权限吗?,azure,permissions,Azure,Permissions,在Azure中,如果我想通过RBAC为资源组授予读取权限,我可以通过ARM模板来实现吗?我知道这可以通过VSTS构建步骤或PS脚本实现,但有没有办法通过ARM模板授予权限?不,这是不可能的,因为应用权限的REST调用是这样的: /subscriptions/xxx/providers/Microsoft.Authorization/roleDefinitions/xxx 您还不能使用ARM模板复制订阅“级别”rest调用 Welp,与我所知道的相反,这是有效的: { "$schema"
/subscriptions/xxx/providers/Microsoft.Authorization/roleDefinitions/xxx
您还不能使用ARM模板复制订阅“级别”rest调用
Welp,与我所知道的相反,这是有效的:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"resources": [
{
"type": "Microsoft.Authorization/roleAssignments",
"name": "8446a13c-6886-46e2-a17f-9df73adb334e",
"apiVersion": "2017-10-01-preview",
"location": "[resourceGroup().location]",
"properties": {
"roleDefinitionId": "[concat(subscription().Id, '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c')]",
"principalId": "user_guid_goes_here",
"scope": "[resourceGroup().Id]"
}
}
]
}
这会将参与者角色分配给具有所提供guid(principalId)的用户,并将其分配给部署模板的资源组。要分配其他角色,请获取其guid并替换参与者guid(b24988ac-6180-42a0-ab88-20f7382dd24c-众所周知的guid)。您还可以为特定资源分配权限。使用scope
执行此操作(将其更改为resourceId)<代码>名称必须是新的guid
我不知道为什么会这样,我会在找到原因后再联系您。不,这是不可能的,因为应用权限的REST调用是这样的:
/subscriptions/xxx/providers/Microsoft.Authorization/roleDefinitions/xxx
您还不能使用ARM模板复制订阅“级别”rest调用
Welp,与我所知道的相反,这是有效的:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"resources": [
{
"type": "Microsoft.Authorization/roleAssignments",
"name": "8446a13c-6886-46e2-a17f-9df73adb334e",
"apiVersion": "2017-10-01-preview",
"location": "[resourceGroup().location]",
"properties": {
"roleDefinitionId": "[concat(subscription().Id, '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c')]",
"principalId": "user_guid_goes_here",
"scope": "[resourceGroup().Id]"
}
}
]
}
这会将参与者角色分配给具有所提供guid(principalId)的用户,并将其分配给部署模板的资源组。要分配其他角色,请获取其guid并替换参与者guid(b24988ac-6180-42a0-ab88-20f7382dd24c-众所周知的guid)。您还可以为特定资源分配权限。使用scope
执行此操作(将其更改为resourceId)<代码>名称必须是新的guid
我不知道为什么会这样,我会在找到原因后再联系您。我们可以为资源组及其资源分配权限
{
"type": "Microsoft.Authorization/roleAssignments",
"name": "[variables('roleName')]",
"apiVersion": "[variables('authAPIVersion')]",
"properties": {
"roleDefinitionId": "[concat(subscription().id, '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c')]",
"principalId": "[parameters('principalId')]",
"scope": "[concat(subscription().id, '/resourceGroups/',resourceGroup().name)]"
}
}
有关更多详细信息,请转到此链接-我们可以为资源组及其资源分配权限
{
"type": "Microsoft.Authorization/roleAssignments",
"name": "[variables('roleName')]",
"apiVersion": "[variables('authAPIVersion')]",
"properties": {
"roleDefinitionId": "[concat(subscription().id, '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c')]",
"principalId": "[parameters('principalId')]",
"scope": "[concat(subscription().id, '/resourceGroups/',resourceGroup().name)]"
}
}
有关更多详细信息,请访问此链接-一件重要的事情,我们无法使用ARM模板对订阅级别应用权限。我们只能对资源组及其资源应用权限。重要的一点是,我们不能使用ARM模板对订阅级别应用权限。我们只能对资源组及其资源应用权限。本文档中的内容如何:?我无法让它工作,但你确定这只能通过REST电话实现吗?检查更新的答案。我不知道它是如何工作的,因为它不应该;)是的,这完全奏效了。我想我的手机坏了,因为我的手机版本不对。对于资源的名称,我使用了一个GUID生成器,它可以正常工作。您能解释一下为什么资源的名称需要是GUID吗?因为这是资源提供程序的工作方式。它将随机GUID分配给资源名称。你必须模仿这种行为如果我想把这一步放在多个方面,我每次都需要一个唯一的GUID吗?文档中的东西呢?我无法让它工作,但你确定这只能通过REST电话实现吗?检查更新的答案。我不知道它是如何工作的,因为它不应该;)是的,这完全奏效了。我想我的手机坏了,因为我的手机版本不对。对于资源的名称,我使用了一个GUID生成器,它可以正常工作。您能解释一下为什么资源的名称需要是GUID吗?因为这是资源提供程序的工作方式。它将随机GUID分配给资源名称。你必须模仿这种行为如果我想把这一步放在多个方面,我每次都需要一个唯一的GUID吗?
{
"type": "Microsoft.Authorization/roleAssignments",
"name": "[variables('roleName')]",
"apiVersion": "[variables('authAPIVersion')]",
"properties": {
"roleDefinitionId": "[concat(subscription().id, '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c')]",
"principalId": "[parameters('principalId')]",
"scope": "[concat(subscription().id, '/resourceGroups/',resourceGroup().name)]"
}
}