02 · 외부와 내부를 어떻게 나누는가? — 네트워크와 접근 통제 (1)

핵심: 서버를 구역별로 나누고, 필요한 경로에만 통신을 허용한다. 구역 분리와 접근 규칙은 함께 설계해야 한다.

한눈에 보는 흐름

학습용 네트워크 구조 — 공개 입구, 비공개 내부 계층, ALB에 적용한 WAF학습용 네트워크 구조 — 공개 입구, 비공개 내부 계층, ALB에 적용한 WAF
학습용 네트워크 구조 — 공개 입구, 비공개 내부 계층, ALB에 적용한 WAF

왜 배웠는가?

외부에서 접속할 서비스, 데이터를 저장할 서버, 보안 도구를 운영할 서버를 같은 방식으로 공개할 수는 없었다. 내부 서버의 업데이트와 관리자 접속까지 고려해야 했다.

핵심 개념

  • VPC / Subnet: AWS의 가상 네트워크 / 그 안의 주소 구역.
  • Route Table: 목적지에 따라 어디로 보낼지 정한 길 안내표.
  • Public / Private Subnet: 인터넷 게이트웨이로 직접 나가는 경로가 있는 구역 / 그 직접 경로가 없는 구역. 실제 인터넷 연결에는 IP와 접근 규칙도 필요하다.
  • NAT Gateway: 비공개 서버가 먼저 인터넷 통신을 시작할 때 쓰는 주소 변환 통로.
  • Bastion / SSM: 관리자 접속을 위한 중간 서버 / AWS 관리 기능을 이용한 접속 방식.

규칙은 어디에 적용하는가?

구성요소
쉽게 이해하기
Security Group(SG)
서버의 네트워크 인터페이스에 적용하는 허용 규칙. 연결의 응답을 기억한다.
Network ACL(NACL)
Subnet 경계의 허용·거부 규칙. 양쪽 방향을 따로 고려한다.
WAF
웹 요청 내용을 살펴보는 규칙.

이해를 만든 예시

Web 80, App 5000, DB 3306을 사용하는 학습 예시라면 사용자 → Web → App → DB에 필요한 연결을 정한다. 사용자가 DB에 직접 접속하거나 Web이 App을 건너뛰는 연결은 별도로 허용할 이유가 있는지 검토한다.
Private Subnet에 있다는 사실만으로 내부 접근이 모두 막히지는 않는다. 통신할 길이 있는가와 그 연결을 허용하는가를 함께 확인해야 한다.

프로젝트에서 이어진 질문

김태형의 VPC 연결 조사에서는 공격·서비스·CERT 영역을 별도 VPC로 나누는 설계가 등장했다. 여기서 SG를 허용하는 것만으로 다른 VPC까지 길이 생기지는 않는다는 문제를 다뤘다.
  • Peering: 두 VPC를 직접 연결.
  • PrivateLink: 필요한 서비스에 비공개로 접속하는 방식.
  • Transit Gateway: 여러 네트워크를 연결하는 중심 허브.
세 방식의 비교를 통해 연결 대상과 서비스 범위에 따라 네트워크 연결 방식이 달라진다는 점을 학습했다.

배운 점

“Private니까 안전하다”에서 “누가 누구에게 어떤 포트로 갈 수 있는가”를 설명하는 수준으로 학습이 구체화됐다.

원문과 작성자