如何使用curl传递会话令牌,完成AWS SIGv4签名的API Gateway请求?
使用curl传递AWS临时凭证会话令牌完成SIGv4签名请求
要解决标准curl无法通过临时凭证访问API Gateway的问题,你需要手动添加X-Amz-Security-Token请求头,并确保该头被纳入SIGv4签名计算。curl的--aws-sigv4参数会自动将所有自定义请求头包含进签名流程,只需按以下格式修改命令:
curl --aws-sigv4 "aws:amz:eu-west-1:execute-api" \ --user "${AWS_ACCESS_KEY_ID}:${AWS_SECRET_KEY}" \ -H "X-Amz-Security-Token: ${SESSION_TOKEN}" \ -X POST \ -d '{}' \ https://aaaaaaaa.execute-api.eu-west-1.amazonaws.com/endpoint
核心要点
- AWS临时凭证的会话令牌必须通过
X-Amz-Security-Token请求头传递,这是AWS验证临时身份的标准要求 - 无需额外配置签名规则,curl会自动把
X-Amz-Security-Token头纳入SIGv4签名计算 - 确认
AWS_ACCESS_KEY_ID、AWS_SECRET_KEY和SESSION_TOKEN三个环境变量已正确赋值
内容的提问来源于stack exchange,提问作者Daniel Scott
相关产品推荐
相关产品推荐

