Search code examples
amazon-web-servicesamazon-s3terraformterraform-provider-aws

Terraform: Error: "policy" contains an invalid JSON: invalid character ']' looking for beginning of value


I am getting an error when try to implement this policy:

Error: "policy" contains an invalid JSON: invalid character ']' looking for beginning of value

Could someone explain faced this issue on how to fix it?

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/*"
            ]
        },
    ]
}
  depends_on = [aws_s3_bucket_public_access_block.override_default_setting]
}
POLICY
}

Expecting to get rid of this error and implement the policy on a S3 bucket.


Solution

  • Use a JSON validator if you're having issues. Here is valid JSON to work with:

    {
        "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/*"
                ]
            }
        ]
    }