已经与AWS IoT合作了几周了,现在非常恶心!使用单个iot:ClientId
连接和订阅MQTT主题非常容易。我喜欢这样一个事实,即您可以使用iot:ClientId
进行连接,并创建IAM策略来阻止用户订阅不包括他们用来连接的iot:ClientId
的主题。我对物联网的一个功能有安全顾虑。。。。。。*
通配符的使用。黑客可以使用*
作为iot:ClientId
轻松连接到物联网核心云。这将允许他们订阅任何主题,而不管iot:ClientId
如何。我想知道我是否可以创建IAM策略来阻止开发人员使用*
通配符代替iot:ClientId
。我正在寻找一个不包括在IAM策略中定义静态iot:ClientId
的解决方案。我不知道为什么我找不到任何解决这个问题的实际例子,因为我相信有很多人讨厌物联网通配符系统。无论如何,希望有一个包含iot:Connect
的压缩IAM策略JSON示例的解决方案。这就是我目前所拥有的:
...
- Effect: Allow
Action:
- "iot:Connect"
Resource:
- !Sub arn:aws:iot:${AWS::Region}:${AWS::AccountId}:client/${!iot:ClientId}
...
您可以在策略中使用IAM变量。看见https://docs.aws.amazon.com/iot/latest/developerguide/basic-policy-variables.html