Amazon SQS 多租户和 HIPAA 合规性

Posted

技术标签:

【中文标题】Amazon SQS 多租户和 HIPAA 合规性【英文标题】:Amazon SQS multi tenancy and HIPAA compliance 【发布时间】:2015-11-18 22:51:30 【问题描述】:

我将实现客户端/服务器应用程序 - 1 个服务器 - [0-N] 个客户端。

为了组织客户端和服务器之间的通信,我计划使用 Amazon SQS 或类似的东西。

现在我有两个问题:

是否符合 Amazon SQS HIPAA 标准?

如何基于 Amazon SQS 队列组织多租户支持?

客户端之间的数据不得共享。每个客户端只能处理一个仅为该客户端发送的数据。

是否可以在单个 Amazon SQS 队列上实施,或者我需要为每个客户端创建一个单独的队列?

【问题讨论】:

【参考方案1】:

由于创建单独的队列是免费的,如果您不需要混合数据,这显然是您的最佳选择。假设每个“客户端”都将轮询队列,则没有好的方法可以根据消息中的内容来隔离访问,使用多个队列是最好的解决方案。它还具有更高的性能,因为您不会从队列中获得请求消息,然后如果它们不适合正确的客户端,则将它们丢弃。

【讨论】:

【参考方案2】:

您应该阅读此页面,其中涵盖了亚马逊的 HIPAA 合规性:https://aws.amazon.com/compliance/hipaa-compliance/

请注意,(此时)SQS 不在 AWS HIPAA 协议涵盖的服务列表中。您可以使用不在 HIPAA 合规性列表中的 AWS 服务,但不能在其中存储 PHI 数据。因此,您要么必须确保永远不会在 SQS 消息中存储任何 PHI,要么使用可以安装在 EC2 上的不同队列系统,例如 RabitMQ 或 ActiveMQ。

【讨论】:

感谢您的回答。是否足以在 EC2 上安装例如 ActiveMQ 并使用 HTTPS 对其进行配置以使该架构符合 HIPAA 标准? 我不会确切地告诉您要符合 HIPAA 标准您需要做什么。您需要阅读所有文档并了解需求,然后创建满足所有这些需求的架构。例如,您需要记录某些信息,然后将其存储在某个地方(S3/Glacier)一定年限。您需要将所有 PHI 数据存储在加密磁盘卷上(静态加密)。您需要使用专用 EC2 实例而不是多租户。您需要签署 AWS HIPAA 业务协议。【参考方案3】:

关于 HIPAA 和 SQS:虽然您的 BAA 与 AWS 可能不允许您将 SQS 用于 PHI,但它可能确实允许您使用 S3(但不要相信我的话,请查看您的 BAA 以确保)。

如果是这种情况,那么您可以将消息负载 (PHI) 放入(加密的)S3 文件中,并发送引用 S3 密钥的 SQS 消息。当您处理 SQS 消息时,您会从 S3 获取文件并对其进行处理,并酌情删除消息和/或文件。

您甚至可以使用"extended" SQS client 为您处理这个魔法。

另一个选项是在您的 S3 存储桶上启用和配置 Event Notifications,以便为上传到存储桶的每个文件排队一条消息。换句话说,文件被上传并且消息作为副作用被发送。然后,当您处理消息时,您将获得 S3 文件的句柄。通过将 PHI 保存在 S3 中,您可以避免 BAA 对 SQS 的限制。

【讨论】:

【参考方案4】:

要符合 HIPAA,请不要忘记:

加密“静止”数据(数据库或 S3 存储桶)。 在通信期间加密“传输中”数据 使数据存储专用实例或主机

PHI 数据可以保存在 Rob 上面提到的关系数据库或 S3 存储桶中。根据您的情况,就多租户而言,S3 存储桶可能是更好的解决方案。更大的有效载荷也很容易获得。历史消息可以轻松地呈现给不同 S3 存储桶路径上的不同客户端。

同样,这种方法可以应用于 lambda 无服务器解决方案或任何其他不符合 HIPAA 的 AWS 服务,这些服务即使在加密后也不应该保存任何 PHI 数据。

【讨论】:

以上是关于Amazon SQS 多租户和 HIPAA 合规性的主要内容,如果未能解决你的问题,请参考以下文章

HIPAA 合规性的数据库要求是啥?

DynamoDB 加密以实现 hipaa 合规性

谷歌端点是不是符合 hipaa

可以将 Flutter 用于符合 Hipaa 的应用程序吗?

Bluemix HIPAA 是不是兼容?

使用符合 HIPAA 的 GCP 数据库或 Firestore