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

执行az vmss identity assign后,azure/login GitHub Action遇令牌过期错误求助

解决GitHub Action azure/login报错"token is expired"的排查方案

先排查VMSS身份操作的影响

  • 检查AKS集群的身份是否被意外修改:运行az aks show -g <资源组名称> -n <AKS集群名称> --query servicePrincipalProfile,确认集群使用的服务主体/托管身份是否和操作VMSS前一致。给VMSS分配身份时若误操作关联到AKS集群的身份,可能导致权限或令牌获取逻辑异常。

核心令牌过期相关排查

  • 检查OIDC联合凭据的有效期:登录Azure AD企业应用,进入「证书和密码」→「联合凭据」,确认创建的凭据没有设置过短的有效期或已过期,必要时重新创建有效期合理的凭据。
  • 客户端密钥验证:若改用客户端密钥登录,进入Azure AD应用注册的「证书和密码」,检查密钥是否未过期,若已过期则重新生成并更新GitHub Secrets中对应的密钥值。

权限与参数校验

  • 验证AKS身份的权限:运行az role assignment list --assignee <AKS集群身份ID> --scope <AKS集群资源ID>,确保该身份拥有Azure Kubernetes Service Cluster User Role或足够的部署权限——权限不足有时会被误导为令牌过期错误。
  • 核对工作流参数:确认azure/login步骤中的tenant-id、client-id(客户端密钥模式)、subscription-id全部正确,参数错误会导致获取的令牌无效。

缓存与临时故障处理

  • 禁用令牌缓存:在azure/login步骤前添加环境变量配置:
    env:
      AZURE_TOKEN_CACHE_DIR: ''
    
    避免工作流复用旧的过期令牌。
  • 手动重新触发工作流:排除GitHub或Azure AD令牌服务的临时故障,测试是否能正常获取新令牌。

极端情况处理

如果以上步骤都无效,尝试重新创建AKS集群的身份:删除原服务主体/托管身份,重新为AKS分配新身份,再更新GitHub Action的身份验证配置(联合凭据或客户端密钥)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 20:05:33