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

Amazon web services 从公共互联网发布AWS SQS消息,amazon-web-services,aws-lambda,amazon-sqs,Amazon Web Services,Aws Lambda,Amazon Sqs,在各种环境/设备上运行的代理将定期从公共网络中删除消息。 这些消息将由我的AWS Lambda处理。 这些系统是异步的 我正在考虑用SQS喂羔羊。 正因为如此,SQS端点将向互联网开放。 如何验证AWS SQS上发布的消息 推送消息的大多数设备/代理将位于客户VPN上。因此,建立专用vpn链路是一种可能的解决方案。您不应将SQS队列公开,以便任何没有AWS凭据的人都可以使用它。这不是一个好的做法 更好的选择是在SQS队列前面使用API网关: 通过这种方式,您可以公开API网关端点,控制其吞

在各种环境/设备上运行的代理将定期从公共网络中删除消息。 这些消息将由我的AWS Lambda处理。 这些系统是异步的

我正在考虑用SQS喂羔羊。 正因为如此,SQS端点将向互联网开放。 如何验证AWS SQS上发布的消息


推送消息的大多数设备/代理将位于客户VPN上。因此,建立专用vpn链路是一种可能的解决方案。

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

更好的选择是在SQS队列前面使用API网关:

通过这种方式,您可以公开API网关端点,控制其吞吐量、限制、节流、使用API密钥访问等

API网关将与您的SQS队列集成,这将允许您触发lambda函数


通过使用或,您将能够控制设备/代理对API网关的访问,然后控制对SQS的访问。

如果您希望尽量减少通过公共互联网空间的消息,您可以使用一些选项

首先,正如您提到的,您有可以通过VPN连接的设备,如果可能的话,您可以使用自定义域名为SQS创建一个

在您的应用程序中,通过引用来自其中一个ENI的自定义域名或专用IP地址,可以通过专有网络进行实际交互

您可以通过在前面添加代理层来验证输入以对内容执行任何检查,从而增强安全检查。您的应用程序将传递到此验证层,然后在通过时添加到队列中


值得一提的是,即使使用VPN,流量也会通过互联网,但在传输过程中会进行加密。最好的安全措施是将HTTPS与私有凭证(最好是作为IAM角色)相结合,以减少有人向您的队列添加不正确数据的可能性。

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

您的用例可能比Amazon SQS更适合:


它设计用于处理来自各种设备的大量数据,带有处理消息的内置规则。

也许这会有所帮助:这解决了我的问题。我发现的其他链接与您共享的链接一致-。@Ambar很高兴听到。谢谢你的链接。我不知道这个物联网服务提供,因为物联网不完全是我正在做的。我会看一遍,如果有帮助的话会更新。