피드로 돌아가기
How to Expose Your Docker App Securely with Cloudflare Tunnel and a Custom Domain
Dev.toDev.to
Infrastructure

Zero-Open Port 설계를 통한 Docker 서비스의 보안 노출 제로화

How to Expose Your Docker App Securely with Cloudflare Tunnel and a Custom Domain

Mercy Chelangat2026년 5월 15일5intermediate

Context

기존 Router Port Forwarding 방식은 서버 IP 노출과 외부 스캔 공격에 취약한 구조적 한계를 가짐. Static IP 확보 및 Firewall Rule 설정 등 인프라 관리 비용이 발생하며 보안 접점이 넓어지는 문제점이 존재함.

Technical Solution

  • Outbound-only connection 설계를 통해 외부에서 내부로의 직접적인 인바운드 경로를 완전히 차단함
  • cloudflared 에이전트를 Docker 컨테이너로 추상화하여 인프라 종속성 없는 네트워크 터널링 구현
  • config.yml 기반의 Ingress Rule 설정을 통해 호스트네임별 내부 서비스 라우팅 경로를 중앙 제어함
  • CNAME Record 기반의 DNS 자동 매핑으로 서버 IP 노출 없이 Cloudflare Edge 네트워크를 통한 트래픽 유입 유도
  • Non-root 사용자 권한 설정 및 Credentials 파일 접근 제어로 컨테이너 내부 보안 강화
  • Catch-all Rule 설정을 통한 예외 트래픽 처리로 라우팅 무결성 확보

1. Port Forwarding 제거 후 Outbound Tunneling 기반의 Zero Trust 접근 방식 검토

2. cloudflared 컨테이너 적용 시 credentials.json 파일의 권한(chmod 600/644) 설정 확인

3. Ingress 설정 시 반드시 마지막 순서에 Catch-all Rule(http_status:404) 배치 여부 검증

4. Docker Volume 마운트를 통한 config.yml 및 인증서 관리 전략 수립

원문 읽기