首页 > 解决方案 > 使用 AWS IoT 管理多个客户

问题描述

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

管理同一个 AWS 组织中的所有客户是否可行?这是建议还是普遍做法?

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

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

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

标签: amazon-web-servicesaws-iotaws-organizations

解决方案


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

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

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

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

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


推荐阅读