【问题标题】:How do I see which user that invoked a Lambda function如何查看调用 Lambda 函数的用户
【发布时间】:2020-11-19 21:48:33
【问题描述】:

在 Lambda 调用和身份验证方面需要一些帮助。我有一个基于特定主题从 AWS IoT MQTT 源调用的 AWS Lambda 函数。当经过身份验证的 IoT 事物在该主题上发布到 MQTT 时,就会发生调用。我的问题是如何查看谁调用了它?我需要这些信息,所以我知道在哪个用户下将发布的信息存储到数据库。我猜应该有一些环境变量携带这些信息,但我还没有找到。也许我一直在寻找所有错误的地方:/

非常感谢, 马库斯

【问题讨论】:

  • 绝对不在环境变量中。您需要将用户信息作为 MQTT 消息的一部分推送,这将使其在 Lambda 函数内的 event 对象中可用。用户/事物如何准确地进行身份验证?
  • 嗨,马克,对不起,我意识到我没有提到身份验证。我使用 X.509。所以 AWS IoT 应该(如果我理解正确的话)确切地知道发布到 MQTT 的东西,因为证书对于那个东西是唯一的。我希望用它来识别发件人。但是,发送者当然可以将他的用户 /pw 身份验证作为 MQTT 的一部分发送。我只是希望取消密码处理,因为已经完成了基于证书的身份验证。也许我误解了使用该机制的可能性。

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


【解决方案1】:

您应该能够使用类似于以下 SQL 语句的方式修改 IoT 配置中的 Lambda 触发器以包含 client ID

select clientId() as clientId, *

【讨论】:

  • 嗨,马克,谢谢,效果很好。然后我还可以将 clientId 限制为特定的东西,我认为这应该让我确定帖子来自谁。非常感谢!我将以下内容添加到 IoT 规则 SELECT *, clientid() as clientid FROM 'topic'
【解决方案2】:

你好吗?

您可以向用户发送主题消息。这不是更容易吗?不知道如何从 env var 中获取它。

【讨论】:

  • 嗨 Leandro,这是可能的,只是我希望取消 user/pw 并依赖作为 AWS IoT 的一部分完成的 X.509 证书身份验证,只要事情发布到主题.但我不得不承认,我并没有完全掌握该功能的所有方面。
猜你喜欢
  • 2015-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-05
  • 2020-11-11
  • 2017-10-01
  • 1970-01-01
相关资源
最近更新 更多