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

Terraform配置S3 Bucket策略时JSON格式错误问题求助

Terraform配置S3 Bucket策略时JSON无效错误的解决方法

问题原因

  • JSON语法不合法:Statement数组的最后一个元素后带有多余的逗号(第二个Statement对象闭合}后的,),JSON规范不允许数组末尾存在尾随逗号。
  • 混淆了Terraform资源属性与S3策略JSON:把Terraform的depends_on配置错误地写入了S3策略的JSON内容里,depends_on是Terraform资源的参数,不属于S3 Bucket Policy的JSON结构。
  • Terraform语法冗余:配置末尾多了一个闭合大括号},导致整体语法结构错误。

修复后的完整配置

resource "aws_s3_bucket_policy" "jenkins_bucket_policy" {
  bucket = aws_s3_bucket.jenkins_bucket.id # 替换为你的S3 Bucket资源引用

  policy = <<POLICY
{
    "Version": "2012-10-17",
    "Id": "Policy1704624583452",
    "Statement": [
        {
            "Sid": "Stmt1704622653819",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::jenkins-prj01-s3bucket/",
                "arn:aws:s3:::jenkins-prj01-s3bucket/*"
            ]
        },
        {
            "Sid": "PublicReadGetObject",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::jenkins-prj01-s3bucket/",
                "arn:aws:s3:::jenkins-prj01-s3bucket/*"
            ]
        }
    ]
}
POLICY

  depends_on = [aws_s3_bucket_public_access_block.override_default_setting]
}

额外说明

  • 确保代码中有对应的S3 Bucket资源定义(比如aws_s3_bucket.jenkins_bucket),并正确引用其ID。
  • 完全开放的权限存在安全风险,建议根据实际需求限制Principal和Action的范围。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 13:35:19