有近100000台设备正在生成日志(每天总计10-20 TB(,我希望它们直接上传到kinesis。如何控制访问?IAM只允许我每个帐户最多创建1000个用户(我知道我们可以要求增加用户限额(,但我想知道什么是更好的方法。
一个要求是,我希望能够授予/撤销每个设备对驱动蛋白的访问权限。
由于您已经拥有IoT Core,我想我应该首先尝试利用它进行日志记录。这将使您能够利用物联网核心内置的基于证书的授权,我知道您可以将物联网主题连接到Kinesis流中。
如果你觉得这太大了(根据消息和规则的数量,可能太贵了(,那么我会为我的设备提供临时安全凭据,让它们可以写入Kinesis,而不需要其他东西。
您可以使用Lambda或ECS上的计划作业,在每个设备的基础上生成这些凭据(据我所知,每个帐户的凭据数量没有配额(。此作业将遍历您的设备,并为每个设备生成一组凭据。然后,它将通过IoT Core将这些凭据发布到设备,或者更新设备阴影。
然后,设备可以使用这些凭据创建Kinesis客户端来发布日志消息。每当您的客户端收到新凭据时,都必须创建一个新客户端。
作为替代方案,如果您的设备在内部维护日志文件,则可以使用类似的方法触发将这些文件上传到S3。在这种情况下,计划任务将为每个设备发布一个预先签名的URL,而不是发布临时凭据。它会将URL发布到设备上,设备会使用该URL上传其累积的日志。然后,您需要对S3上的文件执行一些操作。