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

AWS S3 Bucket Policy验证失败:资源无效错误求助排查

问题排查与解决

1. 移除JSON非法注释

你的Bucket Policy里包含了-- NEW PART BELOW ---这类注释,JSON格式不支持该类型注释,会直接导致策略解析失败,AWS的错误提示可能因此误报为资源无效。先删除这行注释,修正后的完整JSON如下:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::MyS3Bucket/*"
        },
        {
            "Sid": "S3ServerAccessLogsPolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "logging.s3.amazonaws.com"
            },
            "Action": [
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::MyS3LogsBucket/*",
            "Condition": {
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:s3:::MyS3Bucket"
                },
                "StringEquals": {
                    "aws:SourceAccount": "MyAccountId"
                }
            }
        }
    ]
}

2. 确认策略附加的目标桶正确

这个包含日志写入权限的策略,必须附加到日志存储桶(MyS3LogsBucket)上,而非源桶(MyS3Bucket)。如果把该策略加到源桶,策略里的Resource是日志桶的ARN,不属于当前桶的资源范围,AWS就会返回「Policy has invalid resource」错误。

操作步骤:

  • 进入AWS控制台S3服务
  • 找到MyS3LogsBucket,进入「权限」标签页
  • 编辑Bucket Policy,粘贴修正后的JSON(注意替换实际桶名和纯数字账号ID)
  • 保存后回到源桶(MyS3Bucket)的「属性」标签,配置服务器访问日志,指定目标桶为MyS3LogsBucket即可

3. 额外检查项

  • 确保MyAccountId替换为你的AWS纯数字账号ID(不含连字符)
  • 确认日志桶MyS3LogsBucket状态正常,未被删除或配置冲突权限策略

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 17:35:18