我目前有一个没有内置数据库加密的MySQL数据库。我知道加密是可用的,但是对于我正在使用的实例大小,它在AWS RDS上不可用。
相反,我打算利用AWS KMS(基本上是标准的散列加密)来散列每个值,然后再将其输入数据中。我正在处理需要符合HIPAA标准的敏感数据。
我的问题是,通过对值进行散列,这实际上会使查询变得无用吗?另外,如果是这种情况,那么散列每个值(名字,姓氏,DOB等等)与将整个行作为单个JSON字符串处理,然后散列(并存储在一列中。)
如果有人在使用HIPAA /敏感数据加密应用程序级别并将其存储在MySQL中,我会感激任何建议!
答案 0 :(得分:1)
虽然我过去曾参与过几个HIPPA项目,但我绝不是专家。 HIPAA有许多组件需要考虑,因此请将以下内容视为非HIPPA特定的。
我会考虑使用完整的光盘和数据库加密操作您自己的关系数据库服务器,或者(如果您只能使用JSON字符串)使用像Dynamo DB这样的NOSQL数据库。
我工作的最后一个项目将数据保存在加密的关系数据库中并将其锁定(我们雇用了安全工程师)但是在应用程序级别我们没有加密任何东西。
如果可能的话,我会尽量避免在应用程序级别加密,因为这会增加复杂性
最后,您可能会发现此链接很有用 https://d0.awsstatic.com/whitepapers/compliance/AWS_HIPAA_Compliance_Whitepaper.pdf
以及使用dynamoDB管理PHI的此工具 https://github.com/awslabs/aws-dynamodb-encryption-java
答案 1 :(得分:0)
我是一名DB加密顾问,在您的情况下,我建议使用基于列的加密解决方案。这样,您就可以选择包含敏感信息的列,定义特定于列的enc / dec和访问控制策略,当然每列都有不同的键。
由于您使用的是MySQL,您可能需要查看MyDiamo,该解决方案有一个试用许可证。我已将其部署在客户专门针对HIPAA合规性的许多场合(确实需要完全符合KMS解决方案)。解决方案的安全代理驻留在数据库引擎中,CLI将帮助您进行管理。