MCP 터널 보안
MCP 터널 보안 (MCP tunnels security)
터널 아키텍처는 강력한 기본값(아웃바운드 전용 연결, 종단 간 암호화, IP 검증)을 제공하지만, 터널 스택의 전반적인 보안은 여러분이 어떻게 구성하고 운영하느냐에도 달려 있어요. 이 페이지에서는 권장 보안 강화, 침해 대응, 터널 폐기(decommission) 방법을 다뤄요.
출처: 문서
본문
참고 (Note) MCP 터널은 연구 프리뷰(research preview) 상태예요. 사용해보려면 액세스를 요청하세요.
터널 아키텍처는 강력한 기본값(아웃바운드 전용 연결, 종단 간 암호화, IP 검증)을 제공하지만, 터널 스택의 전반적인 보안은 여러분이 어떻게 구성하고 운영하느냐에도 달려 있어요. 이 페이지에서는 권장 보안 강화, 침해 대응, 터널 폐기 방법을 다뤄요.
모범 사례 (Best practices)
- 모든 MCP 서버에 OAuth를 요구하세요. 각 업스트림 MCP 서버가 MCP 인증 스펙에 설명된 대로 OAuth를 요구하도록 구성해요. OAuth는 터널의 전송 인증 위에 방어 심층(defense in depth)을 제공하고 데이터 계층에서 사용자 수준의 권한 부여를 가능하게 해요.
- 조직에 SSO를 활성화하세요. 터널, 페더레이션 규칙, 서비스 계정은 Claude Console에서 관리돼요. SSO는 이를 변경할 수 있는 관리자에게 ID 공급자의 세션 제어를 적용해요.
upstream.allowed_ips를 제한하세요. MCP 서버를 포함하는 가장 작은 CIDR 범위를 사용해요. 이것이 프록시의 주요 SSRF 방어책이에요.- 로그를 모니터링하세요. 터널 스택에서 경고, 오류, 비정상적인 트래픽 패턴에 알림을 걸어두세요.
- 자격 증명을 순환(rotate)하세요. 서버 인증서와 터널 토큰을 정기적으로 순환하고, 손상이 의심되면 즉시 순환하세요.
- 이미지를 최신 상태로 유지하세요. 새 프록시 릴리스를 추적하고 SHA-256 다이제스트로 이미지를 고정해요.
- 네트워크 범위를 제한하세요. 프록시와 cloudflared는 네트워크 요구 사항에 나열된 대상에만 도달할 수 있어야 해요. NetworkPolicy(Kubernetes)나 호스트 방화벽 규칙(Compose)을 사용하세요.
- MCP 서버 범위를 제한하세요. 각 서버는 그 목적에 필요한 도구와 데이터만 노출해야 해요.
- 저장 시 자격 증명을 보호하세요. 개인 키와 터널 토큰에 조직의 비밀 관리 방식을 적용해요.
의심되는 침해에 대응하기 (Respond to a suspected breach)
터널 토큰, TLS 키 또는 프록시 호스트가 손상되었다고 생각된다면:
- 터널 스택 중지하기
- Helm:
helm uninstall mcp-tunnel -n mcp-tunnel - Docker Compose:
docker compose down --timeout 0
- Helm:
- 업스트림 MCP 서버 분리하기 — 업스트림 MCP 서버를 이를 사용하는 모든 Managed Agent 세션에서 제거하고, Messages API 요청의
mcp_servers블록에 URL을 전달하는 것을 중지해요. - 터널 아카이브하기 — 아카이빙은 터널 토큰을 무효화하고 도메인을 분리해요. Console의 MCP tunnels 목록에서 터널을 아카이브하거나, API로 아카이브하려면 터널 아카이브를 참고해요.
- Anthropic에 연락하기 — 의심되는 손상을 Anthropic 지원팀에 신고해요.
- 하위 자격 증명 순환하기 — 새 터널을 다시 프로비저닝하고 영향을 받은 MCP 서버가 발급한 OAuth 토큰을 순환해요.
- 복구 전 로그 검토하기 — 새 터널을 온라인으로 가져오기 전에 손상이 의심되는 기간 동안 프록시, cloudflared, MCP 서버 로그를 검사해요.
터널 내리기 (Tear down a tunnel)
터널을 폐기하고 저장된 모든 자격 증명을 제거하려면 다음 단계를 따르세요.
- 터널 스택 중지하기
- Helm:
helm uninstall mcp-tunnel -n mcp-tunnel - Docker Compose:
docker compose down
- Helm:
- 터널 아카이브하기 — Console의 MCP tunnels 목록에서 터널을 아카이브해요.
- 저장된 자격 증명 제거하기
- Helm: 프로그래매틱 액세스를 사용했다면 설정 구성 요소가 릴리스 이름과 같은 단일 Secret을 만들었어요. 프로그래매틱 액세스가 없다면
mcp-tunnel-token과mcp-tunnel-cert를 직접 만들었을 거예요. 해당하는 것을 삭제하세요:kubectl -n mcp-tunnel delete secret \ mcp-tunnel mcp-tunnel-token mcp-tunnel-cert \ --ignore-not-found - Docker Compose: 개인 키와 인증서는
data/에 있어요. 터널 토큰은data/tunnel-token(프로그래매틱 흐름) 또는 셸 환경(수동 흐름)에 있어요.config/디렉터리와docker-compose.yaml에는 비밀이 없으므로 재프로비저닝할 계획이라면 보관하고, 아니라면 함께 제거해도 돼요.sudo rm -rf data
- Helm: 프로그래매틱 액세스를 사용했다면 설정 구성 요소가 릴리스 이름과 같은 단일 Secret을 만들었어요. 프로그래매틱 액세스가 없다면
더 알아보기 (Learn more)
- MCP 터널 개념 (MCP tunnels concepts) — 터널 스택의 구성 요소
- MCP 터널 Console 사용법 — 터널 아카이브
- MCP 터널 개요 — 네트워크 요구 사항