[英]AWS CLI: Error parsing parameter '--config-rule': Invalid JSON:
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"
}
}
答案就在那里,这就是我阅读错误消息的方式...
Invalid JSON: Invalid control character at: line 3 column 87 (char 132)
“无效控制字符”——即换行符和换行符之类的字符——即不可见的“控制”字符。
“第 3 行第 87 列” - 告诉您它认为错误在哪里(这并不总是完全准确,但通常接近错误)。 在这种情况下,第 3 行第 87 列是以下行的结尾:
"Description": "检查您的 S3 存储桶是否不允许公共读取访问。如果 S3
“char 132” - 这是字符的 ASCII 码(顺便说一句,它是"
字符"
),这是它期望在行尾找到的。
那么,这一切意味着什么,基本上它期待一个"
并且它找到了一个行结束控制字符。
解决方法是将描述键和值放在一行中,因此:
"Description": "检查您的 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,我能够调整它并重新验证它,直到它正确为止。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.