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

使用Terraform部署Site Recovery Vault时遇JWT超时错误

解决Terraform配置Azure Site Recovery时的AADSTS700024 JWT超时问题

你在配置Azure Recovery Services Vault实现虚拟机故障转移时,Terraform执行出现401错误,提示AADSTS700024——服务主体的客户端断言(JWT)已过期,当前时间超出了断言的有效时间范围。虽然你在Terraform里设置了6小时超时,但这个问题本质是管道使用的应用服务主体的身份凭证有效期过短,而非Terraform资源本身的超时设置。

可行解决方案

1. 延长服务主体凭证的有效期

如果用证书作为服务主体凭证:

  • 重新生成证书时设置更长有效期(最长3年),保证Terraform长时间操作(比如Site Recovery初始复制)期间凭证不会过期。
  • 用新证书替换服务主体的旧凭证。

如果用客户端密码作为凭证:

  • 在Azure门户或CLI中更新服务主体的客户端密码,设置更长过期时间(最长2年)。

2. 升级AzureRM Provider版本

新版AzureRM Provider会自动处理令牌过期,在操作过程中自动刷新访问令牌,避免长时间运行时出现凭证失效问题。

  • 在versions.tf中更新Provider版本约束,使用最新稳定版:
terraform {
  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
      version = ">= 3.0.0" # 建议替换为当前最新稳定版
    }
  }
}

3. 拆分长时间操作

如果Site Recovery初始复制耗时确实过长,可以拆分Terraform配置:

  • 先创建Site Recovery基础资源(Fabric、Protection Container等),单独执行apply;再配置虚拟机复制,分阶段完成,减少单次操作的持续时间,降低令牌过期概率。

对应的错误信息翻译:

│ 错误:等待站点恢复完成虚拟机复制:对站点恢复复制虚拟机(复制保护项)发起读取请求时出错(订阅:"XXX"
│ 资源组名称:"XXX"
│ 保管库名称:"vault-ukwest"
│ 复制结构名称:"primary-fabric"
│ 复制保护容器名称:"primary-protection-container"
│ 复制保护项名称:"XXX"):授权请求失败:clientCredentialsToken:收到HTTP状态码401,响应内容:{"error":"invalid_client","error_description":"AADSTS700024: 客户端断言不在有效时间范围内。当前时间:2024-12-10T13:39:00.5162383Z,断言有效起始时间:2024-12-10T12:58:07.0000000Z,断言过期时间:2024-12-10T13:08:06.0000000Z。","error_codes":[700024],"timestamp":"2024-12-10 13:39:00Z","trace_id":"XXX","correlation_id":"XXX","error_uri":"https://login.microsoftonline.com/error?code=700024"}
│ 
│   涉及资源:module.rsv.azurerm_site_recovery_replicated_vm.windowsvm-replication,
│   文件路径:modules/rsv/rsv.tf 第236行,资源定义块:
│  236: resource "azurerm_site_recovery_replicated_vm" "windowsvm-replication" {
│ 
╵

Finishing: Terraform Apply

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 16:55:00