---
title: MCP 터널 보안
url: https://platform.claude.com/docs/ko/agents-and-tools/mcp-tunnels/security
description: MCP 터널 배포를 위한 보안 강화 지침, 자격 증명 교체, 침해 대응 및 해체 방법.
---

<Note>
  MCP tunnels(MCP 터널)는 연구 프리뷰 단계입니다. 사용해 보려면 [액세스를 요청](https://claude.com/form/mcp-tunnels)하세요.
</Note>

터널 아키텍처는 강력한 기본값(아웃바운드 전용 연결, 종단 간 암호화, IP 검증)을 제공하지만, [터널 스택](https://platform.claude.com/docs/ko/agents-and-tools/mcp-tunnels/concepts#components)의 전반적인 보안은 이를 어떻게 구성하고 운영하는지에 따라서도 달라집니다. 이 페이지에서는 권장되는 보안 강화 방법, 침해 대응, 그리고 터널을 폐기하는 방법을 다룹니다.

## 모범 사례

* **모든 MCP 서버에서 OAuth를 요구하세요.** [MCP 인가 사양](https://modelcontextprotocol.io/specification/2025-11-25/basic/authorization)에 설명된 대로 각 [업스트림 MCP 서버](https://platform.claude.com/docs/ko/agents-and-tools/mcp-tunnels/concepts#components)가 OAuth를 요구하도록 구성하세요. OAuth는 터널의 전송 인증 위에 심층 방어를 제공하며, 데이터 계층에서 사용자 수준의 인가를 가능하게 합니다.
* **조직에 SSO를 활성화하세요.** 터널, 페더레이션 규칙, 서비스 계정은 Claude Console에서 관리됩니다. SSO는 이를 변경할 수 있는 관리자에게 ID 공급자의 세션 제어를 적용합니다.
* **`upstream.allowed_ips`를 제한하세요.** MCP 서버를 포함하는 가장 작은 CIDR 범위를 사용하세요. 이는 [프록시](https://platform.claude.com/docs/ko/agents-and-tools/mcp-tunnels/concepts#components)의 주요 SSRF 방어 수단입니다.
* **로그를 모니터링하세요.** 터널 스택에서 발생하는 경고, 오류, 비정상적인 트래픽 패턴에 대해 알림을 설정하세요.
* **자격 증명을 교체하세요.** 서버 인증서와 터널 토큰을 정기적으로 교체하고, 침해가 의심되는 경우 즉시 교체하세요.
* **이미지를 최신 상태로 유지하세요.** 새로운 프록시 릴리스를 추적하고 SHA-256 다이제스트로 이미지를 고정하세요.
* **네트워크 도달 범위를 제한하세요.** 프록시와 [cloudflared](https://platform.claude.com/docs/ko/agents-and-tools/mcp-tunnels/concepts#components)는 [네트워크 요구 사항](https://platform.claude.com/docs/ko/agents-and-tools/mcp-tunnels/overview#network-requirements)에 나열된 대상에만 도달할 수 있어야 합니다. NetworkPolicy(Kubernetes) 또는 호스트 방화벽 규칙(Compose)을 사용하세요.
* **MCP 서버 범위를 제한하세요.** 각 서버는 해당 목적에 필요한 도구와 데이터만 노출해야 합니다.
* **저장된 자격 증명을 보호하세요.** 개인 키와 터널 토큰에 조직의 시크릿 관리 관행을 적용하세요.

## 침해 의심 시 대응

터널 토큰, TLS 키 또는 프록시 호스트가 침해되었다고 판단되는 경우:

<Steps>
  <Step title="터널 스택 중지">
    <Tabs>
      <Tab title="Helm">
        ```bash
        helm uninstall mcp-tunnel -n mcp-tunnel
        ```
      </Tab>

      <Tab title="Docker Compose">
        ```bash
        docker compose down --timeout 0
        ```
      </Tab>
    </Tabs>
  </Step>

  <Step title="업스트림 MCP 서버 분리">
    업스트림 MCP 서버를 사용하는 모든 Managed Agent 세션에서 해당 서버를 제거하고, Messages API 요청의 `mcp_servers` 블록에 해당 URL을 전달하는 것을 중단하세요.
  </Step>

  <Step title="터널 보관">
    보관하면 터널 토큰이 무효화되고 도메인이 분리됩니다. Console의 **MCP tunnels** 목록에서 [터널을 보관](https://platform.claude.com/docs/ko/agents-and-tools/mcp-tunnels/console#archive-a-tunnel)하세요. 대신 API를 통해 보관하려면 [터널 보관](https://platform.claude.com/docs/ko/api/beta/tunnels/archive)을 참조하세요.
  </Step>

  <Step title="Anthropic에 문의">
    의심되는 침해를 Anthropic 지원팀에 보고하세요.
  </Step>

  <Step title="다운스트림 자격 증명 교체">
    새 터널을 다시 프로비저닝하고, 영향을 받은 MCP 서버가 발급한 모든 OAuth 토큰을 교체하세요.
  </Step>

  <Step title="서비스 복원 전 로그 검토">
    새 터널을 온라인 상태로 전환하기 전에 침해가 의심되는 기간 동안의 프록시, cloudflared, MCP 서버 로그를 검사하세요.
  </Step>
</Steps>

## 터널 해체

터널을 폐기하고 저장된 모든 자격 증명을 제거하려면 다음 단계를 따르세요.

<Steps>
  <Step title="터널 스택 중지">
    <Tabs>
      <Tab title="Helm">
        ```bash
        helm uninstall mcp-tunnel -n mcp-tunnel
        ```
      </Tab>

      <Tab title="Docker Compose">
        ```bash
        docker compose down
        ```
      </Tab>
    </Tabs>
  </Step>

  <Step title="터널 보관">
    Console의 **MCP tunnels** 목록에서 [터널을 보관](https://platform.claude.com/docs/ko/agents-and-tools/mcp-tunnels/console#archive-a-tunnel)하세요.
  </Step>

  <Step title="저장된 자격 증명 제거">
    <Tabs>
      <Tab title="Helm">
        프로그래밍 방식 액세스를 사용한 경우, 설정 컴포넌트가 릴리스 이름을 딴 단일 Secret을 생성했습니다. 프로그래밍 방식 액세스를 사용하지 않은 경우, `mcp-tunnel-token`과 `mcp-tunnel-cert`를 직접 생성했습니다. 해당하는 것을 삭제하세요:

        ```bash
        kubectl -n mcp-tunnel delete secret \
          mcp-tunnel mcp-tunnel-token mcp-tunnel-cert \
          --ignore-not-found
        ```
      </Tab>

      <Tab title="Docker Compose">
        개인 키와 인증서는 `data/`에 있습니다. 터널 토큰은 `data/tunnel-token`(프로그래밍 방식 흐름) 또는 셸 환경(수동 흐름)에 있습니다. `config/` 디렉터리와 `docker-compose.yaml`에는 시크릿이 포함되어 있지 않으므로, 다시 프로비저닝할 계획이라면 유지하고 그렇지 않으면 함께 제거하세요.

        ```bash
        sudo rm -rf data
        ```
      </Tab>
    </Tabs>
  </Step>
</Steps>
