【问题标题】:AWS CLI: Error parsing parameter '--config-rule': Invalid JSON:AWS CLI:解析参数“--config-rule”时出错:JSON 无效:
【发布时间】:2026-02-05 20:05:01
【问题描述】:
cat <<EOF > S3ProhibitPublicReadAccess.json 
{
"ConfigRuleName": "S3PublicReadProhibited",
"Description": "Checks that your S3 buckets do not allow public read access. If an S3 
bucket policy or bucket ACL allows public read access, the bucket is noncompliant.",
"Scope": { 
"ComplianceResourceTypes": [ 
 "AWS::S3::Bucket"
] 
}, 
"Source": { 
"Owner": "AWS", 
"SourceIdentifier": "S3_BUCKET_PUBLIC_READ_PROHIBITED"
} 
}
EOF
aws configservice put-config-rule --config-rule file://S3ProhibitPublicReadAccess.json

当我在配置后上传我的配置规则时,会出现以下错误解析参数“--config-rule”:无效 JSON:无效控制字符位于:第 3 行第 87 列(字符 132)收到 JSON:我首先在 Windows Powershell 上尝试启动,然后在 Linux 上尝试,看看是否会得到不同的结果,但在两台机器上仍然出现相同的错误。

错误:

Error parsing parameter '--config-rule': Invalid JSON: Invalid control character at: line 3 column 87 (char 132)
JSON received: {
"ConfigRuleName": "S3PublicReadProhibited",
"Description": "Checks that your S3 buckets do not allow public read access. If an S3
bucket policy or bucket ACL allows public read access, the bucket is noncompliant.",
"Scope": {
"ComplianceResourceTypes": [
 "AWS::S3::Bucket"
]
},
"Source": {
"Owner": "AWS",
"SourceIdentifier": "S3_BUCKET_PUBLIC_READ_PROHIBITED"
}
}

【问题讨论】:

    标签: json amazon-web-services parsing amazon-s3 command-line-interface


    【解决方案1】:

    答案就在那里,这就是我阅读错误信息的方式...

     Invalid JSON: Invalid control character at: line 3 column 87 (char 132)
    

    “无效的控制字符” - 即换行符和换行符之类的字符 - 即不可见的“控制”字符。

    "line 3 column 87" - 告诉你它认为错误在哪里(这并不总是完全准确,但通常接近错误)。在这种情况下,第 3 行第 87 列是以下行的结尾:

    “说明”:“检查您的 S3 存储桶是否不允许公共读取访问。如果 S3

    "char 132" - 这是字符的 ASCII 码(顺便说一句,它是 " 字符),这是它期望在行尾找到的。

    那么,这一切是什么意思,基本上它期待 " 并找到了一个行尾控制字符。

    解决方法是将描述键和值放在一行中,所以:

    “描述”:“检查您的 S3 存储桶是否不允许公共读取访问。如果 S3 存储桶策略或存储桶 ACL 允许公共读取访问,存储桶不合规。",

    变成:

    "Description": "Checks that your S3 buckets do not allow public read access. If an S3 bucket policy or bucket ACL allows public read access, the bucket is noncompliant.",
    

    我使用https://jsonlint.com/ 来快速验证 JSON,我能够对其进行调整并重新验证它,直到它正确为止。

    【讨论】:

    • 哦哇...我已经从源复制和粘贴,直到现在才意识到它在单独的行中。谢谢