コンテンツ セキュリティ ポリシー

Tableau Server では、コンテンツ セキュリティ ポリシー (CSP) 標準をサポートしています。CSP は、クロスサイト スクリプティングやその他の悪意のある Web ベースの攻撃に対する追加のセキュリティ レイヤーになることを目的としています。CSP は HTTP 応答ヘッダーとして実装され、スクリプトやイメージなどの外部リソースを安全に読み込むことができる場所を指定できます。

CSP の詳細については、 Mozilla の Web サイト を参照してください。

: Tableau Server がユーザー認証に SAML を使用するよう構成されている場合は、CSP を有効にしないでください。SAML を使用した Tableau Server での CSP の実行はサポートされていません。

CSP の構成と有効化

CSP は、tsm configuration set のオプション コマンドを使用して構成され、有効化されます。分散展開で Tableau Server を実行している場合は、クラスタ内の最初のノードでこれらのコマンドを実行します。tsm pending-changes apply を実行すると、クラスタに構成が適用されます。

ステップ 1: 既定のディレクティブの設定

Tableau Server には以下の表に記載された一連の既定のディレクティブが含まれています。

ディレクティブを設定するには、次の tsm 構文を使用します。

tsm configuration set -k content_security_policy.directive.<directive_name> -v "<value>"

たとえば、connect_src ディレクティブを設定するには、次のコマンドを実行します。

tsm configuration set -k content_security_policy.directive.connect_src -v "* unsafe-inline"

オプション 既定値

説明

content_security_policy.directive.default_src ‘none’

その他のフェッチ ディレクティブのフォールバックとして機能します。

default_src の有効な値

content_security_policy.directive.connect_src *

スクリプト インターフェイスを使用して読み込むことのできる URL を制限します。

connect_src の有効な値

content_security_policy.directive.script_src *

JavaScript の有効なソースを指定します。

script_src の有効な値

content_security_policy.directive.style_src * ‘unsafe-inline’

スタイルシートの有効なソースを指定します。

style_src の有効な値

content_security_policy.directive.img_src * data:

イメージおよびファビコンの有効なソースを指定します。

img_src の有効な値

content_security_policy.directive.font_src * data:

@font-face を使用して読み込まれるフォントの有効なソースを指定します。

font_src の有効な値

content_security_policy.directive.frame_src * data:

<frame> や <iframe> などの要素を使用して読み込む、ネストされたブラウジング コンテキストの有効なソースを指定します。

frame_src の有効な値

content_security_policy.directive.object_src data:

<object>、<embed>、および <applet> 要素の有効なソースを指定します。

object_src の有効な値

content_security_policy.directive.report_uri /vizql/csp-report

ユーザー エージェントに、CSP に対する違反行為の試行を報告するよう指示します。これらの違反レポートは、指定された URI に対する HTTP POST 要求を介して送信された JSON ドキュメントで構成されます。

report_uri の有効な値

ステップ 2: ディレクティブの追加 (オプション)

Tableau Server に含まれる既定のディレクティブは、CSP でサポートされているディレクティブのサブセットです。

サポートされる CSP ディレクティブの完全なリストについては、https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy にアクセスしてください。

既存の既定セットにディレクティブを追加するには、content_security_policy.directive 名前空間に新しいディレクティブを追加します。新しいディレクティブを追加するときは、--force-keys パラメーターを含める必要があります。構文は、次のとおりです。

tsm configuration set -k content_security_policy.directive.<new_directive_name> -v "<value>" --force-keys

たとえば、worker-src ディレクティブを追加するには、次のコマンドを実行します。

tsm configuration set -k content_security_policy.directive.worker-src -v "none" --force-keys

ステップ 3: レポート専用ディレクティブの指定 (オプション)

CSP を構成していくつかのディレクティブを報告したり他のディレクティブを実行したりできます。content_security_policy.enforce_enabled を true に設定すると、すべてのディレクティブが実行されます (content_security_policy.report_only_enable が同様に true に設定されている場合でも適用されます)。

ディレクティブを「レポート専用」として指定し、実行しないように指定するには、ディレクティブを report_only_directive 名前空間に追加します。新しいディレクティブを追加するときは、--force-keys パラメーターを含める必要があります。構文は、次のとおりです。

tsm configuration set -k content_security_policy.report_only_directive.<directive_name> -v "<value>" --force-keys

たとえば、script_src ディレクティブでレポート専用にするには、次のコマンドを実行します。

tsm configuration set -k content_security_policy.report_only_directive.script_src -v " http://*.example.com" --force-keys

ステップ 4: Tableau Server での CSP の有効化

ディレクティブを構成したら、Tableau Server で CSP を有効にします。

次のオプションを使用して、設定したディレクティブの実施やレポート専用モードを有効にします。

オプション 既定値

説明

content_security_policy.enforce_enabled false

CSP ヘッダーをすべての要求に追加して、すべての違反がブラウザーで実施されるようにします。

content_security_policy.report_only_enabled true CSP ヘッダーをすべての要求に追加して、すべての違反が vizql-client ログに記録されるようにしますが、ブラウザーで実施されることはありません。

指定した CSP ディレクティブの実施を有効にするには、次のコマンドを実行します。

tsm configuration set -k content_security_policy.enforce_enabled -v true

ステップ 5: tsm pending-changes apply の実行

CSP の構成が完了したら、tsm pending-changes apply を実行します。

pending-changes apply コマンドは、Tableau Server が実行中の場合にはそれが再起動することを知らせるプロンプトを表示します。このプロンプトはサーバーが停止しても表示されますが、その場合には再起動は行われません。--ignore-prompt オプションを使用してメッセージが表示されないようにできますが、そのようにしても再起動に関する動作が変わることはありません。詳細については、tsm pending-changes applyを参照してください。

CSP レポートの表示

指定した viz に CSP 違反を表示するには、開発者ツールを含むブラウザーに viz を読み込みます。この例では Chrome ブラウザーを使用します。

  1. CSP を構成した Tableau Server 展開でホストされている、違反のあるテスト viz を読み込みます。

  2. CTRL+Shift+I を押して Chrome で開発者ツールを開きます。

  3. [ネットワーク] タブをクリックします。

  4. [フィルター] フィールドで、csp-report と入力してから [すべて検索] をクリックします。

    • 違反がない場合は、検索で CSP レポートが返されません。

    • 違反がある場合は、結果ペインの [ヘッダー] タブをクリックして下部までスクロールし、[リクエスト ペイロード] を表示します。

フィードバックをくださりありがとうございます! フィードバックの送信中にエラが発生しました。もう一度やり直すか、メッセージをお送りください