在resque过程中Rails strongbox解密

时间:2013-09-07 18:49:51

标签: ruby-on-rails encryption amazon-web-services resque

我会定期对通过strongbox gem使用公钥加密加密的数据运行长解密过程。该过程解密一些消息,并将不再保密的安全数据发送给请求方。

解密过程现在需要花费足够长的时间才能真正异步执行。我希望通过将作业传递给resque scheduler来处理它。

解密密码来自网络请求 - 如何安全地将密码传递给resque? (resque和web请求位于不同的AWS实例上)。我不希望有权访问resque日志的人有权访问密码。

1 个答案:

答案 0 :(得分:0)

过滤参数:

嗯,你绝对可以从日志中过滤你的参数/密码 因此,每当您通过Resque记录器或Rails记录器进行登录时,请尝试过滤掉这些参数

想象一下基本代码片段看起来像这样

def filter
  @filter ||= ActionDispatch::Http::ParameterFilter.new(Rails.application.config.filter_parameters)
end

def filter_parameter(params)
  filter.filter params
end

现在,每当您调用记录器时,只需过滤参数

[Rails | Resque].logger.info (filter_parameter(my_parameter))

这可以解决任何有权访问ResqueRails记录器的人知道密码的问题

安全Redis连接:

尽管这可能会过滤日志中的参数,但Resque / redis确实包含敏感数据

我相信你最大限度地防止一些人在redis中嗅探密码 使用密码连接redis

他们可以这样设置密码redis.conf

在redis.conf里面寻找这一行(取消注释并设置密码)

#requirepass [set your redis password)

然后使用此Resque连接到password这将确保只允许知道redis密码的客户端建立连接

Resque-web:

很明显,如果您使用的是resque-web,那么UI上的数据仍然可用  您可以做的最好的事情是使用一些授权机制,如Basic Auth或任何适合您需要的机制  并且仅允许根据您的需要成功进行身份验证的那些

这就是我所关注的方法,截至目前我还没有其他方法:)

希望这个帮助