2
param rg_la_dev_eastus_name string = 'rg-la-dev-eastus-001'
param rg_la_prod_eastus_name string = 'rg-la-prod-eastus-001'

targetScope = 'subscription'

resource rgLaDev 'Microsoft.Resources/resourceGroups@2020-06-01' = {
  name: rg_la_dev_eastus_name
  location: 'eastus'
}

resource rgLaProd 'Microsoft.Resources/resourceGroups@2020-06-01' = {
  name: rg_la_prod_eastus_name
  location: 'eastus'
}

我可以创建一个资源组,但我想从这里分配一个角色。我不想每次都以图形方式进行。

4

2 回答 2

1

使用此脚本通过 Bicep 分配 RBAC 角色:

resource symbolicname 'Microsoft.Authorization/roleAssignments@2020-04-01-preview' = {
  name: 'string'
  scope: 'string'
  properties: {
    roleDefinitionId: 'string'
    principalId: 'string'
    principalType: 'string'
    canDelegate: bool
    description: 'string'
    condition: 'string'
    conditionVersion: 'string'
  }
}

参考这里

于 2021-04-08T01:42:56.750 回答
0

只需添加到@allen-wu 响应 - 请记住,您不能在带有targetScope = 'subscription'. 您需要在以您要分配权限的资源组为目标的模块中使用它。

所以你需要有 3 个文件——一个是你创建资源组的地方,第二个是你放置 roleAssignments 资源的地方。然后,从第一个调用模块:

module rgLaDevPermissions 'devPermissions.bicep' = {
  name: '${deployment().name}-${rgLaDev.name}-permissions'
  scope: rgLaDev
}

module rgLaProdPermissions 'prodPermissions.bicep' = {
  name: '${deployment().name}-${rgLaProd.name}-permissions'
  scope: rgLaProd
}

如果 roleAssignments 的结构相同并且仅分配给谁不同,您当然可以使用模块参数来拥有单个模块文件。

有关更多信息,请参见此处:https ://github.com/Azure/bicep/issues/1388

于 2021-04-11T07:19:47.200 回答