【发布时间】:2020-06-15 12:44:20
【问题描述】:
我需要创建一个策略,仅允许注册到 IoT Core 的设备进行连接,并允许作业订阅中使用的主题。
目前,我有如下所示的政策
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "iot:*",
"Resource": "arn:aws:iot:ap-south-1:12345678912:topic/*"
},
{
"Effect": "Allow",
"Action": "iot:*",
"Resource": "arn:aws:iot:ap-south-1:12345678912:client/${iot:Connection.Thing.ThingName}"
}
]
}
在设备端,我正在使用 Python 库根据文档 https://github.com/aws/aws-iot-device-sdk-python/blob/master/samples/jobs/jobsSample.py 订阅作业
我用来订阅jobExecutionTopicType 中存在的主题的打击示例代码存在于thingsJobManager 中。
self.awsIoTMQTTThingJobsClient.createJobSubscription(self.newJobReceived, jobExecutionTopicType.JOB_NOTIFY_NEXT_TOPIC)
self.awsIoTMQTTThingJobsClient.createJobSubscription(self.startNextJobSuccessfullyInProgress, jobExecutionTopicType.JOB_START_NEXT_TOPIC, jobExecutionTopicReplyType.JOB_ACCEPTED_REPLY_TYPE)
self.awsIoTMQTTThingJobsClient.createJobSubscription(self.startNextRejected, jobExecutionTopicType.JOB_START_NEXT_TOPIC, jobExecutionTopicReplyType.JOB_REJECTED_REPLY_TYPE)
我目前面临的问题是,我的设备客户端无法订阅该主题,并且我在当前策略配置下收到AWSIoTExceptions.subscribeTimeoutException。
如果我像
这样更改政策{
"Effect": "Allow",
"Action": "iot:*",
"Resource": "arn:aws:iot:ap-south-1:12345678912:*"
}
然后它可以订阅主题,但是它违反了设备连接条件。它允许任何设备连接到 IoT Core
请帮助我制定满足这两个条件的政策。
提前致谢。
阿维纳什·德什穆赫
【问题讨论】:
标签: python amazon-web-services aws-iot