외부에서 내부 서비스를 접근 못하게..
| 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 구축
주의사항
보안 주의: 포트를 열 때는 항상 최소 권한 원칙을 따라야 한다
- 불필요한 포트는 닫기
- 로그 모니터링으로 비정상 접근 감지
- 정기적인 보안 그룹 규칙 검토