【Azure 环境】使用Azure bicep对多个ServicePrinciple 进行role assignment分配

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
应用实时监控服务-用户体验监控,每月100OCU免费额度
函数计算FC,每月15万CU 3个月
简介: 使用Azure bicep对多个ServicePrinciple 进行role assignment分配

问题描述

使用Azure bicep对多个ServicePrinciple 进行role assignment分配

 

步骤如下

第一步:定义传参,里面包括object ID和role的一个map如:

param servicePrincipals array = [

 {

   objectId: 'service-principal-object-id-1'

   roles: [

     'Contributor'

     'Reader'

   ]

 }

 {

   objectId: 'service-principal-object-id-2'

   roles: [

     'Contributor'

   ]

 }

]

 

第二步:把以上map转化为数组

Azure bicep现在不支持多层循环嵌套,因此只能使用一个数组

var assignments = [

 for sp in servicePrincipals: map(sp.roles, role => {

   objectId: sp.objectId

   role: role

 })

]

var assignmentArray = flatten(assignments)

 

第三步:使用循环进行roleAssignment的创建

resource roleAssignments 'Microsoft.Authorization/roleAssignments@2020-10-01-preview' = [

 for assignment in assignmentArray: {

   name: guid(storageAccount.id, assignment.objectId, assignment.role)

   scope: storageAccount

   properties: {

     roleDefinitionId: subscriptionResourceId(

       'Microsoft.Authorization/roleDefinitions',

       roleDefinitionMap[assignment.role]

     )

     principalId: assignment.objectId

     principalType: 'ServicePrincipal'

   }

 }

]

 

代码片段截图:

 

参考资料

  1. https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/existing-resource
  2. https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/outputs?tabs=azure-powershell#get-output-values

 

[END]




 

当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

相关文章
|
3月前
|
内存技术
【Azure Cloud Service】创建Azure云服务时遇见分配VM资源错误: VM(s) with the following constraints cannot be allocated, because the condition is too restrictive
Allocation failed. VM(s) with the following constraints cannot be allocated, because the condition is too restrictive. Please remove some constraints and try again. Constraints applied are:\n - VM Size
|
5月前
|
C#
【Azure Developer】使用 Azure VM 上的用户分配托管标识访问 Azure Key Vault 中国区代码示例
【Azure Developer】使用 Azure VM 上的用户分配托管标识访问 Azure Key Vault 中国区代码示例
|
5月前
|
存储 架构师 数据安全/隐私保护
【Azure 环境】由为存储账号(Storage Account)拒绝分配权限而引出的Azure 蓝图(Blueprint)使用问题
【Azure 环境】由为存储账号(Storage Account)拒绝分配权限而引出的Azure 蓝图(Blueprint)使用问题
|
5月前
|
存储 安全 API
【Azure 存储服务】关于对Azure Storage Account 的 Folder 权限管理和设定
【Azure 存储服务】关于对Azure Storage Account 的 Folder 权限管理和设定
|
5月前
|
Windows
【Azure 应用服务】Azure Function (PowerShell) 执行时报错 "out of memory"
【Azure 应用服务】Azure Function (PowerShell) 执行时报错 "out of memory"
|
5月前
|
存储
【Azure Policy】使用Azure Policy来检查Azure资源名称是否满足正确要求(不满足就拒绝创建或标记为不合规non-compliance)
【Azure Policy】使用Azure Policy来检查Azure资源名称是否满足正确要求(不满足就拒绝创建或标记为不合规non-compliance)
|
5月前
|
C++ Python
【Azure 应用服务】Azure Function Python函数部署到Azure后遇见 Value cannot be null. (Parameter 'receiverConnectionString') 错误
【Azure 应用服务】Azure Function Python函数部署到Azure后遇见 Value cannot be null. (Parameter 'receiverConnectionString') 错误
|
5月前
|
存储 C# Python
【Azure Storage Account】Azure 存储服务计算Blob的数量和大小的PowerShell代码
【Azure Storage Account】Azure 存储服务计算Blob的数量和大小的PowerShell代码
|
5月前
【Azure 应用服务】Azure Function 启用 Managed Identity后, Powershell Funciton出现 ERROR: ManagedIdentityCredential authentication failed
【Azure 应用服务】Azure Function 启用 Managed Identity后, Powershell Funciton出现 ERROR: ManagedIdentityCredential authentication failed
|
5月前
|
存储 API C#
【Azure Developer】解决Azure Key Vault管理Storage的示例代码在中国区Azure遇见的各种认证/授权问题 - C# Example Code
【Azure Developer】解决Azure Key Vault管理Storage的示例代码在中国区Azure遇见的各种认证/授权问题 - C# Example Code