Tableau Server のプロキシとロード バランサーの設定
多くの企業において、Tableau Server はインターネットと通信する必要があります。Tableau Server は保護された内部ネットワーク内で動作するように設計されました。Tableau Server をインターネット上や DMZ で直接設定しないでください。お使いのネットワークとインターネットとの間の通信は、プロキシ サーバーを使用して仲介するようお勧めします。フォワード プロキシ サーバーは、ネットワーク内部からインターネット上のターゲットへのトラフィックを仲介します。リバース プロキシ サーバーとロード バランサーは、インターネットからネットワーク内のターゲットへのトラフィックを仲介します。
誰がこの記事を読むべきか
この記事は、ネットワーク、ロード バランサー、ゲートウェイ プロキシの一般的なソリューションの経験がある IT プロフェッショナル向けです。この記事では、Tableau でいつ、どのようにインターネット アクセスが必要になるかを説明し、インターネットとのアクセスにプロキシ サーバーとロード バランサーを使用できるように、ご利用のネットワークと Tableau を設定する方法について説明します。多くのサード パーティ プロキシ ソリューションを使用できるので、この記事のいくらかのコンテンツは必然と一般的なものになります。
プロキシ サーバーを構成する前に、インターネットとの通信を参照してください。
フォワード プロキシ サーバーの構成
Tableau Server からインターネットへの通信を有効にするには、フォワード プロキシ サーバーの背後で Tableau Server を展開します。Tableau Server がインターネットへのアクセスを必要とする場合、要求を直接インターネットに送ることはしません。代わりに、フォワード プロキシに要求を送ることで、要求が転送されます。フォワード プロキシは、管理者がインターネットへのトラフィックで、ロード バランシング、サイトへのアクセスのブロックなどのタスクを管理するのをサポートします。
フォワード プロキシを使用する場合、トラフィックをフォワード プロキシに送るために、ネットワーク内で Tableau Server を実行するコンピューターを構成する必要があります。Tableau Server では、パススルー認証または手動プロキシ認証はサポートされていません。
フォワード プロキシ ソリューションで OpenID 認証を実行している場合は、追加の構成が必要です。「フォワード プロキシで動作するように OpenID を構成する」を参照してください。
フォワード プロキシを使用するための Tableau Server on Windows の構成
Tableau Server コンピューターのインターネット オプションを構成する手順は、会社を説明する次のシナリオのいずれに該当するかによって異なります。
組織でフォワード プロキシ ソリューションを使用していない。組織でプロキシ ソリューションを実行しておらず、Tableau Server をインストールするコンピューターがインターネットに通信できる場合は、次の手順に従う必要はありません。
プロキシ ソリューションが展開されていて、自動構成ファイルが接続設定を定義している。組織がインターネット接続情報を指定するために自動構成ファイル (PAC や
.ins
ファイルなど) を使用している場合、Windows の [LAN (Local Area Network) 設定] ダイアログ ボックスで情報を使用できます。詳細は Microsoft サポートサイトの 『ブラウザー設定の自動検出と構成の有効化』 を参照してください。プロキシ ソリューションが展開されていて、自動構成ファイルで接続設定を定義していない。このシナリオの場合、プロキシ サーバーへの接続が実行ユーザー アカウントのセキュリティ コンテキストで実行されるように、Tableau Server を実行している Windows コンピューターの LAN 設定を構成する必要があります。また、
localhost
や、その他の内部 Tableau Server インスタンスを例外として構成する必要があります。
次の手順は、Tableau Server が Windows サーバー上で稼働している場合の最後のシナリオの手順である、自動設定ファイルを使用しないプロキシ ソリューションを示しています。
注: Tableau Server の分散インストールを使用している場合は、初期サーバー ノードや追加する各ノードで次の手順を実行してください。
ステップ 1: 実行サービス アカウントのローカル管理者グループへの追加
この手順を実行するには、Tableau Server コンピューターに実行サービス アカウントとしてログオンする必要があります。既定では、実行サービス アカウントに「ローカルでログオン」ポリシーは適用されません。そのため、一時的に、実行サービス アカウントをローカル管理者グループに追加する必要があります。
Tableau Server をまだコンピューターにインストールしていない場合は、実行サービス アカウントの変更を参照してください。既に Tableau Server をインストールし、実行サービス アカウントを構成しているなら、TSM Web UI にサインインすることによって実行サービス アカウント名を特定することができます。Tableau Server 実行サービス アカウントは、[構成] ウィンドウの [セキュリティ] タブに一覧表示されます。Tableau サービス マネージャーの Web UI へのサインインを参照してください。
Microsoft Web サイトの「メンバーをローカル グループに追加する」の手順を使用して、実行サービス アカウントをローカル管理者グループに追加します。フォワード プロキシ情報を構成し終えたなら、ローカル管理者グループから実行サービス アカウントを削除します。
ステップ 2: Windows LAN 設定でのプロキシ サーバーの構成
実行サービス アカウントを使用して、Tableau Server がインストールされているか、インストールする予定のコンピューターにログオンします。
[ローカル エリア ネットワーク (LAN) 設定] ダイアログ ボックスを開きます。(このダイアログ ボックスにすばやく到達する方法は、Windows の [スタート] メニューから
Internet Options
を検索することです。[インターネット プロパティ] ダイアログ ボックスで、[接続] タブをクリックし、[LAN 設定] をクリックします)。[プロキシ サーバー] の下で、[LAN にプロキシ サーバーを使用する] を選択して、プロキシ サーバーのアドレスとポートを入力し、[ローカル アドレスにはプロキシ サーバーを使用しない] を選択します。
このダイアログ ボックスを開いたまま、次の手順を続行します。
ステップ 3: プロキシ サーバーの回避に例外を追加する
このプロキシ構成に例外を追加することで、ローカル Tableau Server クラスター内の通信すべて (今および後に持つ場合)、プロキシ サーバーに送られないことが保証されます。
[LAN の設定] ダイアログ ボックスで [詳細] をクリックします。(このボタンは、LAN でプロキシ サーバーを使用するためのオプションが選択された場合のみ使用可能です)。
[プロキシ設定] ダイアログ ボックスで、[例外] フィールドに以下を入力します。
localhost
- 同じクラスター内にある他の Tableau Server コンピューターのサーバー ホスト名と IP アドレスを入力します。
アイテムを区切るには、セミコロンを使用します。
[プロキシ設定] ダイアログ ボックスと [LAN (Local Area Network) 設定] ダイアログ ボックスを閉じます。
[インターネットのプロパティ] ダイアログ ボックスで [OK] をクリックして、設定を適用します。
コンピューターにログオンしたまま、次の手順を続行します。
ステップ 4: プロキシ設定が Windows 環境変数と競合しないことを確認する
一部の組織ではフォワード プロキシ設定をWindows オペレーティング システムの環境変数として構成します。そのような設定が Tableau Server を実行中のコンピューター上で構成された場合、ここで完成させた構成と対立しないことを検証しなくてはなりません。
Tableau Server で ATR ライセンス発行が有効になっている場合、この検証は重要です。Tableau Server バージョン 2021.4 以降、ATR ライセンス発行は既定で有効になっています。
Tableau Server を実行中のコンピューター上で、検索ボックスに「高度なシステム設定」を入力して Enter をクリックし、[システム プロパティ] ボックスを開きます。
[Advanced (詳細)] タブで、[環境変数] をクリックします。
[システム変数] フィールドの内容をスクロールします。
http_proxy
またはhttps_proxy
が指定されている場合、その値がこの前の手順で構成したプロキシ サーバーのアドレスと対立していないことを確認してください。既存の設定が対立しない場合は、「ステップ 5: プロキシ構成をテストする」に進んでください。
既存の設定が競合している場合は、
no_proxy
という名前で新しい変数を作成し、- ホスト名、
- IP アドレス
例:
localhost,192.168.0.10
詳細については Microsoft MSDN の記事、「環境変数の設定」を参照してください。
[OK] をクリックします。
ステップ 5: WinHTTP のプロキシ設定が Windows の LAN 設定と競合しないことを確認する
Server ATR が有効な場合 (Tableau Server 2021.4 以降では既定で有効)、WinHTTP プロキシが Windows LAN 設定と競合しないように構成されていることを確認します。
実行サービス アカウントを使用して、Tableau Server がインストールされているか、インストールする予定のコンピューターにログオンします。
コマンド プロンプトを開き、次のコマンドを使用して現在の構成を確認します。
netsh winhttp show proxy
以下のいずれかの方法で、WinHTTP 用のプロキシを構成します。
Windows の LAN 設定から構成をインポートする場合は、次のコマンドを使用します。
netsh winhttp import proxy source=ie
WinHTTP プロキシを別に構成する場合は、次のコマンドを使用します。
netsh winhttp set proxy <proxy server> <proxy bypass list>
詳細については、Microsoft Web サイトで「デバイス プロキシとインターネット接続の設定を構成する(新しいウィンドウでリンクが開く)」を参照してください。
Windows の他のプロキシ構成と競合していないことを確認します。
ステップ 6: プロキシ構成をテストする
新しい構成をテストするには、Tableau Server コンピューターに実行サービス アカウントとしてログインしている間に、Web ブラウザーを開いて次の Tableau URL をテストしてください。
https://mapsconfig.tableau.com/v1/config.json
(新しいウィンドウでリンクが開く) https://api.mapbox.com/
(新しいウィンドウでリンクが開く) では、json ファイルのダウンロードを求めるメッセージが表示されます。
ステップ 7: 実行サービス アカウントをローカル管理者グループから削除する
プロキシ設定をテストした後、実行サービス アカウントをローカル管理者グループから削除します。実行サービス アカウントを管理者グループに残しておくと、実行サービス アカウントのパーミッションが強化され、セキュリティ リスクとなります。
すべての変更を確実に実装するために、Tableau Server を再起動します。
サーバー クラッシュ レポーター
組織でプロキシ サーバーを使用してインターネットに接続する場合は、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 で認証している場合:
- 自動ログオン (SSPI) を有効にした 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 |