Database 在MongoDB中保护第三方api密钥的最佳方法

Database 在MongoDB中保护第三方api密钥的最佳方法,database,mongodb,security,web-development-server,database-security,Database,Mongodb,Security,Web Development Server,Database Security,在我的应用程序中,我有一个特定的用例来存储用户第三方API密钥,以便从这些第三方检索数据。这是一个web应用程序,我正在使用express和MongoDB作为数据库 是否有一种特定的方法可以最好地保护它(我需要在存储实际密钥后多次访问它)。或者我根本不应该储存这些 如果没有,您有什么解决方案来解决这个问题?如果您将密钥存储在MongoDB中,这可能是MongoDB 4.2中引入的一个很好的用例 从页面: 应用程序可以在通过网络将数据传输到服务器之前对文档中的字段进行加密。只有具有正确加密密钥访问

在我的应用程序中,我有一个特定的用例来存储用户第三方API密钥,以便从这些第三方检索数据。这是一个web应用程序,我正在使用express和MongoDB作为数据库

是否有一种特定的方法可以最好地保护它(我需要在存储实际密钥后多次访问它)。或者我根本不应该储存这些


如果没有,您有什么解决方案来解决这个问题?

如果您将密钥存储在MongoDB中,这可能是MongoDB 4.2中引入的一个很好的用例

从页面:

应用程序可以在通过网络将数据传输到服务器之前对文档中的字段进行加密。只有具有正确加密密钥访问权限的应用程序才能解密和读取受保护的数据。删除加密密钥会使使用该密钥加密的所有数据永久不可读

参见示例用例


请注意,一些更好的字段级加密功能,例如字段的自动加密,以便驱动程序可以透明地使用加密字段,是MongoDB Enterprise Edition功能,而不是Community Edition功能。但是,使用企业版作为标准。

如果您在MongoDB中存储密钥,这可能是MongoDB 4.2中引入的一个很好的用例

从页面:

应用程序可以在通过网络将数据传输到服务器之前对文档中的字段进行加密。只有具有正确加密密钥访问权限的应用程序才能解密和读取受保护的数据。删除加密密钥会使使用该密钥加密的所有数据永久不可读

参见示例用例


请注意,一些更好的字段级加密功能,例如字段的自动加密,以便驱动程序可以透明地使用加密字段,是MongoDB Enterprise Edition功能,而不是Community Edition功能。但是,使用企业版作为标准。

感谢您的回复!如果使用上述AWS密钥管理系统,这是否会阻止开发人员查看用户的API密钥?我假设任何有权访问密钥(KMS)的人都能够解密它们。如果数据库被破坏,数据将无法读取。如果恶意开发人员复制了数据库,数据库也将无法读取,因为他们无法访问该密钥。感谢您的澄清!我想用户现在应该相信公司和首席开发人员不去阅读数据了。我不确定我是否遵守了。你不是自己开发应用程序吗?是的,我是,只是一条评论说,由于首席开发人员(我)可以访问数据库中的实际值,用户必须相信数据是安全的,我访问数据不是出于非编程目的。感谢回复!如果使用上述AWS密钥管理系统,这是否会阻止开发人员查看用户的API密钥?我假设任何有权访问密钥(KMS)的人都能够解密它们。如果数据库被破坏,数据将无法读取。如果恶意开发人员复制了数据库,数据库也将无法读取,因为他们无法访问该密钥。感谢您的澄清!我想用户现在应该相信公司和首席开发人员不去阅读数据了。我不确定我是否遵守了。你不是自己开发应用程序吗?是的,我只是一个评论,说因为首席开发人员(我)可以访问数据库中的实际值,用户必须相信数据是安全的,我访问数据不是出于非编程目的。