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

Amazon Managed Prometheus查询API的认证请求头与参数咨询

AMP HTTP API 认证配置说明

AMP 完全兼容原生 Prometheus 的HTTP API查询语法,但所有API请求强制要求通过AWS SigV4(签名版本4)做身份校验,没有匿名访问、静态API密钥的认证方式。你提前配置的IAM角色,必须先绑定对应API操作的权限(比如查询接口需要aps:QueryMetrics权限),再通过SigV4流程对请求签名后即可正常调用,不需要额外传Prometheus原生的basic auth等认证参数。

认证必填请求头(常规Header传参模式)

绝大多数场景下签名逻辑会自动生成以下标准请求头,不需要手动拼接内容:

  • Authorization:核心认证头,遵循SigV4规范拼接,内容包含签名算法、使用的IAM凭证范围、参与签名的头列表、最终计算出的签名值
  • X-Amz-Date:请求发起时间的UTC时间戳,固定格式为YYYYMMDD'T'HHMMSS'Z',必须和签名计算时使用的时间完全一致,请求时间和服务端时间偏差超过15分钟会直接被拒绝
  • X-Amz-Security-Token:仅当你使用IAM角色生成的临时凭证(包括EC2实例角色、EKS IRSA、STS角色扮演获取的凭证)时必填,值为临时凭证对应的会话Token;如果使用长期IAM用户的访问密钥发起请求,不需要传这个头

预签名URL模式的认证参数

如果需要生成可直接访问的临时查询链接(比如给前端、第三方系统临时授权),可以把认证信息放在URL查询参数中,不需要单独传请求头,必填参数包括:

  • X-Amz-Algorithm:固定为SigV4对应的签名算法标识
  • X-Amz-Credential:访问密钥ID+凭证范围信息
  • X-Amz-Date:和头模式格式一致的UTC时间戳
  • X-Amz-Expires:预签名URL的有效时长,单位为秒,最长支持604800秒(7天)
  • X-Amz-SignedHeaders:参与签名计算的请求头列表
  • X-Amz-Signature:计算得到的请求签名值
  • X-Amz-Security-Token:使用临时凭证时同头模式要求,作为查询参数传递即可

实用提示

不要手动计算SigV4签名,AWS官方SDK、生态适配工具已经封装了全流程签名逻辑:

  • 直接调用对应语言的AWS SDK中AMP服务的查询方法,会自动读取本地配置的IAM凭证完成签名
  • 如果用curl、原生Prometheus客户端发请求,可以搭配SigV4签名中间件自动处理认证头,避免手动计算签名出错

调用示例(本地已配置AWS凭证的场景):

# 替换为你自己的AMP工作区所在区域、工作区ID
awscurl --service aps "https://aps-workspaces.<region>.amazonaws.com/workspaces/<workspace-id>/api/v1/query?query=up"

常见踩坑点

  • 签名时指定的AWS服务名必须是aps,不要填prometheus,否则签名校验不通过
  • 签名计算需要覆盖请求的完整路径、所有查询参数,不要只对域名做签名
  • 走代理访问时不要修改原始请求的Host头,否则会导致签名和服务端收到的请求不匹配,校验失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 10:06:21