我和你有同样的问题。我找到了解决方案。
403 状态代码意味着您需要授权。
如果您阅读本文档(接近结尾):发布/订阅策略示例 http://docs.aws.amazon.com/iot/latest/developerguide/pub-sub-policy.html据说你需要2 政策使其与经过身份验证的 Cognito 用户一起使用。一个用于 Cognito 身份池,另一个用于 Cognito 用户。
无法使用 UI 将策略附加到 cognito 用户,但您可以通过 CLI 来完成此操作。
将策略附加到认知用户的命令是:
aws iot attach-principal-policy --principal "cognito user id" --policy-Name "policy name"
您可以找到您的认知用户 ID in :
Cognito > Manager Federated Identities > choose your identity pool > identity browser > and find your identity ID
我将此策略用于测试目的。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:*"
],
"Resource": [
"*"
]
}
]
}
为了使其可重用,您需要使用 lambda 函数(此处为 JavaScript)。
var AWS = require('aws-sdk');
var iot = new AWS.Iot();
exports.handler = function(event, context, cb) {
var params = {
policyName: 'your policy',
principal: 'your cognito id'
};
var out = iot.attachPrincipalPolicy(params, function(err, data) {
if (err) cb(err);
else cb(null, data);
});
};