当前位置:   article > 正文

AWS IoT Core策略操作及示例_亚马逊云mqtt服务器策略

亚马逊云mqtt服务器策略

1、AWS IoT Core 策略

授权是向经过身份验证的身份授予权限的过程。您可以使用 AWS IoT Core 和 IAM policy 授予 AWS IoT Core 中的权限。本主题介绍了 AWS IoT Core 策略。

AWS IoT Core 策略是 JSON 文档。它们与 IAM policy 遵循相同的约定。AWS IoT Core 支持命名策略,因此,许多身份都可以引用相同的策略文档。命名策略采用版本化,以便可以轻松回滚。

AWS IoT Core 策略允许您控制对 AWS IoT Core 数据层面的访问。AWS IoT Core 数据层面由以下操作组成,允许您连接到 AWS IoT Core 消息代理,发送和接收 MQTT 消息以及获取或更新事物的 Device Shadow。

AWS IoT Core 策略是包含一个或多个策略语句的 JSON 文档。每个语句包含:

  • Effect,指定是允许还是拒绝该操作。

  • Action,用于指定策略允许或拒绝的操作。

  • Resource,用于指定允许或拒绝对其执行操作的资源。

AWS IoT Core 定义了以下策略操作

1、MQTT 策略操作

  • iot:Connect

表示连接到 AWS IoT Core 消息代理所需的权限。每次向代理发送 iot:Connect 请求时,均检查 CONNECT 权限。消息代理禁止两个具有相同 ID 的客户端同时保持连接状态。在第二个客户端连接后,代理将关闭现有连接。iot:Connect 权限可用来确保仅使用特定客户端 ID 的授权客户端可以连接。

  • iot:GetRetainedMessage

代表获取保留单条消息内容的权限。保留的邮件是使用设置的保留标志发布并由 AWS IoT Core 存储的邮件。

  • iot:ListRetainedMessages

表示检索有关帐户保留邮件的摘要信息(而不是邮件内容)的权限。保留的邮件是使用设置的保留标志发布并由 AWS IoT Core 存储的邮件。为此操作指定的资源 ARN 必须为 *。

  • iot:Publish

代表向 MQTT 主题发布内容的权限。

  • iot:Receive

表示从 AWS IoT Core 接收消息所需的权限。

  • iot:RetainPublish

表示使用RETAIN 标志集发布 MQTT 消息的权限。

  • iot:Subscribe

代表订阅主题筛选条件的权限。

Device Shadow  策略操作

  • iot:DeleteThingShadow

表示删除事物的Device Shadow的权限。

  • iot:GetThingShadow

表示检索事物的Device Shadow的权限。

  • iot:ListNamedShadowsForThing

表示列出名为Shadows的事物的权限。

任务执行 AWS IoT Core 策略操作 (任务执行策略操作仅适用于HTTP TLS终端节点。)

  • iot:DescribeJobExecution

表示为给定事物检索任务执行的权限。

  • iot:GetPendingJobExecutions

表示一个权限,用于为事物检索未处于最终状态的任务的列表。

  • iot:UpdateJobExecution

表示更新任务执行的权限。

  • iot:StartNextPendingJobExecution

表示一个权限,用于为事物获取和启动下一个待处理任务执行。(即,将状态为 QUEUED 的任务执行更新为状态 IN_PROGRESS。)

AWS IoT Core 凭证提供程序策略操作

  • iot:AssumeRoleWithCertificate

表示调用 AWS IoT Core 凭证提供程序以使用基于证书的身份验证代入IAM角色的权限。

2、AWS IoT Core 策略示例

连接策略示例

  1. {
  2. "Version": "2012-10-17",
  3. "Statement": [
  4. {
  5. "Effect": "Allow",
  6. "Action": [
  7. "iot:Connect"
  8. ],
  9. "Resource": [
  10. "arn:aws:iot:us-east-1:123456789012:client/client1"
  11. ]
  12. }
  13. ]
  14. }

发布/订阅策略示例

  1. {
  2. "Version": "2012-10-17",
  3. "Statement": [
  4. {
  5. "Effect": "Allow",
  6. "Action": [
  7. "iot:Connect"
  8. ],
  9. "Resource": [
  10. "arn:aws:iot:us-east-1:123456789012:client/client1"
  11. ]
  12. },
  13. {
  14. "Effect": "Allow",
  15. "Action": [
  16. "iot:Publish",
  17. "iot:Receive"
  18. ],
  19. "Resource": [
  20. "arn:aws:iot:us-east-1:123456789012:topic/iotmonitor/provisioning/987654321098"
  21. ]
  22. },
  23. {
  24. "Effect": "Allow",
  25. "Action": [
  26. "iot:Subscribe"
  27. ],
  28. "Resource": [
  29. "arn:aws:iot:us-east-1:123456789012:topicfilter/iotmonitor/provisioning/987654321098"
  30. ]
  31. }
  32. ]
  33. }

基本任务策略示例

  1. {
  2. "Version": "2012-10-17",
  3. "Statement": [
  4. {
  5. "Effect": "Allow",
  6. "Action": [
  7. "iot:Connect"
  8. ],
  9. "Resource": [
  10. "arn:aws:iot:us-west-2:57EXAMPLE833:client/uniqueThingName"
  11. ]
  12. },
  13. {
  14. "Effect": "Allow",
  15. "Action": [
  16. "iot:Publish"
  17. ],
  18. "Resource": [
  19. "arn:aws:iot:us-west-2:57EXAMPLE833:topic/test/dc/pubtopic",
  20. "arn:aws:iot:us-west-2:57EXAMPLE833:topic/$aws/events/job/*",
  21. "arn:aws:iot:us-west-2:57EXAMPLE833:topic/$aws/events/jobExecution/*",
  22. "arn:aws:iot:us-west-2:57EXAMPLE833:topic/$aws/things/uniqueThingName/jobs/*"
  23. ]
  24. },
  25. {
  26. "Effect": "Allow",
  27. "Action": [
  28. "iot:Subscribe"
  29. ],
  30. "Resource": [
  31. "arn:aws:iot:us-west-2:57EXAMPLE833:topicfilter/test/dc/subtopic",
  32. "arn:aws:iot:us-west-2:57EXAMPLE833:topic/$aws/events/jobExecution/*",
  33. "arn:aws:iot:us-west-2:57EXAMPLE833:topicfilter/$aws/things/uniqueThingName/jobs/*"
  34. ]
  35. },
  36. {
  37. "Effect": "Allow",
  38. "Action": [
  39. "iot:Receive"
  40. ],
  41. "Resource": [
  42. "arn:aws:iot:us-west-2:57EXAMPLE833:topic/test/dc/subtopic",
  43. "arn:aws:iot:us-west-2:57EXAMPLE833:topic/$aws/things/uniqueThingName/jobs/*"
  44. ]
  45. },
  46. {
  47. "Effect": "Allow",
  48. "Action": [
  49. "iot:DescribeJobExecution",
  50. "iot:GetPendingJobExecutions",
  51. "iot:StartNextPendingJobExecution",
  52. "iot:UpdateJobExecution"
  53. ],
  54. "Resource": [
  55. "arn:aws:iot:us-west-2:57EXAMPLE833:topic/$aws/things/uniqueThingName"
  56. ]
  57. }
  58. ]
  59. }

3、注意事项

对策略所做的更改可能需要几分钟才能生效,具体取决于 AWS IoT 缓存策略文档的方式。也就是说,访问最近被授予访问权限的资源可能需要几分钟时间,并且资源可能在撤销访问权限后几分钟内仍可访问。

 

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号