Tableau Server の Web サーバー設定をカスタマイズする

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

本日は、Tableau Server の Web サーバー設定をカスタマイズする方法についてご紹介します。

Tableau Server 8.3 の Web サーバーは、Apache HTTP Server 2.4.x が動作しており、以下のような理由でカスタマイズが求められるケースがあります。

  • ロードバランサー(ELB) + Tableau Serverという構成でアクセス元のIPアドレスをアクセスログに反映させたい
  • 特定の仮想パスへのアクセスを制限したい
  • 利用したいapacheモジュールを有効に設定したい

はじめに

例えば、Tableau Serverのビューを自社が運営するWebページに埋め込んだ場合(参考1)、ログイン画面は不要になるので、一般にTableau Serverの管理者以外に見せたくありません。今回はTableau Serverの管理者のIPアドレス以外には管理画面を見せないように設定する方法を例に、Tableau Server の Web サーバー設定をカスタマイズする方法を解説します。

この記事では、httpd.conf.templのファイルに変更を加える方法をご紹介しますが、この設定はデータバックアップ中に保存されません。変更する前はこのファイルをバックアップしてください。

テンプレートファイルと設定ファイルの関係

Tableau Server の Web サーバーの設定ファイルは、httpd.conf.templ というテンプレートファイルをベースに、本来の設定ファイルである httpd.conf が生成されます。サービス起動時には生成された設定ファイルを読み込むことで変更が反映されます。

設定の手順

設定の手順は以下のとおりです。
1.Tableau Server の停止
2.設定テンプレートファイル(httpd.conf.templ)の変更
3.設定ファイル(httpd.conf)の生成
4.Tableau Server の起動

手順1 Tableau Server の停止

PS C:\Users\Administrator> cd "C:\Program Files\Tableau\Tableau Server\8.3\bin"
PS C:\Program Files\Tableau\Tableau Server\8.3\bin> ./tabadmin stop
===== Stopping service...
   -- Service stopped successfully

手順2 設定テンプレートファイル(httpd.conf.templ)の変更

デフォルトインストールの場合は、以下のパスに設定テンプレートファイルが保存されています。
C:\Program Files\Tableau\Tableau Server\8.3\templates\httpd.conf.templ

ロードバランサー(ELB) + Tableau Serverという構成でアクセス元のIPアドレスを判定できるようにmod_remoteipというモジュールを有効にします。
変更前はコメントになっているので先頭の#をとってください。

 LoadModule remoteip_module modules/mod_remoteip.so 

次にTableau Serverの管理者のIPアドレス以外には管理画面を見せないように設定します。RemoteIPHeaderディレクティブは、X-Forwarded-Forヘッダの内容を確認して、その値を送信元IPアドレスとしてApacheに認識させます。(参考2)
以下の設定では、/auth仮想パスに対して、内部からの接続(127.0.0.1)、同じVPCからの接続(10.0.0.0/8)、管理者のIPアドレス(54.xx.xx.xx)以外の接続を許可しない設定を追加しています。

RemoteIPHeader X-Forwarded-For
<Location /auth>
  <RequireAny>
    Require ip 127.0.0.1
    Require ip 10.0.0.0/8
    Require ip 54.xx.xx.xx
  </RequireAny>
</Location>

手順3 設定の反映

PS C:\Program Files\Tableau\Tableau Server\8.3\bin> ./tabadmin config
===== Wrote configuration files to C:/ProgramData/Tableau/Tableau Server/data/tabsvc/config

デフォルトインストールの場合は、以下のパスに生成されたhttpd.confファイルが保存されているようです。
C:\ProgramData\Tableau\Tableau Server\data\tabsvc\config\httpd.conf

追加した設定が反映されているか、設定ファイルに誤りがないかなど確認するとよいでしょう。

手順4 Tableau Server の起動

PS C:\Program Files\Tableau\Tableau Server\8.3\bin> ./tabadmin start
===== Starting service...
   -- Service was started successfully

メッセージに"Service was started successfully"と表示されても、設定に誤りがある場合、サービスの起動に失敗している場合があります。サービスの起動後には、サービスの状態を確認することをおすすめします。また、サービスの起動に失敗した場合はerror.logを確認してください。

PS C:\Program Files\Tableau\Tableau Server\8.3\bin> ./tabadmin status
Status: RUNNING

サービスが起動した場合、正しくソースIPアドレスが認識されているかaccess.yyyy_mm_dd_00_00_00.logを見ることで確認できます。

なお、デフォルトインストールの場合は、以下のパスのディレクトリにログファイルが保存されています。
C:\ProgramData\Tableau\Tableau Server\data\tabsvc\logs\httpd

動作の確認

管理者PCからアクセスするとログイン画面が表示されますが、それ以外のPCからアクセスすると拒否されます。

tableau-server-url-forbidden

最後に

ロードバランサー(ELB) + Tableau Serverという構成でアクセス元のIPアドレスをアクセスログに反映させたいというご要望はよくありますが、今回はアクセス制御についても解説しました。カスタマイズの余地がまだまだありそうです。

この記事では、httpd.conf.templのファイルに変更を加える方法をご紹介しますが、httpd.conf.templのファイルへの変更は、アップグレードが保証されることはなく、また、データバックアップ中に保存されません。また、テンプレートファイルには、Tableau Serverが生成する条件や変数が埋め込まれていますので、修正する際はご注意してください。

参考

参考1:Tableau ServerのビューをWebページに埋め込む『信頼できる認証』

参考2:ELB配下のApacheでのアクセス制御

その他:Configuring SSLv3 for Tableau Server