---
schema_version: "1"
id: 845eb34bd0a8aac9f1444a3541d1c838320cf670ad4eef3ba6a4c5926a74375a
title: 콘텐츠 보안 정책
collection: tableau
version: current
locale: ko-kr
portal_url: https://docs.salesforce.com/tableau/current/ko-kr/server/security_csp.md
canonical_url: https://help.tableau.com/current/server/ko-kr/security_csp.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 9ae5fbbc0c1987f8dd3037af1f9da9db05160e00f398eb70eb7f8e9ed5418865
description: Configure and enable Content Security Policy on Tableau Server.
---
[주요 콘텐츠로 건너뛰기](#main-content)

# 콘텐츠 보안 정책

Tableau Server는 CSP(콘텐츠 보안 정책) 표준을 지원합니다. CSP는 사이트 간 스크립팅 및 기타 악의적인 웹 기반 공격에 대한 추가 보안 계층입니다. CSP는 HTTP 응답 헤더로 구현되며, 이 헤더를 사용하여 스크립트 및 이미지와 같은 외부 리소스를 안전하게 로드할 수 있는 위치를 지정할 수 있습니다.

CSP에 대한 자세한 내용은 [Mozilla 웹 사이트](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP)를 참조하십시오.

## CSP 구성 및 사용하도록 설정

CSP는 [tsm configuration set 옵션](https://help.tableau.com/current/server/ko-kr/cli_configuration-set_tsm.htm) 명령을 사용하여 구성하고 사용하도록 설정합니다. 분산 배포에서 Tableau Server를 실행하는 경우 클러스터의 초기 노드에서 이러한 명령을 실행합니다. [tsm pending-changes apply](https://help.tableau.com/current/server/ko-kr/cli_pending-changes.htm#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"`

<table style="width: 100%;" class="simple-table"><colgroup><col style="width: 45%;"><col style="width: 20%;"><col style="width: 25%;"></colgroup><tbody><tr><th>옵션</th><th>기본값</th><th><p>설명</p></th></tr><tr><td>content_security_policy.directive.default_src</td><td>‘none’</td><td><p>다른 fetch 지시문에 대한 대체 지시문으로 사용됩니다.</p><p><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/default-src" target="_blank"><code>default_src</code>의 유효한 값</a>.</p></td></tr><tr><td>content_security_policy.directive.connect_src</td><td>*</td><td><p>스크립트 인터페이스를 사용하여 로드할 수 있는 URL을 제한합니다.</p><p><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/connect-src" target="_blank"><code>connect_src</code>의 유효한 값</a>.</p></td></tr><tr><td>content_security_policy.directive.script_src</td><td>*</td><td><p>JavaScript의 유효한 원본을 지정합니다.</p><p><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/script-src" target="_blank"><code>script_src</code>의 유효한 값</a>.</p></td></tr><tr><td>content_security_policy.directive.style_src</td><td>* ‘unsafe-inline’</td><td><p>스타일시트의 유효한 원본을 지정합니다.</p><p><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src" target="_blank"><code>style_src</code>의 유효한 값</a>.</p></td></tr><tr><td>content_security_policy.directive.img_src</td><td>* data:</td><td><p>이미지 및 파비콘의 유효한 원본을 지정합니다.</p><p><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/img-src" target="_blank"><code>img_src</code>의 유효한 값</a>.</p></td></tr><tr><td>content_security_policy.directive.font_src</td><td>* data:</td><td><p>@font-face를 사용하여 로드된 글꼴의 유효한 원본을 지정합니다.</p><p><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/font-src" target="_blank"><code>font_src</code>의 유효한 값</a>.</p></td></tr><tr><td>content_security_policy.directive.frame_src</td><td>* data:</td><td><p>&lt;frame&gt; 및 &lt;iframe&gt;과 같은 요소를 사용하여 로드하는 중첩된 탐색 컨텍스트의 유효한 원본을 지정합니다.</p><p><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-src" target="_blank"><code>frame_src</code>의 유효한 값</a>.</p></td></tr><tr><td>content_security_policy.directive.object_src</td><td>data:</td><td><p>&lt;object&gt;, &lt;embed&gt; 및 &lt;applet&gt; 요소에 대한 유효한 원본을 지정합니다.</p><p><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/object-src" target="_blank"><code>object_src</code>의 유효한 값</a>.</p></td></tr><tr><td>content_security_policy.directive.report_uri</td><td>/vizql/csp-report</td><td><p>사용자 에이전트에 CSP 위반 시도를 보고하도록 지시합니다. 이러한 위반 보고서는 HTTP POST 요청을 통해 지정된 URI에 전송된 JSON 문서로 구성됩니다.</p><p><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/report-uri" target="_blank"><code>report_uri</code>의 유효한 값</a>.</p></td></tr></tbody></table>

### 2단계: 다른 지시문 추가(선택 사항)

Tableau Server에 포함된 기본 지시문은 CSP에서 지원하는 지시문의 하위 집합입니다.

지원되는 CSP 지시문의 전체 목록을 보려면 [https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy](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`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/worker-src) 지시문을 추가하려면 다음 명령을 실행합니다.

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

### 3단계: 보고 전용 지시문 지정(선택 사항)

일부 지시문을 보고하고 다른 지시문을 적용하도록 CPS를 구성할 수 있습니다. content\_security\_policy.report\_only\_enable가 true로 설정되어 있어도 content\_security\_policy.enforce\_enabled를 true로 설정하면 모든 지시문이 적용됩니다.

지시문을 "report-only"로 지정하고 적용하지 않으려면 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를 사용하도록 설정합니다.

다음 옵션은 설정한 지시문에 대해 적용 또는 보고 전용 모드를 사용하도록 설정하는 데 사용됩니다.

<table style="width: 100%;" class="simple-table"><colgroup><col style="width: 45%;"><col style="width: 20%;"><col style="width: 25%;"></colgroup><tbody><tr><th>옵션</th><th>기본값</th><th><p>설명</p></th></tr><tr><td>content_security_policy.enforce_enabled</td><td>false</td><td><p>모든 위반이 브라우저에서 적용되도록 모든 요청에 CSP 헤더를 추가합니다.</p></td></tr><tr><td>content_security_policy.report_only_enabled</td><td>true</td><td>모든 위반이 vizql-client 로그에 기록되지만 브라우저에서 적용되지 않도록 모든 요청에 CSP 헤더를 추가합니다.</td></tr></tbody></table>

지정한 CSP 지시문을 적용하도록 설정하려면 다음 명령을 실행합니다.

`tsm configuration set -k content_security_policy.enforce_enabled -v true`

### 5단계: tsm pending-changes apply 실행

CSP 구성을 마쳤으면 [tsm pending-changes apply](https://help.tableau.com/current/server/ko-kr/cli_pending-changes.htm#pending-changes-apply)를 실행합니다.

보류 중인 변경 내용을 적용하려면 서버를 다시 시작해야 하는 경우 `pending-changes apply` 명령은 서버가 다시 시작됨을 알리는 메시지를 표시합니다. 서버가 중지된 경우에도 이 메시지가 표시되지만 이 경우 다시 시작은 없습니다. `--ignore-prompt` 옵션을 사용하여 이 메시지를 표시하지 않을 수 있지만 다시 시작 동작은 변경되지 않습니다. 변경 내용을 적용해도 다시 시작할 필요가 없는 경우 메시지 없이 변경 내용이 적용됩니다. 자세한 내용은 [tsm pending-changes apply](https://help.tableau.com/current/server/ko-kr/cli_pending-changes.htm#pending-changes-apply)를 참조하십시오.

## CSP 보고서 보기

지정된 비주얼리제이션에 대한 CSP 위반을 보려면 개발자 도구가 포함된 브라우저에서 비주얼리제이션을 로드합니다. 이 예에서는 Chrome 브라우저를 사용합니다.

1. CSP를 구성한 Tableau Server 배포에서 호스팅되는 위반을 사용하여 테스트 비주얼리제이션을 로드합니다.
2. `CTRL+Shift+I`를 입력하여 Chrome의 개발자 도구를 엽니다.
3. **Network**(네트워크) 탭을 클릭합니다.
4. **Filter**(필터) 필드에 `csp-report`를 입력한 다음 **Find All**(모두 찾기)을 클릭합니다.
    
    - 위반이 없는 경우 검색에서 CSP 보고서가 반환되지 않습니다.
    - 위반이 있는 경우 결과 패널에서 Headers(헤더) 탭을 클릭하고 맨 아래로 스크롤하여 **Request Payload**(페이로드 요청)를 표시합니다.