簡體   English   中英

AWS Node JS SDK-Amazon IOT-MalformedPolicyException:策略文檔格式錯誤

[英]AWS Node JS SDK - Amazon IOT - MalformedPolicyException: Policy document is Malformed

我試圖使用以下代碼使用適用於Node JS的AWS開發工具包生成IOT策略。

var params = {
  policyDocument: 'file:///tmp/mypolicy.json', 
  policyName: 'my_custom_policy'
};
iot.createPolicy(params, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
});

但是運行腳本將返回以下異常。

[MalformedPolicyException:策略文檔格式錯誤]

消息:“策略文檔格式錯誤”,

代碼:“ MalformedPolicyException”等

我已經嘗試過/tmp/mypolicy.json ,./ ./mypolicy.json (在將json文件復制到腳本文件夾中之后)等。但是異常始終發生。

json的內容在下面給出(從Amazon官方文檔復制)。

{
    "Version": "2012-10-17", 
    "Statement": [{
        "Effect": "Allow",
        "Action":["iot:*"],
        "Resource": ["*"]
    }]
}

關於指定policyDocument並生成IOT策略的正確方法有任何想法嗎?

我在Golang SDK中遇到了相同的問題,因為它不支持“ file://”路徑,這是特定於CLI的功能。 要從磁盤加載策略,您應該使用Go stdlib open並以字符串形式讀取內容。

file, err := os.Open("filename") 
if err != nil { 
// handle error 
} 

buf := &bytes.Buffer{} 
if err := io.Copy(buf, file); err != nil { 
// handle error 
} 

resp, err := svc.CreatePolicy(&iot.CreatePolicyInput{ 
PolicyDocument: aws.String(buf.String()), 
// ... 
}) 
if err != nil { 
// handle error 
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM