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

使用AWSPowerShell在米兰区域(eu-south-1)通过STS获取AWS会话失败

AWSPowerShell在米兰区域(eu-south-1)通过STS获取AWS会话失败

看起来你遇到的是跨区域使用Assume Role时的令牌有效性问题,我之前排查过类似的情况,咱们一步步来定位解决:

1. 先检查你的test凭证配置是否正确关联目标角色

打开本地的AWS凭证文件(一般路径是C:\Users\<你的用户名>\.aws\credentials),查看test这个profile的配置:

  • 确认role_arn对应的是你要在eu-south-1区域使用的角色ARN,而不是东京区域的旧角色;
  • 检查source_profile是否指向了拥有sts:AssumeRole权限的源凭证,源凭证的Access Key/Secret Key是否有效。

2. 强制使用米兰区域的STS端点发起请求

默认情况下AWSPowerShell可能会调用全局STS端点,部分新区域用区域端点兼容性更好,你可以试试指定STS端点后再操作:

Set-AWSCredential -ProfileName test -STSEndpoint https://sts.eu-south-1.amazonaws.com
Set-DefaultAWSRegion -Region eu-south-1
Get-STSCallerIdentity

3. 排查源凭证的权限是否被区域限制

你用来Assume Role的源Access Key所属的IAM用户/角色,有没有被权限策略限制只能在ap-northeast-1区域操作?比如策略里如果有这样的条件:

"Condition": {
  "StringEquals": {
    "aws:RequestedRegion": "ap-northeast-1"
  }
}

那在eu-south-1区域发起请求就会被拒绝,需要把eu-south-1添加到允许的区域列表里,或者移除这个区域限制条件。

4. 清除PowerShell的凭证缓存

有时候旧的无效凭证会被缓存,导致新请求出错,你可以尝试清除缓存后重新加载:

# 移除现有profile缓存
Remove-AWSCredentialProfile -ProfileName test
# 重新加载配置
Set-AWSCredential -ProfileName test

或者直接重启PowerShell会话,确保没有残留的过期凭证。

5. 验证目标角色的信任策略

登录AWS控制台,找到你要Assume的角色,查看信任关系标签:

  • 确保信任策略里的Principal正确指向了你的源账号用户/角色ARN;
  • 检查是否有额外的条件限制(比如区域限制),如果有的话需要调整允许eu-south-1区域的请求。

按照这个顺序排查下来,应该能找到问题所在,解决令牌无效的报错。

备注:内容来源于stack exchange,提问作者andrew

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 11:27:58