Azure SQL Databases跨订阅管理员权限配置及新增库自动授权咨询
Azure SQL 跨订阅统一授权及自动赋权最优方案
1. 前置准备:租户层级权限底座配置
首先利用Azure 管理组的层级继承能力做集中权限管控:
- 若租户尚未启用根管理组,先在Azure门户的「管理组」服务中完成启用,租户下所有订阅默认都会归入根管理组的层级下
- 梳理数据库团队需要的SQL DB操作权限,在根管理组层级创建自定义角色,仅开放必要的SQL DB操作权限(比如库实例管理、备份恢复、性能监控等相关操作),排除其他无关资源的操作权限,实现最小权限原则
- 创建Azure AD安全组,将所有数据库团队成员加入该组,后续人员入职/离职仅需要调整该组成员,无需修改任何权限规则
2. 核心配置:Azure Policy 实现自动权限分配
在根管理组层级部署Deploy if not exists类型的自定义策略,实现全租户范围的SQL DB权限自动覆盖:
- 策略评估规则:检测资源类型为
Microsoft.Sql/servers/databases的资源,是否已经给目标Azure AD安全组分配了前面创建的自定义角色 - 策略 remediation 规则:如果未检测到对应角色分配,自动为该SQL DB资源完成角色分配
- 开启策略的自动生效开关,不仅对后续新建的SQL DB实例自动生效,还可以批量补全租户下所有已存在的SQL DB的权限配置,无需逐个订阅/资源组手动操作
3. 数据层面权限补充(可选)
如果团队需要访问数据库内部的业务数据,可以配合Azure AD统一认证实现自动配置:
- 额外部署一条Azure Policy,自动为所有新创建的SQL Server实例配置Azure AD管理员,避免手动逐个配置
- 在SQL DB中把对应的Azure AD安全组加入所需的数据库角色(比如
db_datareader、db_datawriter等),无需单独维护SQL本地认证账号
该方案完全满足跨订阅、跨资源组的统一权限管控需求,所有规则配置一次即可永久生效,后续新增的订阅、资源组、SQL DB实例都会自动匹配权限规则,运维成本极低,同时权限集中管控也更符合安全合规要求。
内容的提问来源于stack exchange,提问作者Dave Carpenter
相关产品推荐
相关产品推荐

