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

EC2 Windows实例中AWS CLI访问S3 Bucket失败,报AuthorizationHeaderMalformed错误求助

解决EC2 Windows实例上AWS CLI访问S3的AuthorizationHeaderMalformed报错

我来帮你排查这个EC2 Windows实例上AWS CLI访问S3的授权问题,报错An error occurred (AuthorizationHeaderMalformed) when calling the ListBuckets operation: The authorization header is malformed; the authorization header requires three components: Credential, SignedHeaders, and Signature.通常是因为凭证配置异常或环境冲突,咱们一步步来解决:

1. 检查CLI凭证配置的正确性

  • 打开EC2实例的命令提示符,运行以下命令查看当前配置:
    aws configure list
    
    确认输出中的access_key和secret_key是否与你的IAM用户凭证完全一致,注意不要有多余的空格、换行或特殊字符。
  • 如果配置有误,重新执行aws configure,仔细输入IAM用户的Access Key ID、Secret Access Key,区域可选择你常用的(例如us-east-1),输出格式默认选json即可。

2. 排查环境变量冲突

  • Windows系统中,环境变量AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY可能会覆盖CLI的配置。打开「系统属性」→「高级」→「环境变量」,检查是否存在这两个变量:
    • 如果存在且和你的IAM凭证不符,直接删除这两个变量(优先使用CLI配置的凭证);
    • 如果需要保留环境变量,确保其值与IAM用户的凭证完全一致。

3. 确认EC2实例的IAM角色影响

  • 如果你给EC2实例附加了IAM角色,CLI会优先使用角色的凭证而非你配置的用户凭证。运行以下命令查看当前身份:
    aws sts get-caller-identity
    
    • 如果返回的是IAM角色,且该角色没有S3全访问权限,要么给角色添加对应的S3权限,要么在CLI命令中指定配置文件强制使用用户凭证:
      aws s3 ls --profile your-profile-name
      

4. 检查凭证文件格式

  • AWS CLI的凭证文件默认路径为C:\Users\<你的用户名>\.aws\credentials,打开该文件确认格式是否正确,正确格式如下:
    [default]
    aws_access_key_id = YOUR_VALID_ACCESS_KEY
    aws_secret_access_key = YOUR_VALID_SECRET_KEY
    
    确保没有多余的引号、空格或格式错误,这些都会导致授权头解析失败。

5. 验证配置有效性

  • 完成上述步骤后,先运行aws sts get-caller-identity确认当前身份正确,再执行aws s3 ls测试是否能正常列出S3桶。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 13:54:08