ruby-on-rails 如何加密fluentd SQL插件密码?

huwehgph  于 2022-12-20  发布在  Ruby
关注(0)|答案(1)|浏览(112)

由于安全原因,我们不能保持SQL身份验证的纯文本,有没有办法隐藏或加密密码?
我从插件站点得到了糟糕的文档和糟糕的支持。不幸的是,我不能在环境变量中保存这些数据。
GitHub链接:https://github.com/fluent/fluent-plugin-sql

<source>
  @type sql
  @id output_sql
  host "sqlserverhost.aws_region.rds.amazonaws.com"
  database db_name
  adapter sqlserver
  username user
  password pwd   ==============================>>>> This is in plain text
  tag_prefix myrdb # optional, but recommended
  select_interval 60s # optional
  select_limit 500 # optional
  state_file /var/run/fluentd/sql_state
  <table>
    table tbl_name
    update_column insert_timestamp
  </table>
</source>

<match **>
  @type stdout
</match>
7y4bm7vi

7y4bm7vi1#

我建议将SQL插件密码添加到您的config/credentials.yml.enc中,它应该能够作为环境变量访问。
未加密config/credentials.yml.enc

fluentd:
    password: yourpassword

然后当你需要访问密码时

Rails.application.credentials.fluentd[:password]

有关机密加密及其工作流的详细信息,请参阅本指南:https://blog.corsego.com/ruby-on-rails-6-credentials-full

编辑

回答您的这部分问题:
不幸的是,我不能将这些数据保存在环境变量中。
我主张使用环境变量,但也许您可以提供其他见解,说明为什么该解决方案不适合您的用例。
关于另一个堆栈溢出问题,有一个引人注目的对话:
Is it secure to store passwords as environment variables (rather than as plain text) in config files?

相关问题