我会定期对通过strongbox gem使用公钥加密加密的数据运行长解密过程。该过程解密一些消息,并将不再保密的安全数据发送给请求方。
解密过程现在需要花费足够长的时间才能真正异步执行。我希望通过将作业传递给resque scheduler来处理它。
解密密码来自网络请求 - 如何安全地将密码传递给resque? (resque和web请求位于不同的AWS实例上)。我不希望有权访问resque日志的人有权访问密码。
答案 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))
这可以解决任何有权访问Resque
或Rails
记录器的人知道密码的问题
尽管这可能会过滤日志中的参数,但Resque / redis确实包含敏感数据
我相信你最大限度地防止一些人在redis中嗅探密码
使用密码连接redis
。
他们可以这样设置密码redis.conf
在redis.conf里面寻找这一行(取消注释并设置密码)
#requirepass [set your redis password)
然后使用此Resque
连接到password
这将确保只允许知道redis密码的客户端建立连接
很明显,如果您使用的是resque-web
,那么UI上的数据仍然可用
您可以做的最好的事情是使用一些授权机制,如Basic Auth或任何适合您需要的机制
并且仅允许根据您的需要成功进行身份验证的那些
这就是我所关注的方法,截至目前我还没有其他方法:)
希望这个帮助