我将实现客户端/服务器应用程序 - 1 个服务器 - [0-N] 个客户端。
为了组织客户端和服务器之间的通信,我计划使用 Amazon SQS 或类似的东西。
现在我有两个问题:
是否符合 Amazon SQS HIPAA 标准?
如何基于 Amazon SQS 队列组织多租户支持?
客户端之间的数据不得共享。每个客户端只能处理仅为该客户端发送的数据。
是否可以在单个 Amazon SQS 队列上实施,或者我需要为每个客户端创建一个单独的队列?
我将实现客户端/服务器应用程序 - 1 个服务器 - [0-N] 个客户端。
为了组织客户端和服务器之间的通信,我计划使用 Amazon SQS 或类似的东西。
现在我有两个问题:
是否符合 Amazon SQS HIPAA 标准?
如何基于 Amazon SQS 队列组织多租户支持?
客户端之间的数据不得共享。每个客户端只能处理仅为该客户端发送的数据。
是否可以在单个 Amazon SQS 队列上实施,或者我需要为每个客户端创建一个单独的队列?
由于创建单独的队列没有成本,如果您不需要混合数据,这显然是您的最佳选择。假设每个“客户端”都将轮询队列,则没有好的方法可以根据消息中的内容来隔离访问,使用多个队列是最好的解决方案。它也将具有更高的性能,因为您不会从队列中获得请求消息,然后如果它们不适合正确的客户端,则将它们丢弃。
您应该阅读涵盖亚马逊 HIPAA 合规性的页面:https ://aws.amazon.com/compliance/hipaa-compliance/
请注意,(此时)SQS 不在 AWS HIPAA 协议涵盖的服务列表中。您可以使用不在 HIPAA 合规性列表中的 AWS 服务,但不能在其中存储 PHI 数据。因此,您要么必须确保永远不会在 SQS 消息中存储任何 PHI,要么使用可以安装在 EC2 上的不同队列系统,例如 RabitMQ 或 ActiveMQ。
关于 HIPAA 和 SQS:虽然您使用 AWS 的 BAA 可能不允许您将 SQS 用于 PHI,但它可能确实允许您使用 S3(但不要相信我的话,请查看您的 BAA 以确定)。
如果是这种情况,那么您可以将消息负载 (PHI) 放入(加密的)S3 文件中,并发送引用 S3 密钥的 SQS 消息。当您处理 SQS 消息时,您会从 S3 中获取文件并进行处理,并酌情删除消息和/或文件。
甚至还有一个“扩展的”SQS 客户端,您可以使用它来为您处理这个魔法。
另一种选择是在您的 S3 存储桶上启用和配置事件通知,以便为上传到存储桶的每个文件排队一条消息。换句话说,文件被上传并且消息作为副作用被发送。然后,当您处理消息时,您将获得 S3 文件的句柄。通过将 PHI 保存在 S3 中,您可以避免 BAA 对 SQS 的限制。
要符合 HIPAA,请不要忘记:
PHI 数据可以保存在 Rob 上面提到的关系数据库或 S3 存储桶中。根据您的情况,就多租户而言,S3 存储桶可能是更好的解决方案。更大的有效载荷也很容易获得。历史消息可以很容易地在不同的 S3 存储桶路径上呈现给不同的客户端。
类似地,这种方法可以应用于 lambda 无服务器解决方案或任何其他不符合 HIPAA 的 AWS 服务,即使在加密之后也不应该保存任何 PHI 数据。