Tableau Server のプロキシとロード バランサーの設定
多くの企業において、Tableau Server はインターネットと通信する必要があります。Tableau Server は保護された内部ネットワーク内で動作するように設計されました。Tableau Server をインターネット上や DMZ で直接設定しないでください。お使いのネットワークとインターネットとの間の通信は、プロキシ サーバーを使用して仲介するようお勧めします。フォワード プロキシ サーバーは、ネットワーク内部からインターネット上のターゲットへのトラフィックを仲介します。リバース プロキシ サーバーとロード バランサーは、インターネットからネットワーク内のターゲットへのトラフィックを仲介します。
誰がこの記事を読むべきか
この記事は、ネットワーク、ロード バランサー、ゲートウェイ プロキシの一般的なソリューションの経験がある IT プロフェッショナル向けです。この記事では、Tableau でいつ、どのようにインターネット アクセスが必要になるかを説明し、インターネットとのアクセスにプロキシ サーバーとロード バランサーを使用できるように、ご利用のネットワークと Tableau を設定する方法について説明します。多くのサード パーティ プロキシ ソリューションを使用できるので、この記事のいくらかのコンテンツは必然と一般的なものになります。
プロキシ サーバーを構成する前に、インターネットとの通信を参照してください。
フォワード プロキシ サーバーの構成
Tableau Server からインターネットへの通信を有効にするには、フォワード プロキシ サーバーの背後で Tableau Server を展開します。Tableau Server がインターネットへのアクセスを必要とする場合、要求を直接インターネットに送ることはしません。代わりに、フォワード プロキシに要求を送ることで、要求が転送されます。フォワード プロキシは、管理者がインターネットへのトラフィックで、ロード バランシング、サイトへのアクセスのブロックなどのタスクを管理するのをサポートします。
フォワード プロキシを使用する場合、トラフィックをフォワード プロキシに送るために、ネットワーク内で Tableau Server を実行するコンピューターを構成する必要があります。Tableau Server では、パススルー認証または手動プロキシ認証はサポートされていません。
フォワード プロキシ ソリューションで OpenID 認証を実行している場合は、追加の構成が必要です。「OpenID Connect に対応するように Tableau Server を構成する」を参照してください。
フォワード プロキシを使用するための Tableau Server on Linux の構成
インストール プロセスの一部としてフォワード プロキシ ソリューションを使用するように Tableau Server を構成することをお勧めします。具体的には、Tableau Server の構成は、TSM のインストールと初期化の説明で説明した通り ./initialize-tsm
を実行する場合に、またはTableau Server の自動インストールの一環として行ってください。
以下の手順では、Linux 上の Tableau Server 用のフロントエンドプロキシ構成ファイルを作成する方法について説明します。
この構成ファイルは、次のディレクトリに保存されています。
~<unprivileged_user>/.config/systemd/tableau_server.conf.d
既定では、Tableau Server によって、権限なしユーザー、tableau
が作成されます。したがって、構成ディレクトリへのデフォルトのパスは次のとおりです。
~tableau/.config/systemd/tableau_server.conf.d
このトピックおよび以下の構成ファイルのプロキシ構成ファイルは、 20-proxy.conf
と呼ばれます。このファイルには独自の規則に従って名前を付けることができますが、.conf 拡張子を使用する必要があります。ファイル名に応じて、 tableau_server.conf.d
ディレクトリに格納されているファイルを語彙的オーダーで処理します。
tsm stop
コマンドを実行します。権限なしのユーザーとしてセッションを開始します。既定では、インストール時に Tableau Server は
tableau
という権限なしユーザーを作成します。次のコマンドを実行します。sudo su -l tableau
tableau_server.conf.d
ディレクトリに20-proxy.conf
ファイルを作成するか、開きます。セットアップ中にプロキシを構成した場合、20-proxy.conf
ファイルは既に作成されています。ファイルの作成。次のコマンドを実行します。
touch ~tableau/.config/systemd/tableau_server.conf.d/20-proxy.conf
テキスト エディターで
20-proxy.conf
ファイルを開きます。
プロキシ構成ファイルの内容 をファイルにコピーします。既存のファイルを編集している場合は、構成を削除しないように注意してください。プロキシ構成ファイルの内容 には、フォワードプロキシ構成の設定方法に関する説明が含まれています。ファイルを編集して保存したら、ステップ 5 に進みます。
Tableau シェルを終了します。次のコマンドを実行します。
exit
TSM ビジネス サービスを再起動します。次のスクリプト コマンドを実行します。
sudo /opt/tableau/tableau_server/packages/scripts.<version>/stop-administrative-services
sudo /opt/tableau/tableau_server/packages/scripts.<version>/start-administrative-services
TSM を再起動します。
tsm restart
# Always edit this file on Tableau Server as the unprivileged user. By default, tableau, is the unprivileged user created by Tableau Server during installation.
# Set environment variables http_proxy and https_proxy to point to your proxy host.
# For example, to set the proxy to example-host for ports 80 and 443, run the following commands:
#
http_proxy=http://example-host:80/
https_proxy=http://example-host:443/
#
# Take care to use 'http' when you specify the URL for the https_proxy environmental variable.
# Do not specify the 'https' protocol for the value of the https_proxy environmental variable.
#
# To bypass the proxy server, specify exceptions in the no_proxy variable. Use this variable if your proxy server does not route internal addresses.
# You must also add exceptions to this proxy configuration to guarantee that all communications within a local Tableau Server cluster (if you have one now or will have one later) do not route to the proxy server.
# Enter both the host name and the IP address for each computer. Additionally, include the cannonical host name (localhost) and IP address (127.0.0.1) for the local computer.
# For example, to specify exceptions for a three-node cluster:
#
no_proxy="localhost,127.0.0.1,hostname1,hostname2,hostname3,IP1,IP2,IP3"
#
# Where "hostname1" is the actual hostname of node 1, and "IP1" is the actual IP address of node 1, etc.
サーバー クラッシュ レポーター
組織でプロキシ サーバーを使用してインターネットに接続する場合は、Tableau Server のクラッシュ レポーターでプロキシを使用するように構成する必要があります。Tableau Server でプロキシを使用するように既に構成している場合でも、別途、サーバー クラッシュ レポーターも構成する必要があります。サーバー クラッシュ レポーターでプロキシを構成するには、サーバー クラッシュ レポーターの構成を参照してください。
リバース プロキシとロード バランサーが Tableau Server と連携するしくみ
リバース プロキシとロード バランサーは、外部 (インターネット) のクライアントから要求を受信し、Tableau Server に転送するサーバーです。これらのソリューションは、特定の Tableau Server の個別 IP アドレスをインターネットに公開しなくても、Tableau Server をインターネットで使用可能にします。また、社外のユーザーがアクセスできる場所にデータを格納しないよう、認証デバイスおよびパススルー デバイスとして動作させます。PCI や、HIPAA、SOX などのさまざまなプライバシー規制の対象となる組織にとって、この要件が重要となる場合があります。
次の図は、リバース プロキシやロード バランサー (LB) を使用するように設定されている Tableau Server に対し、クライアントが要求を行った場合の通信パスを示しています。
外部クライアントは、Tableau Server への接続を開始します。クライアントは、リバース プロキシ サーバーや LB 用に設定されているパブリック URL (
https://tableau.example.com
など) を使用します (クライアントはリバース プロキシや LB にアクセスしていることを認識しません)。代わりに要求されるリバース プロキシ マップは、Tableau Server へのリクエストを渡します。シナリオによっては、Tableau Server に要求を渡す前提条件として、クライアントを (SSL/TLS を使用して) 認証するようリバース プロキシを構成することもできます。
Tableau Server は要求を取得し、リバース プロキシや LB に応答を送信します。
リバース プロキシや LB はコンテンツをクライアントに送り返します。クライアントに関しては、Tableau Server とやり取りを行ったにすぎないため、通信が中間サーバーによってパススルーされたことを知り得ません。
TLS/SSL
ゲートウェイのシナリオによっては、自社ネットワークの外部からのトラフィックに対して TLS/SSL を使用するようリバース プロキシとロード バランサーを設定する必要があります。これにより、プライバシー、コンテンツの整合性、および認証を確保するのに役立ちます。また、その他のセキュリティ対策を展開してインターネット ゲートウェイと Tableau Server の間のトラフィックを保護している場合を除き、ゲートウェイ プロキシと Tableau Server の間に SSL を構成することをお勧めします。内部証明書または自己署名した証明書を使い、Tableau Server と他の内部コンピューターとの間のトラフィックを暗号化することができます。
モバイル アクセス
Tableau Server は Tableau Mobile セッションのすべての HTTP 応答に X ヘッダーを追加します。既定では、大半のプロキシ ソリューションが X ヘッダーを維持します。ゲートウェイ ソリューションが X ヘッダーを維持しない場合は、モバイル クライアント セッションのすべての HTTP 応答でヘッダー X-Tableau: Tableau Server
を維持するようにプロキシ サーバーとロード バランサーを設定する必要があります。
ゲートウェイで認証を設定している場合は、プロキシ サーバーや LB は Tableau Mobile の HTTP 要求に HTTP 302 で応答する必要があります。302 には、アイデンティティ プロバイダーのログイン ページへのリダイレクトが含まれている必要があります。302 の認証シーケンスが示されている図を確認するには、Tableau コミュニティの「Tableau Mobile Authentication Sequence」(英語)(新しいウィンドウでリンクが開く) を参照してください。
リバース プロキシ、ロード バランサー、ユーザー認証
Tableau Server は必ずユーザーを認証します。これは、組織用ゲートウェイでのインバウンド接続を認証する場合でも、Tableau Server がユーザーを認証することを示します。
ただし、すべてのクライアントがゲートウェイ ソリューションによるユーザー認証をサポートしているとは限りません。
サポートしている Web ブラウザーでは、リバース プロキシや LB で SAML、OpenID Connect、Kerberos、Trusted Tickets、または手動の認証を使用できます。
Tableau Mobile は、リバース プロキシや LB で SAML または手動の認証をサポートしています。iOS バージョン の Tableau Mobile では、リバース プロキシや LB を使用した Kerberos もサポートしています。上記と同様の推奨事項が適用されます。
Tableau Prep では、リバース プロキシやロード バランサーを使用した認証はサポートしていません。リモート アクセスの場合は、VPN ソリューションを使用するか、Tableau Prep から Tableau Server に直接トラフィックをルーティングするようにゲートウェイ サービスを設定して認証を行います。
Tableau Desktop では、トラフィックが最終認証のために Tableau Server にルーティングされる前に、認証モジュールがリバース プロキシで事前認証を実行している場合、リバース プロキシを使用した認証がサポートされます。詳細については、「企業環境への Tableau Server 導入ガイド」の「パート 5 - Web 層の構成(新しいウィンドウでリンクが開く)」および「Independent Gateway を使用した認証モジュールの構成」を参照してください。
組織が Active Directory で認証している場合:
- Tableau Server を Kerberos 用に構成する前に、Tableau Server をリバース プロキシ用に構成する必要があります。詳細については、Kerberos の構成を参照してください。
リバース プロキシ サーバーやロード バランサーと連携させるための Tableau Server の設定
Tableau Server を構成する前に、プロキシ サーバー構成に関する次の情報を収集する必要があります。Tableau Server を構成するには、tsm configuration set
コマンドを使用します。収集する必要のある情報は、tsm
実行の際に必要となるオプションに対応します。
以下の tsm オプションの大半も、ロード バランサーの背後で動作する Tableau Server 展開を設定するために使用できます。詳細については、ロード バランサーの追加を参照してください。
項目 | 説明 | 対応する tsm configuration set オプション |
---|---|---|
IP アドレスまたはCNAME | このオプションでは、IP アドレスまたは CNAME のいずれかを入力できます。 プロキシ サーバーとロード バランサーのパブリック IP アドレス。IP アドレスは、 静的 IP を提供できない場合や、クラウド プロキシまたは外部ロード バランサーを使用している場合は、クライアントが Tableau Server への接続に使用する CNAME (Canonical Name = 正規名) DNS 値を指定できます。この CNAME 値は、リバース プロキシ ソリューションで Tableau Server と通信するように設定する必要があります。 | gateway.trusted |
FQDN | Tableau Server へのアクセスに使用される完全修飾ドメイン名 (tableau.example.com など)。Tableau Server は、このオプションのコンテキストの切り替えをサポートしていません。たとえば、以下の URL はサポートされていません。example.com/tableau 。 | gateway.public.host |
非完全修飾ドメイン名 | プロキシサーバーや LB のサブドメイン名。tableau.example.com の例では、サブドメイン名は tableau です。 | gateway.trusted_hosts |
別名 | プロキシ サーバーや LB の任意のパブリック代替名。たいていの場合、別名は CNAME 値を使って定義されます。例として、プロキシ サーバー bigbox.example.com および ftp.example.com や www.example.com の CNAME エントリがあります。 | gateway.trusted_hosts |
ポート | クライアントからリバース プロキシ サーバーへのトラフィックのポート番号。 |
|
Tableau Server の分散インストールを使用している場合は、クラスタ内の初期ノードで次の tsm
コマンドを実行します。
次のコマンドを入力して、クライアントがプロキシ サーバーや LB を通じて Tableau Server にアクセスするために使用する FQDN を設定します。ここで、
name
は FQDN です。tsm configuration set -k gateway.public.host -v 'name'
たとえば、ブラウザーに
https://tableau.example.com
と入力して Tableau Server に到達した場合、次のコマンドを入力します。tsm configuration set -k gateway.public.host -v 'tableau.example.com'
次のコマンドを入力して、プロキシ サーバーや LB のアドレスまたは CNAME を設定します。ここで、
server_address
は IPv4 アドレスまたは CNAME 値です。tsm configuration set -k gateway.trusted -v 'server_ip_address'
組織が複数のプロキシ サーバーや LB を使用している場合は、複数の IPv4 アドレスをコンマで区切りながら入力します。IP 範囲はサポートされていません。Tableau Server のスタート アップと初期化を改善するために、
gateway.trusted
のエントリー数を最小限に抑えます。次のコマンドを入力し、完全修飾ドメイン名や非完全修飾ドメイン名、別名など、プロキシ サーバーや LB の代替名を指定します。名前が複数ある場合は、名前をコンマで区切ります。
tsm configuration set -k gateway.trusted_hosts -v 'name1, name2, name3'
例:
tsm configuration set -k gateway.trusted_hosts -v 'proxy1.example.com, proxy1, ftp.example.com, www.example.com'
プロキシ サーバーがインターネットとの通信に SSL を使用している場合、次のコマンドを実行します。これは、リバース プロキシ サーバーがポート 80 の代わりにポート 443 を使っていることを Tableau に伝えます。
tsm configuration set -k gateway.public.port -v 443
注: プロキシ サーバーが Tableau Server との通信に SSL を使用している場合、Tableau Server で SSL を設定して有効化する必要があります。
次のコマンドを入力し、構成の変更をコミットします。
tsm pending-changes apply
保留中の変更にサーバーの再起動が必要な場合は、
pending-changes apply
コマンドの実行時に、再起動が行われることを知らせるメッセージが表示されます。このメッセージはサーバーが停止していても表示されますが、その場合には再起動は行われません。--ignore-prompt
オプションを使用してメッセージが表示されないようにできますが、そのようにしても再起動に関する動作が変わることはありません。変更に再起動が必要ない場合は、メッセージなしで変更が適用されます。詳細については、tsm pending-changes applyを参照してください。
Tableau Server と連携させるためのリバース プロキシ サーバーやロード バランサーの設定
クライアントがリバース プロキシやロード バランサーを通して Tableau Server にアクセスする場合、特定のメッセージ ヘッダーを保持 (または追加) する必要があります。具体的には、メッセージ チェーン内のすべてのサーバーを gateway.trusted
および gateway.trusted_hosts
の設定で示す必要があります。
次の図はシングル ホップのメッセージ チェーン用のヘッダー例を表しています。ここでは、プロキシ サーバーが直接 Tableau Server と通信しています。
次の図はマルチ ホップのメッセージ チェーン用のヘッダー例を示しています。ここでは、メッセージが Tableau Server に接続する前に 2 つのプロキシ サーバーを横断しています。
次の表は、これらのヘッダーについて、また Tableau Server 設定の構成にどう関連しているかについて説明します。
ヘッダー | 説明 | 関連した Tableau Server 設定 |
REMOTE_ADDR とX-FORWARDED-FOR (XFF ) | Tableau Server は、要求元の IP アドレスを特定するために、これらのヘッダーを必要としています。X-FORWARDED-FOR ヘッダーでは、IP アドレスのチェーンを接続が起きた順に Tableau Server に示す必要があります。 | gateway.trusted に設定した IP アドレスは REMOTE_ADDR で表される IP と一致しなくてはなりません。gateway.trusted に複数のアドレスを送信した場合、そのうち 1 つが REMOTE_ADDR で表される IP に一致しなくてはなりません。 |
HOST とX-FORWARDED HOST (XFH ) | これらのヘッダーは、Tableau Server がクライアントに返信する際、Tableau Server への絶対リンクを生成するために使用されます。X-FORWARDED-HOST ヘッダーでは、ホスト名を接続が起きた順に Tableau Server に示す必要があります。 | X-FORWARDED-HOST ヘッダーに表示されるホスト名は gateway.trusted_hosts で指定されるホスト名に含まれている必要があります。 |
X-FORWARDED-PROTO (XFP ) | クライアントからプロキシへのトラフィックで SSL が有効化され、プロキシから Tableau Server へのトラフィックでは有効化されていない場合、このヘッダーが必要です。 メッセージ ルートの各ホップで HTTP や HTTPS が保持されないシナリオでは、 関連する KB 記事: 「"Unable to Sign In" and "Invalid username or password" Error With SAML After Upgrading」(新しいウィンドウでリンクが開く)。 | リバース プロキシのポート構成 (クライアントからのインバウンド接続と Tableau Server へのアウトバウンド接続) は、対応するパラメーター: プロキシ サーバーが Tableau Server との通信に SSL を使用している場合、Tableau Server で SSL を設定して有効化する必要があります。 |
リバース プロキシとロード バランサーの設定を検証する
ゲートウェイから Tableau Server への設定を検証するには、Tableau Server の Web 作成または Tableau Desktop を使用して、ワークブックとデータソースをパブリッシュします。Web ブラウザーを使用してインターネットから Tableau Server に接続している場合、推奨ブラウザー(新しいウィンドウでリンクが開く)を使用していることを確認してください。既存のデータソースおよびパブリッシュしたデータソースを使用するワークブックをパブリッシュして表示します。以下のリンクを参照して、エンドユーザーによる Tableau Server の接続について理解してください。
タスク | ドキュメント |
---|---|
Web 作成の概要。 | Web での Tableau の使用(新しいウィンドウでリンクが開く) |
Tableau Desktop または Web ブラウザーから Tableau Server にログインする。 | Tableau Server または Online へのサインイン(新しいウィンドウでリンクが開く) |
ワークブックを Tableau Server にパブリッシュする。 | ワークブックのパブリッシュ(新しいウィンドウでリンクが開く) |
データ ソースをパブリッシュする。 | データ ソースのパブリッシュ(新しいウィンドウでリンクが開く) |
Tableau Server からワークブックを開く。 | サーバーからワークブックを開く(新しいウィンドウでリンクが開く) |
サーバーからログアウトする (Desktop で)。 | Tableau Server または Online へのサインイン(新しいウィンドウでリンクが開く) |
Web ブラウザーからワークブックをダウンロードする。 | ワークブックのダウンロード(新しいウィンドウでリンクが開く) |
tabcmd (非サーバー クライアントから) が正常に動作しているかを確認する。 | tabcmd |