在Azure Pipeline中用Terraform操作Azure SQL资源锁的权限如何配置
所需权限配置
要操作Azure资源锁,需要给流水线使用的Azure AD身份(用户账号或Azure DevOps服务连接对应的服务主体)分配对应作用域下的以下权限:
- 最小权限方案(生产环境推荐):自定义角色包含以下两个操作权限
Microsoft.Authorization/locks/write:支持创建、修改资源锁Microsoft.Authorization/locks/delete:支持移除资源锁
- 简化内置角色方案:直接分配内置的
用户访问管理员或所有者角色,两类角色默认包含资源锁的全量操作权限,权限范围更大,适合测试环境使用。
具体操作步骤
- 登录Azure门户,进入权限分配的目标作用域:如果仅需操作单资源组下的SQL资源锁,进入对应资源组即可;如果需要跨资源组操作,进入对应生产订阅。
- 左侧导航栏选择【访问控制(IAM)】,进入权限管理页。
- 点击顶部【添加】按钮,选择【添加角色分配】。
- 角色选择:
- 若使用内置角色:直接搜索并选中
用户访问管理员/所有者,点击「下一步」。 - 若使用自定义最小权限:先点击「创建自定义角色」,命名后在权限页搜索
Microsoft.Authorization/locks,勾选写入和删除权限,保存自定义角色后再选中该角色进入下一步。
- 若使用内置角色:直接搜索并选中
- 成员选择:点击「选择成员」,搜索你的流水线使用的Azure AD账号名称(或服务连接对应的服务主体名称),选中后点击「下一步」。
- 确认分配:核对作用域、角色、成员信息无误后,点击「分配」即可,权限会在1~5分钟内生效。
Terraform配置校验
你当前使用的资源锁配置代码没有问题:
resource "azurerm_management_lock" "hellodb_lck" { for_each = var.databases name = "can-not-delete" scope = azurerm_sql_database.hellodb[each.key].id lock_level = "CanNotDelete" }
权限生效后重新执行流水线即可正常完成资源锁的增删改操作。
内容的提问来源于stack exchange,提问作者Kenny_I
相关产品推荐
相关产品推荐

