【问题标题】:AWS IoT Universal Policy vs Policies by Cognito UserAWS IoT 通用策略与 Cognito 用户的策略
【发布时间】:2018-02-27 10:45:42
【问题描述】:

我想知道是否有人知道 AWS IoT 关于策略处理的最佳实践,例如,我们可能有两种不同的情况:

案例 1: 调用 lambda(identity-id as param) 动态创建策略,然后将策略附加到身份 ID。该策略将包含硬编码的事物名称,例如:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "iot:Connect",
      "Resource": "arn:aws:iot:us-west-2:XXXX:client/hardcodedClient1"
    },
    {
      "Effect": "Allow",
      "Action": [
        "iot:Publish",
        "iot:Subscribe",
        "iot:Receive"
      ],
      "Resource": [
        "arn:aws:iot:us-west-2:XXXX:topic/$aws/things/THINGNAME1/*",
        "arn:aws:iot:us-west-2:XXXX:topicfilter/$aws/things/THINGNAME1/*"
      ]
    }
  ]
}

案例 2:通过使用 ${iot:ClientId}${iot:ThingName} 等策略变量,我们可以将一个策略附加到所有 congito-identity-users;

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "iot:Connect",
      "Resource": "arn:aws:iot:us-west-2:XXXX:client/${iot:ClientId}"
    },
    {
      "Effect": "Allow",
      "Action": [
        "iot:Publish",
        "iot:Subscribe",
        "iot:Receive"
      ],
      "Resource": [
        "arn:aws:iot:us-west-2:XXXX:topic/$aws/things/${iot:Connection.Thing.ThingName}/*",
        "arn:aws:iot:us-west-2:XXXX:topicfilter/$aws/things/${iot:Connection.Thing.ThingName}/*"
      ]
    }
  ]
}

所以,问题是。那么哪一个是最佳实践,而且对于 Cognito 用户只能与他自己的设备进行交互,它们都是安全的?

【问题讨论】:

  • 您是否回答了自己的一些问题?

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


【解决方案1】:

使用策略变量的案例 2 是推荐的方法。

它减少了要处理的策略数量,并使它们保持有意义和可重用。从好的方面来说,不使用 lambda 并每次都创建策略会节省一些额外的金钱和时间!

就安全性而言,它与策略中的策略变量无关,最终策略允许或拒绝什么操作,因为策略变量会根据谁在尝试执行操作以及之后进行动态解决它与您的硬编码策略相同。

【讨论】:

  • 但是#case2 将允许任何用户连接到物联网注册表中的任何东西,对吗?
  • 是的,您可以通过使用 bool 条件来控制它,以允许委托人仅充当它所附加的那些东西。您可以使用 attach-thing-principal API 附加主体和事物
【解决方案2】:

案例 2 更好。您还可以使用具有适当 IAM 策略的 Cognito 联合池实现身份验证机制,并在具有适当权限的 IoT 策略中使用 ${cognito-identity.amazonaws.com:sub} 变量(只需记住将此策略附加到您的 Cognito identityId)。

如果您的客户端从浏览器连接,最好不要使用iot:ClientId,因为 clientId 必须是唯一的,这样用户将无法打开多个浏览器选项卡。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-30
    • 2020-06-30
    • 1970-01-01
    • 1970-01-01
    • 2014-10-30
    • 2019-11-16
    • 2017-12-17
    • 2016-12-02
    相关资源
    最近更新 更多