使用 AWS IoT 管理多个客户

Manage multiple customers with AWS IoT

我正在围绕 aws 技术构建我的产品,主要使用物联网。在了解所有服务后,我可能会使用 Kinesis、Lambda 和 Greengrass。

是否可以在同一个 AWS 组织中管理所有客户?这是建议还是常见做法?

我相信每个客户拥有一个组织会使其更安全,因为这将是一个更加孤立的环境,但另一方面,这也意味着我需要复制 lambda 函数、greengrass 组件(配方等) ) 对于每个客户,并且很可能更好地管理权限,涉及 CI 的大量工作以自动化所有这些。

每个客户一个 AWS 组织是否可行?或者我应该如何分配我的资源?谢谢

编辑:解决@John Rotenstein 的问题。 他们将无法直接访问 AWS,但可以访问仪表板(他们需要识别)以读取有关其资源(例如温度传感器)的指标。当然,别人的资源应该是不能访问的。数据需要针对特定​​客户进行识别(因此我们可以通过他们可以访问的仪表板直接向他们提供指标)。关于数据如何存储,它可能在不同的数据库或帐户中(当前的问题是关于这个,所以还不确定)。最后,客户将遵循订阅模式。

除非您特别需要将数据分开,否则最有意义的做法是:

  • 为所有客户使用相同的基础设施
  • 将所有信息保存在相同的数据存储中
  • 将业务逻辑放在后端应用程序中以分离客户数据

例如,当客户请求访问他们的数据时,他们可能会与您的应用程序进行通信。他们将向应用程序进行身份验证,然后应用程序将确定他们有权访问哪些数据。然后它可以查询特定于他们作为客户的存储层中的数据。

将此与 Facebook 进行比较——他们没有为每个用户提供一个“单独的 Facebook”。相反,数据全部混合在一起,并且有应用程序逻辑确定特定用户可以访问哪些信息。

使用单独的数据存储或单独的 AWS 账户的唯一原因是存在一些禁止将客户数据存储在一起的安全要求,或者是否需要单独计算客户之间的 AWS 成本。