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

本地通过ALB+S3 VPC端点用Java SDK访问S3报NoSuchBucket错误

排查S3 VPC接口端点+ALB访问报NoSuchBucket的问题

针对你遇到的404 NoSuchBucket错误,以下是需要检查的遗漏配置点:

  • VPC接口端点访问策略未授权
    S3 VPC接口端点默认策略为拒绝所有请求,必须手动配置允许访问目标存储桶的权限。示例策略如下(替换为你的存储桶ARN和IAM实体):

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {"AWS": "arn:aws:iam::123456789012:user/your-user"},
                "Action": ["s3:GetObject", "s3:ListBucket"],
                "Resource": [
                    "arn:aws:s3:::your-bucket-name",
                    "arn:aws:s3:::your-bucket-name/*"
                ]
            }
        ]
    }
    
  • ALB配置错误

    • 确认ALB目标组已正确关联S3 VPC接口端点的弹性网络接口(ENI),且健康检查状态正常(S3接口端点健康检查可使用/路径,HTTP 200状态码)。
    • 检查ALB监听规则:必须将HTTPS请求(端口443)转发到目标组的443端口,不能终止SSL后用HTTP转发——S3接口端点仅接受HTTPS请求,HTTP转发会导致请求被拒绝,间接触发404。
    • 确保ALB的SSL证书有效,且本地Java环境信任该证书(若使用自签证书,需添加到Java信任库)。
  • Hosts文件配置错误
    你的hosts条目必须严格匹配S3虚拟主机格式:[ALB公网IP] [bucket-name].[vpce-dns-name],例如:

    10.0.0.1  my-test-bucket.vpce-1234567890abcdef.eu-west-1.vpce.amazonaws.com
    

    同时确认Java SDK的ENPOINT_URL就是上述完整的虚拟主机域名,而非仅VPCE的DNS名称。

  • 区域不匹配
    确认存储桶、VPC接口端点、SDK配置的区域(eu-west-1)三者完全一致。S3是区域级服务,跨区域的接口端点无法访问目标存储桶。

  • Java SDK配置细节

    • 验证使用的AWS凭证拥有目标存储桶的ListBucket和GetObject权限,且凭证未过期。
    • 显式确认SDK使用虚拟主机风格访问(默认已开启,但可显式配置避免路径风格冲突):
      AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
          .withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(ENPOINT_URL, "eu-west-1"))
          .withCredentials(awsCred)
          .withPathStyleAccessEnabled(false)
          .build();
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 17:50:28