从公共互联网发布AWS SQS消息

问题描述 投票:0回答:1

我的Agent运行在各种环境设备上,要从公共网络上定期投递消息,这些消息将由我的AWS Lambda处理,系统是异步的。

我正在考虑使用SQS来喂养Lambda.只是,SQS端点将对互联网开放。如何验证AWS SQS上发布的消息。

大部分推送消息的设备agents会在客户VPN上。所以,建立一个private-vpn-link是一个可能的解决方案。

amazon-web-services lambda amazon-sqs
1个回答
4
投票

不应公开SQS队列。 以便任何没有AWS证书的人都可以使用它。这不是一个好的做法。

一个更好的选择是在你的SQS队列前使用API网关。

这样你就可以让你的 API网关端点公开控制其吞吐量、限制、节流、使用API密钥访问等。

API网关将与你的SQS队列集成,这将使你能够做到 触发你的lambda函数.

随着使用 API密钥兰姆达授权 你将能够 门禁 的设备代理到 API 网关,然后再到 SQS。


1
投票

Amazon SQS端点在互联网上,而不是在VPC中。使用 VPN 连接没有任何好处,除非您希望创建一个策略,只允许通过 VPN 连接发送消息到队列。

你的用例可能更适合于以下情况。AWS物联网 而不是Amazon SQS。

AWS IoT

它的设计是为了处理大量的数据 一些来自不同设备的数据, 与内置的规则处理消息。


0
投票

如果你正在寻找最小化你的消息穿越公共互联网空间,你有几个选项,可供你选择。

首先,你提到你的设备可以通过VPN连接,如果这是有可能的,你可以创建一个新的VPN。VPC端点 使用自定义域名为SQS服务。

在你的应用程序中,通过引用自定义域名或来自某个ENI的私有IP地址,可能会通过VPC进行实际的私有交互。

你可以通过在前面添加一个代理层来增强你的安全检查,以验证输入,对内容进行任何检查。你的应用会传递到这个验证层,如果通过了就会添加到队列中。

有一点值得指出的是,即使使用VPN,流量也是在互联网上穿越,然而在传输过程中是加密的。最好的安全线是将HTTPS与私人凭证结合在一起(最好是作为IAM角色),以减少有人能够将不适当的数据添加到你的队列中的机会。

© www.soinside.com 2019 - 2024. All rights reserved.