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

如何枚举S3存储桶及对象?访问密钥异常问题求助

问题原因与解决办法

首先明确关键差异:生成预签名URL是本地计算签名,不需要向AWS服务发送请求,所以哪怕密钥无效、区域不匹配,都能生成URL(但实际访问这个URL会失败)。而ListBucketsAsync、ListObjectsV2Async这类API必须调用AWS服务接口,会被服务端验证密钥合法性,因此才会报错。

针对错误提示"The AWS Access Key Id you provided does not exist in our records",按以下步骤排查:

  • 核对Access Key的正确性:仔细检查你复制的accessKey值,有没有多打空格、漏字符或者大小写错误。AWS的Access Key ID是严格匹配的,哪怕一个字符错误,服务端都会识别为不存在。
  • 确认密钥在AWS账户中存在且未被禁用:登录AWS控制台,进入IAM控制台→找到对应的用户→切换到「安全凭证」标签,查看Access Key列表,确认你使用的Key在列表里且状态为「活跃」。
  • 检查区域配置是否正确:如果你的存储桶实际不在USWest2区域,创建AmazonS3Client时指定错误区域可能导致请求路由到错误的服务节点,也可能触发类似密钥不存在的错误。确认存储桶所在区域,替换为对应的RegionEndpoint(比如RegionEndpoint.USEast1)。
  • 排除临时凭证问题:如果使用的是临时访问密钥,仅靠BasicAWSCredentials传入Access Key和Secret Key是不够的,还需要传入Session Token。但你的错误提示是密钥不存在,这个可能性较低,优先排查前面几点。

等密钥问题解决后,还需要确保IAM用户有对应权限:

  • 调用ListBucketsAsync需要s3:ListAllMyBuckets权限
  • 调用ListObjectsV2Async需要目标存储桶的s3:ListBucket权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 07:14:56