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

AWS Java SDK返回Role is Invalid(400 ValidationError)问题排查

AWS STS AssumeRole 报错“role is invalid”的原因与解决方法

错误原因

  1. 角色ARN格式不合法:STS服务要求角色ARN必须严格遵循AWS资源命名规范,正确格式为arn:aws:iam::ACCOUNT_ID:role/ROLE_NAME。你传入的ARN是aws:iam::XXXXXXXX:role/ecsTaskExecutionRole,缺少了开头的arn:前缀,导致STS无法识别该角色资源,触发ValidationError。
  2. 跨场景格式错误一致:即使切换到IAM用户编程凭证,只要传入的ARN格式依然错误,就会触发相同的验证错误,这和你遇到的现象完全匹配。

解决步骤

  1. 修正ARN格式:将角色ARN补充完整,确保以arn:开头,替换为你实际的AWS账号ID:
    STSAssumeRoleSessionCredentialsProvider stsAssumeRoleSessionCredentialsProvider = new STSAssumeRoleSessionCredentialsProvider
                    .Builder("arn:aws:iam::XXXXXXXX:role/ecsTaskExecutionRole", "session").build();
    
  2. 验证权限与信任策略:
    • 确保用于发起AssumeRole请求的源凭证(ECS任务角色或IAM用户)拥有sts:AssumeRole权限;
    • 确认目标角色ecsTaskExecutionRole的信任策略已配置允许源实体进行角色切换(比如允许ECS任务角色或指定IAM用户)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 03:35:20