【问题标题】:Best way to secure 3rd party api key in MongoDB在 MongoDB 中保护 3rd 方 api 密钥的最佳方法
【发布时间】:2020-04-26 09:51:33
【问题描述】:

我的应用程序中有一个特定用例,用于存储用户第 3 方 API 密钥以从这些第 3 方检索数据。它是一个 Web 应用程序,我使用 express 和 MongoDB 作为数据库。

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

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

【问题讨论】:

    标签: database mongodb security web-development-server database-security


    【解决方案1】:

    如果您将密钥存储在 MongoDB 中,这可能是 MongoDB 4.2 中引入的 Client-Side Field Level Encryption 的一个很好的用例。

    从页面:

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

    有关示例用例,请参阅 Client-Side Field Level Encryption Guide

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

    【讨论】:

    • 感谢您的回复!如果使用上述 AWS 密钥管理系统,这是否会阻止开发人员查看我们用户的 API 密钥?
    • 我假设任何有权访问密钥 (KMS) 的人都能够解密它们。如果您的数据库遭到破坏,则数据将无法读取。如果恶意开发者复制了数据库,它也将无法读取,因为他们无法访问密钥。
    • 感谢您的澄清!我想现在用户要相信公司和首席开发人员不会进去读取数据。
    • 我不确定我是否遵循。您不是自己开发应用吗?
    • 是的,我只是评论说,由于首席开发人员(我)可以访问数据库中的实际值,因此用户必须相信数据是安全的,而我没有访问它用于非编程目的。
    猜你喜欢
    • 2020-11-25
    • 1970-01-01
    • 2021-12-17
    • 2021-10-29
    • 2013-09-26
    • 1970-01-01
    • 2011-05-01
    • 2014-09-12
    • 1970-01-01
    相关资源
    最近更新 更多