我在尝试使用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)成功,我正在接收所有需要的凭据。
答案 0 :(得分:1)
通过IoT网络控制台(手动)将cognitoID附加到策略来解决它,并且它可以正常工作。