【发布时间】:2017-09-05 20:34:40
【问题描述】:
我已使用非默认 kms 密钥来加密附加到我的 mongodb ec2 实例的 ebs 卷,包括根卷。我在单独的 ec2 实例上运行的 java 应用程序能够从我的 mongodb 服务器访问未加密的数据,尽管分配给它的角色无权访问我用来加密我的卷的密钥。 我的理解是,只有有权访问加密密钥的用户或服务才能获得未加密的数据。它是否正确?如果不是,请解释一下。
如何查看或验证我的数据是否已加密(除了在 aws 控制台上查看我的卷已加密)以及如何控制谁可以看到未加密形式的数据?
【问题讨论】:
-
所以您的 MongoDB 服务器可以访问 KMS 密钥和加密的 EBS 卷,对吗?并且您希望您的 Java 应用程序被神奇地阻止查询 MongoDB,因为它无法访问 MongoDB 服务器在后台使用来访问 EBS 卷的 KMS 密钥?
-
是的,这或多或少是我所期待的。我的理解可能完全错误,请尽可能纠正我。我想要实现的是加密我在 ebs 卷上的静态数据,并控制谁可以访问未加密的数据。如果您知道在 aws 上实现此目的的任何方法,请提出建议。
-
EBS 加密只处理静态加密。一旦您的 MongoDB 服务器可以访问数据(由于在可以访问数据的 EC2 服务器上运行),数据就会加载到数据库中,因此它不再“处于静止状态”。任何访问 MongoDB 服务器并查询数据的东西都将完全不受 EBS 加密的限制。 MongoDB 并不神奇地知道它正在从加密的 EBS 卷中读取数据并要求客户端发送 KMS 密钥以进行查询。
-
感谢您的澄清。我认为数据库最终仅将其数据存储在某个磁盘上,因此加密磁盘就足够了。读了一点后,我知道这是使用中的数据,而不是静止的数据(您可以再次纠正我)。
标签: mongodb amazon-web-services encryption amazon-ec2