AWS API Gateway跨账号访问403错误问题求助
跨账号API Gateway IAM认证403问题排查指南
我完全理解你遇到的这个跨账号调用的头疼问题——我之前帮团队排查过几乎一模一样的场景,咱们一步步来拆解:
1. 先确认资源策略的Principal和Resource匹配度
你当前的资源策略里用了arn:aws:iam::accountB:role/invoke_api_iam_role作为Principal,理论上这应该允许该角色的所有会话(也就是EC2实例扮演角色后的STS ARN)访问,但有几个细节要核对:
- 检查角色ARN是否完全正确:比如accountB的ID有没有输错?角色名是不是和EC2实例附加的角色完全一致?有时候复制粘贴会多了空格或者少了字符。
- 确认Resource字段是否覆盖了你实际调用的API路径:你的策略用了
arn:aws:execute-api:us-east-1:accountA:myAPIID/*,但如果你的API有特定阶段(比如prod)和资源路径(比如/data),可以尝试把Resource写得更具体试试,比如arn:aws:execute-api:us-east-1:accountA:myAPIID/prod/GET/data,排除通配符可能带来的匹配问题。
2. 检查IAM角色的信任关系和有效权限
虽然你的EC2实例已经附加了角色,但要确认:
- 该角色的信任策略是否允许
ec2.amazonaws.com扮演它?(不过accountB的EC2能拿到角色凭证,这一步大概率没问题,但还是确认下更稳妥) - 有没有隐性的拒绝策略?比如账号级别的IAM边界(Permission Boundary)或者SCP(Service Control Policy)限制了
execute-api:Invoke动作?可以用IAM Access Analyzer或者模拟该角色的权限,看看是否真的允许调用目标API。
3. 验证签名的正确性
用aws-requests-auth做v4签名时,几个很容易踩坑的点:
- 确保签名时指定的
service参数是execute-api,而不是其他(比如ec2或者sts)。 - region要和API Gateway部署的region完全一致(你这里是
us-east-1,别写错成us-east-2之类的)。 - 请求URL要包含API的阶段(比如
https://myAPIID.execute-api.us-east-1.amazonaws.com/prod/your-path),如果漏了阶段,签名会不匹配,直接返回403。 - 可以尝试用AWS CLI模拟调用,比如:
aws apigateway test-invoke-method --rest-api-id myAPIID --resource-id yourResourceID --http-method GET --stage-name prod
如果CLI调用也失败,那问题大概率在权限策略;如果CLI成功,那就是脚本里的签名逻辑有问题。
4. 尝试在资源策略中添加STS Assume Role的ARN
有时候即使允许了角色ARN,API Gateway的资源策略可能需要显式允许STS会话的ARN。你可以把报错里的arn:aws:sts::accountB:assumed-role/invoke_api_iam_role/i-xxxxxxxxx添加到Principal里试试,比如:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::accountB:role/invoke_api_iam_role", "arn:aws:sts::accountB:assumed-role/invoke_api_iam_role/i-xxxxxxxxx" ] }, "Action": "execute-api:Invoke", "Resource": "arn:aws:execute-api:us-east-1:accountA:myAPIID/*" } ] }
如果这样能解决,那可能是角色的会话没有被正确识别,不过这是个临时排查手段,长期来看还是用角色ARN更合适,你可以再检查角色的ARN是否有拼写错误。
5. 检查API Gateway的认证配置
最后确认下:
- API Gateway的每个方法都启用了AWS_IAM认证吗?有时候可能根资源启用了,但子方法没启用,或者配置错成了其他认证方式。
- 有没有启用WAF或者其他防护规则,不小心拦截了accountB的请求?
内容的提问来源于stack exchange,提问作者heyadityak
相关产品推荐
相关产品推荐

