You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用AZ CLI基于AD组分配指定Azure角色的bash脚本实现方法咨询

基于Azure AD组的批量角色分配Bash脚本实现方案

前置依赖

  • 执行环境已安装Azure CLI,版本 >= 2.37.0
  • 执行账号已授予所有者或用户访问管理员权限,具备角色分配操作权限
  • 已提前确认目标Azure AD组存在、预设角色名称/ID对应正确

完整实现脚本

#!/bin/bash
# 自定义配置项,按需修改
AD_GROUP_NAME="目标AD组名称"
# 分配作用域:订阅级示例,资源组级可改为/subscriptions/订阅ID/resourceGroups/资源组名称
TARGET_SCOPE="/subscriptions/你的目标订阅ID"
# 预设角色集合,可按实际需求增减条目
ROLE_LIST=(
  "Virtual Machine Contributor"
  "Storage Blob Data Contributor"
  "Reader"
)

# 1. 获取AD组对象ID
GROUP_ID=$(az ad group show --group "$AD_GROUP_NAME" --query id -o tsv)
if [ -z "$GROUP_ID" ]; then
  echo "错误:未找到名称为 $AD_GROUP_NAME 的Azure AD组"
  exit 1
fi
echo "已定位目标AD组,对象ID:$GROUP_ID"

# 2. 遍历角色列表完成分配
for ROLE in "${ROLE_LIST[@]}"
do
  echo "正在处理角色分配:$ROLE"
  # 执行分配逻辑,已存在的分配会自动跳过不报错
  az role assignment create \
    --assignee-object-id "$GROUP_ID" \
    --assignee-principal-type "Group" \
    --role "$ROLE" \
    --scope "$TARGET_SCOPE" \
    --only-show-errors
  if [ $? -eq 0 ]; then
    echo "角色 $ROLE 分配成功/已存在"
  else
    echo "警告:角色 $ROLE 分配失败,请检查角色名称、权限配置是否正确"
  fi
done

echo "全量角色分配任务执行完成"

使用注意事项

  • 脚本执行前先运行az login完成Azure账号认证,自动化场景可使用服务主体实现非交互登录
  • 自定义角色建议替换为角色唯一ID,避免重名冲突
  • 如需清理多余分配,可调用az role assignment delete命令对应调整逻辑

内容的提问来源于stack exchange,提问作者Ram

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 00:06:03