如何在AWS私有子网中托管的Kafka / Nifi集群中从公共互联网接收消息/事件?

时间:2018-04-23 09:58:13

标签: amazon-web-services apache-kafka apache-nifi

我正在研究一个项目,很多机器/传感器将直接向Kafka / Nifi集群发送消息。这台机器/传感器将从公共互联网推送消息而不是从公司网络推送消息。我们在AWS云上使用Hortonworks发行版。

我的问题是:为这种用例设置Kafka / Nifi群集的最佳架构实践是什么,我不想将我的群集放在公共子网中以便从公共互联网接收消息。

你能帮我解决这个问题吗?

enter image description here

2 个答案:

答案 0 :(得分:2)

显然你不应该把你的卡夫卡暴露给这个世界。因此"传感器数据直接传给Kafka"是错误的做法,IMO。至少,不使用某些SSL渠道

您可以允许外部设备的特定子网到达内部子网,假设您知道该范围,但我认为您在这里更好的选择是使用Minifi或Streamsets SDC,它们是位于传感器上的事件收集器,可以加密流量到开放的Nifi或Streamsets集群,然后集群可以将事件转发到内部Kafka集群。你显然已经拥有Nifi,因此Minifi就是为此而建的

另一种选择可能是Kafka REST代理,但您仍然需要在其周围设置身份验证/安全层

答案 1 :(得分:0)

使用AWS IoT接收设备通信,此选项为您提供安全层,并将HDF沙箱与互联网隔离。

  

AWS IoT Core在所有连接点提供相互身份验证和加密,因此在没有经过验证的身份的情况下,设备与AWS IoT Core之间永远不会交换数据。

然后使用NiFi处理器导入信息。