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

使用Java SDK2调用S3 putObject时遇Access Denied异常求助

问题:使用AWS S3 Java SDK v2写入字节数组时遭遇Access Denied错误

我尝试使用Java SDK v2(依赖为software.amazon.awssdk:s3)将字节数组写入S3存储桶,但始终收到Access Denied错误。以下是相关配置和代码:

权限策略(已设置为宽松权限)

{
    "Sid": "VisualEditor1",
    "Effect": "Allow",
    "Action": "s3:*",
    "Resource": [
        "arn:aws:s3:::*",
        "arn:aws:s3:*:896591375297:accesspoint/*",
        "arn:aws:s3::896591375297:accesspoint/*",
        "arn:aws:s3-object-lambda:*:896591375297:accesspoint/*",
        "arn:aws:s3:::*/*",
        "arn:aws:s3:*:896591375297:job/*",
        "arn:aws:s3:us-west-2:896591375297:async-request/mrap/*/*",
        "arn:aws:s3:*:896591375297:storage-lens/*"
    ]
}

相关Java代码

public void saveCA(String orgId, String certId, byte[] caData) {

  PutObjectRequest req = PutObjectRequest.builder()
      .bucket("cacache-bucket")   // 尝试过在这里使用ARN,无效。桶确实存在
      .key(certId)   // certId作为对象名称
      .build();

  RequestBody body = RequestBody.fromBytes(caData);
  client.putObject(req, body);
}

收到的错误信息

software.amazon.awssdk.services.s3.model.S3Exception: Access Denied (Service: S3, Status Code: 403, Request ID: RQH01Z7PJ54YDSAV, Extended Request ID: vJRt...

请问有什么排查思路?


排查思路

  • 确认凭证有效性:检查代码使用的AWS凭证(Access Key/Secret Key或IAM角色)是否属于绑定上述策略的实体,同时确认凭证未过期、未被权限边界、服务控制策略(SCP)等其他规则限制。
  • 核对桶的归属与区域:确认cacache-bucket所属AWS账号为896591375297,且客户端配置的区域与桶的实际区域一致——S3是区域化服务,区域不匹配可能引发隐性权限问题。
  • 检查桶策略:除了IAM实体的权限策略,还要查看目标桶自身的桶策略,确认是否存在优先于Allow规则的Deny语句,限制了写入操作。
  • 验证对象锁与版本控制:若桶开启了版本控制或对象锁,检查当前操作是否违反相关配置,比如尝试写入已被锁定的对象键。
  • 排查凭证加载逻辑:确认Java客户端是否正确加载凭证——比如是否通过环境变量、系统属性、凭证文件或IAM角色(若在ECS/EKS/EC2上运行)获取,而非使用了错误的凭证。
  • 开启调试日志排查请求:开启SDK的调试日志,查看请求的签名信息、使用的凭证ARN,确认请求确实使用了预期的IAM实体权限。
  • 验证资源ARN匹配:尽管策略包含arn:aws:s3:::*和arn:aws:s3:::*/*,仍需确认目标桶的ARN是否被覆盖——比如桶名是否拼写正确,策略中的资源范围是否包含该桶及桶内对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 16:45:18