【问题标题】:Encrypt/Decrypt files using Carrierwave and storing in S3 (Rails)使用 Carrierwave 加密/解密文件并存储在 S3 (Rails) 中
【发布时间】:2011-09-01 01:05:55
【问题描述】:

我需要能够在将文件存储到 S3 之前对其进行加密,然后在访问它们时对其进行解密。文件将是图像、文档、PDF 等。

我正在使用 Carrierwave 处理文件上传和存储(这是使用 Ruby on Rails)。我将它们存储在 Amazon S3 中。

有没有人这样做过,或者对如何实现这一点有任何想法?

谢谢。

【问题讨论】:

    标签: ruby-on-rails encryption amazon-s3 carrierwave


    【解决方案1】:

    Amazon 现已发布可让您在 S3 中自动加密/解密文件的功能。不再需要自己做这件事。详情在这里http://docs.amazonwebservices.com/AmazonS3/latest/dev/index.html?UsingEncryption.html

    【讨论】:

    • Amazon SSE 并不是大多数人在加密中所寻求的。当您的服务器被黑客入侵时,您希望保护客户文件。当有人获得您的 S3 凭证的访问权限时,Amazon SSE 将无济于事。
    • 我认为这是我在回答自己的问题时第一次被否决。这确实解决了我的问题。
    • 我假设您使用了“Amazon 服务器端加密”,因为如果您要使用 Amazon 客户端加密,那么弄乱密钥的“需要”不会神奇地消失。我相信加密上传文件的目的是最大程度地减少黑客入侵您服务器的人可以访问的数据量。 Amazon SSE 在这里并没有真正的帮助。
    【解决方案2】:

    要处理加密,您应该考虑实现一个处理器。如果您使用任何其他处理器,则可能需要考虑扩展 Carrierwave gem 并添加处理器排序机制,以便确保最后发生加密。

    对于解密,您可以覆盖现有的访问器以使解密透明,或者添加一个返回解密文件的新方法并使用该方法代替访问器。后一种方法可能更能适应上游变化。

    【讨论】:

    • 我不希望使用任何其他处理器,知道我可以使用什么处理器进行加密吗?
    【解决方案3】:

    我知道这篇文章已经发布了几个月,但如果您仍在寻找答案,请查看我编写的carrierwave_securefile gem。它仍然是新的,在其他设置上可能有点错误,但它在上传之前使用 Crypt19 对文件进行 Blowfish 加密。

    http://github.com/dougc84/carrierwave_securefile

    【讨论】:

    • 谢谢,我会检查一下,但是由于亚马逊发布了他们自己的 S3 加密,我认为我不再需要处理它了。
    猜你喜欢
    • 1970-01-01
    • 2014-11-07
    • 2017-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-02
    • 2019-06-19
    相关资源
    最近更新 更多