피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Zero-Open Port 설계를 통한 Docker 서비스의 보안 노출 제로화
How to Expose Your Docker App Securely with Cloudflare Tunnel and a Custom Domain
AI 요약
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 및 인증서 관리 전략 수립