외부에서 내부 서비스를 접근 못하게..

topics 400-인프라 & 아키텍처 402 클라우드 401 Docker & Kubernetes
types 실습
tags

외부에서 내부 서비스를 접근 못하게

상황

AWS와 Docker 환경에서 외부로부터의 직접적인 접근을 차단하고, 특정 경로를 통해서만 접근하도록 설정해야 하는 상황이다.

해결 방법

1. AWS Security Group 설정

  • 특정 IP나 VPC 내부에서만 접근 허용
  • 필요한 포트만 열기
  • 인바운드 규칙을 최소화
# <span id="security-group-인바운드-규칙-예시"></span>Security Group 인바운드 규칙 예시
- SSH (22): 특정 IP만 허용
- HTTP (80): VPC 내부만 허용
- HTTPS (443): VPC 내부만 허용

2. SSH 터널링 활용

  • 로컬에서 SSH 터널을 통해 안전하게 접근
  • 포트 포워딩으로 내부 서비스 접근
# <span id="ssh-터널링-예시"></span>SSH 터널링 예시
ssh -L 로컬포트:내부서버:내부포트 user@게이트웨이서버

3. Docker 네트워크 격리

  • Docker 네트워크를 private으로 설정
  • 필요한 컨테이너만 expose
# <span id="docker-composeyml-예시"></span>docker-compose.yml 예시
services:
  app:
    networks:
      - internal
    # ports를 명시하지 않으면 외부 노출 안됨

networks:
  internal:
    internal: true  # 외부 접근 차단

4. VPN 사용

  • VPN을 통해서만 내부 네트워크 접근
  • AWS VPN 또는 사설 VPN 구축

주의사항

보안 주의: 포트를 열 때는 항상 최소 권한 원칙을 따라야 한다

  • 불필요한 포트는 닫기
  • 로그 모니터링으로 비정상 접근 감지
  • 정기적인 보안 그룹 규칙 검토

관련 문서