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

访问禁用公共访问的S3存储桶时权限报错,求IAM配置解决方案

问题解决方法

你的报错根源在于:aws s3 cp --recursive命令在列举桶内对象时,默认调用的是ListObjectsV2 API,而你当前的IAM权限仅配置了s3:ListObjects(对应旧版ListObjects API),所以会触发AccessDenied错误。

具体修复步骤

  1. 添加缺失的权限:在IAM角色的actions列表中加入s3:ListObjectsV2
  2. (可选)遵循最小权限原则:将resources从通配符*缩小到目标桶的具体ARN,避免过度授权

修改后的Terraform权限配置示例:

service_policy_document = {
    SID = "LaunchScriptPermissions"
    actions = [
        "s3:GetObject",
        "s3:ListObjects",
        "s3:ListObjectsV2",  # 新增此权限,解决ListObjectsV2调用的权限问题
        "s3:ListAllMyBuckets",
        "s3:ListBuckets",
    ]
    # 推荐限制资源范围,替代原有的"*"
    resources = [
        "arn:aws:s3:::test-bucket",        # 桶级权限,用于列举对象
        "arn:aws:s3:::test-bucket/*"       # 对象级权限,用于读取文件
    ]
}

补充说明

  • 桶级资源arn:aws:s3:::test-bucket是ListObjectsV2等列举类权限必须的资源目标
  • 对象级资源arn:aws:s3:::test-bucket/*对应GetObject权限,确保能复制具体的代理配置文件
  • 保留s3:ListObjects是为了兼容可能的旧版AWS CLI调用,但核心修复项是添加s3:ListObjectsV2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 18:25:36