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

topics
types 실습
tags
#aws #docker #security #tunneling

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

상황

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

해결 방법

1. AWS Security Group 설정

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

2. SSH 터널링 활용

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

3. Docker 네트워크 격리

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

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

4. VPN 사용

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

주의사항

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

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

관련 문서