Fu8*_*u86 6 authentication graphite
我想我在这里误解了一些东西。我已经使用 Docker (sitespeedio/graphite) 安装了 Graphite,并为 Web 面板设置了基本身份验证。我打开了端口 2003 的防火墙以从其他服务器获取数据点,并且运行良好。
但是没有身份验证/授权。甚至我用来发送一些测试的 python lib 也不允许设置密码、令牌或其他身份验证机制。
如何保护我的 Graphite 安装?
我认为可能存在误解(很可能就我而言):您似乎在谈论两个不同的组件。
第一个是 Graphite(https://graphite.readthedocs.io/en/latest/install.html):
Graphite 使用 Cairo 图形库渲染图形
换句话说,虽然我们通常将整个设置称为石墨,但石墨实际上是数据库碳存储数据的前端(Whisper 或 Ceres)。
正如您所说,Basic-Auth 适用于 Graphite 提供的 Web 界面,尤其是渲染 API(更一般地说,是 Graphite 进程/守护进程通过 HTTP 提供的服务)。
为了将其落实到位(通常 - 我不知道您的具体情况的详细信息),您可以检查这个问题:Graphiti / Graphite using Apache with Proxy and BasicAuth requests auth for every URL / request - 他们有相反的问题,其中他们必须不断地进行身份验证(并回答可能的原因)。
他们提供了完整的配置,但一般来说,以下块才是重要的:
<Location "/">
require valid-user
order allow,deny
Allow from all
AuthType Basic
AuthName "Stats"
AuthBasicProvider file
AuthUserFile /etc/passwd_lp
</Location>
Run Code Online (Sandbox Code Playgroud)
但是,您还提到了端口 2003,该端口与任何 Web API 或页面都不相关。
端口 2003 被 Carbon-cache(或 Carbon-relay)用来接收指标数据。
根据https://graphite.readthedocs.io/en/latest/carbon-daemons.html:
Carbon-cache.py 通过各种协议接受指标并尽可能高效地将它们写入磁盘
它不使用 HTTP,这就是 Basic-Auth 不起作用的原因。
我不确定确保碳安全的最佳实践或惯例是什么,但我一直认为这首先是限制对服务(即端口)的访问的问题。
您可以在指标源和碳缓存之间添加一个使用 HTTP 的层,以便为其提供基本身份验证。
您还可以添加诸如 HAProxy 之类的东西来执行 SSL 终止和客户端验证,但我不确定让指标源首先使用 SSL/TLS 有多容易。
归档时间: |
|
查看次数: |
3728 次 |
最近记录: |