如何仅允许 AWS IoT 订阅 Cognito 用户 ID (sub) 下的主题?

How to only allow AWS IoT subscriptions to topics under Cognito user id (sub)?

我希望我的后端能够直接向经过身份验证的用户发送消息。这意味着我需要限制用户只能订阅他们自己标识符下的主题。理想情况下,根据我目前有限的理解,我会有一个将用户 sub 作为变量的策略:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iot:Connect",
        "iot:Publish",
        "iot:Receive",
        "iot:GetThingShadow",
        "iot:UpdateThingShadow",
        "iot:DeleteThingShadow"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "iot:Subscribe"
      ],
      "Resource": "arn:aws:iot:us-east-1:949960872797:topicfilter/user/${cognitoUserSub}/someTopic"
    }
  ]
}

如果最终 cognito 标识符不是此政策的选项,请告诉我我将提供的其他标识符。无论是哪个,我都需要能够根据用户的认知标识符(sub)以某种方式获取它。

请注意,我在这方面的知识非常有限,所以我知道我可能会偏离很多。

在 AWS 论坛上回答 https://forums.aws.amazon.com/thread.jspa?threadID=268115

有关如何将 Cognito 与 AWS IoT 结合使用的详细信息,另请查看 https://forums.aws.amazon.com/thread.jspa?threadID=224268