web-dev-qa-db-ja.com

安全なグラファイトのインストール

ここで何か誤解していると思います。 Docker(sitespeedio/graphite)でGraphiteをインストールし、Webパネルに基本認証を設定しました。 Firwall for Port 2003を開いて他のサーバーからデータポイントを取得しましたが、問題なく動作しました。

しかし、認証/承認はありません。テストの送信に使用したpython libでも、パスワード、トークン、またはその他の認証メカニズムを設定することはできません。

Graphiteのインストールを保護するにはどうすればよいですか?

6
Fu86

私は誤解があるかもしれないと思います(おそらく私の側で):2つの異なるコンポーネントについて話しているようです。

最初はGraphiteです( https://graphite.readthedocs.io/en/latest/install.html ):

グラファイトは、Cairoグラフィックライブラリを使用してグラフをレンダリングします

言い換えると、通常はセットアップ全体をグラファイトと呼びますが、グラファイトは実際には、カーボンカーボンストアデータ(ウィスパーまたはセレス)のデータベースのフロントエンドです。

あなたが言うように、Basic-Authは、グラファイトが提供するWebインターフェース、特にレンダリングAPI(およびより一般的には、グラファイトプロセス/デーモンがHTTPを介して提供するサービス)用です。

それを配置するには(通常-特定の状況の詳細はわかりません)、次の質問を確認できます: Graphiti/Graphite with 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>

ただし、ポート2003についても言及していますが、これはどのWeb APIまたはページにも関連していません。

ポート2003は、代わりに、メトリックデータを受信するためにカーボンキャッシュ(またはカーボンリレー)によって使用されます。

あたり https://graphite.readthedocs.io/en/latest/carbon-daemons.html

carbon-cache.pyは、さまざまなプロトコルのメトリックを受け入れ、それらを可能な限り効率的にディスクに書き込みます

HTTPを使用しないため、Basic-Authは機能しません。

カーボンを確保するためのベストプラクティスや慣習はわかりませんが、そもそもサービス(ポートなど)へのアクセスを制限することが問題だといつも思っていました。

基本認証を適切に配置するために、メトリックソースとカーボンキャッシュの間にHTTPをスポークするレイヤーを追加できます。

HAProxyのようなものを追加してSSL終了とクライアント検証を行うこともできますが、最初にメトリックソースでSSL/TLSを使用するのがどれほど簡単かはわかりません。

3