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"
}
}
uj5u.com熱心網友回復:
答案就在那里,這就是我閱讀錯誤訊息的方式...
Invalid JSON: Invalid control character at: line 3 column 87 (char 132)
“無效控制字符”——即換行符和換行符之類的字符——即不可見的“控制”字符。
“第 3 行第 87 列” - 告訴您它認為錯誤在哪里(這并不總是完全準確,但通常接近錯誤)。在這種情況下,第 3 行第 87 列是以下行的結尾:
"Description": "檢查您的 S3 存盤桶是否不允許公共讀取訪問。如果 S3
"char 132" - 這是字符的 ASCII 碼("順便說一句,它是字符),這是它期望在行尾找到的。
那么,這一切意味著什么,基本上它期待 a"并且它找到了一個行結束控制字符。
解決方法是將描述鍵和值放在一行中,因此:
"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,我能夠調整它并重新驗證它,直到它正確為止。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/364383.html
標籤:json 亚马逊网络服务 解析 亚马逊-s3 命令行界面
上一篇:將dfa轉換為星號大小寫的規則
