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

部署Bicep时遇InvalidRoleAssignmentRequestSchedule错误求助

排查Azure AD PIM自定义角色分配计划无效问题

我正在用Bicep配置Azure AD特权身份管理(PIM)的自定义角色,已创建AD组并为其分配包含以下操作的自定义角色:

"Microsoft.Authorization//read", "Microsoft.Resources/subscriptions/resourceGroups/read", "Microsoft.Support/"

部署时遇到错误:

The role assignment request schedule is invalid. (InvalidRoleAssignmentRequestSchedule)

已确认服务账号拥有Owner级权限,以下是使用的脚本和代码:

PowerShell部署脚本

$deploymentName = (Get-Date).ToString('yyyyMMdd-HHmm')
New-AzDeployment -Name $deploymentName -Location northcentralus -TemplateFile .\pim.bicep -TemplateParameterFile .\agdev-PreProd.parameters.json

Bicep代码

targetScope = 'subscription'

param startTime string = utcNow()

@description('Object Id of the AD Group')
param principalId string = ''

@description('Custom role definition ID being assigned to the AD group')
param roleDefinitionId string = ''

@description('Unique name for the roleAssignment in the format of a guid')
var roleName = guid(principalId, roleDefinitionId, subscription().id)

resource pimRoleAssignment 'Microsoft.Authorization/roleEligibilityScheduleRequests@2022-04-01-preview' = {
  name: roleName
  scope: subscription()
  properties: {
    principalId: principalId
    requestType: 'AdminAssign'
    roleDefinitionId: resourceId('Microsoft.Authorization/roleDefinitions', roleDefinitionId)
    scheduleInfo: {
      startDateTime: startTime
    }
  }
}

问题排查与解决方案

1. 缺少计划有效期配置

roleEligibilityScheduleRequests资源的scheduleInfo仅指定startDateTime不满足PIM要求,必须补充有效期配置。需在scheduleInfo中添加expiration节点,指定有效期类型和具体时长/结束时间:

scheduleInfo: {
  startDateTime: startTime
  expiration: {
    type: 'AfterDuration' // 可选值:AfterDuration(按时长)或 AfterDateTime(按具体时间)
    duration: 'PT8H' // 示例:8小时有效期,需符合ISO 8601格式
    // 若使用AfterDateTime,替换为 endDateTime: '2024-12-31T23:59:59Z'
  }
}

2. 验证UTC时间格式

确保startDateTime为标准UTC格式(如yyyy-MM-ddTHH:mm:ssZ),utcNow()默认生成正确格式,但手动传参时需严格匹配。

3. 检查角色定义ID有效性

确认传入的roleDefinitionId是有效的角色定义GUID,resourceId函数会自动拼接为完整资源路径,若ID无效会间接导致计划验证失败。

4. 尝试更新API版本

当前使用的2022-04-01-preview为预览版本,可尝试切换至较新的稳定预览版本(如2023-07-01-preview),避免旧版本的潜在兼容性问题。

修改后的完整Bicep示例:

targetScope = 'subscription'

param startTime string = utcNow()
param principalId string = ''
param roleDefinitionId string = ''

var roleName = guid(principalId, roleDefinitionId, subscription().id)

resource pimRoleAssignment 'Microsoft.Authorization/roleEligibilityScheduleRequests@2023-07-01-preview' = {
  name: roleName
  scope: subscription()
  properties: {
    principalId: principalId
    requestType: 'AdminAssign'
    roleDefinitionId: resourceId('Microsoft.Authorization/roleDefinitions', roleDefinitionId)
    scheduleInfo: {
      startDateTime: startTime
      expiration: {
        type: 'AfterDuration'
        duration: 'PT8H'
      }
    }
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 10:12:48