AWS IoT:ForbiddenException:禁止

时间:2017-10-25 10:27:53

标签: javascript amazon-web-services aws-sdk aws-iot

我在尝试使用getThingShadow()方法时遇到错误。

没有Node.js,只是简单的Javascript。

相关守则:

var params = {
  thingName: 'test123'
};
var iotdata = new AWS.IotData({
  accessKeyId: AWS.config.credentials.accessKeyId,
  secretKey: AWS.config.credentials.secretAccessKey,
  sessionToken: AWS.config.credentials.sessionToken,
  region: AWSConfiguration.region, 
  endpoint: AWSConfiguration.host
});

iotdata.getThingShadow(params, function (err, data) {
  if (err) {
    console.log(err, err.stack); 
  } 
  else {
    console.log(data);         
  }
});

错误消息:

  

获取https://XXX.eu-central-1.amazonaws.com/things/test123/shadow

     

[HTTP / 1.1 403 Forbidden 106ms] ForbiddenException:Forbidden

     

Stack-Trace://多行无关文本

我的IAM规则:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iot:Publish",
        "iot:Subscribe",
        "iot:Connect",
        "iot:Receive",
        "iot:UpdateThingShadow",
        "iot:GetThingShadow"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}

你可能会看到,我允许字面上的一切,但我还是得到了Forbidden异常,为什么? 顺便说一句:用户身份验证(AWS-Cognito)成功,我正在接收所有需要的凭据。

1 个答案:

答案 0 :(得分:1)

通过IoT网络控制台(手动)将cognitoID附加到策略来解决它,并且它可以正常工作。