본문 바로가기
카테고리 없음

VPC 통제 3요소 - SG와 NACL

by james_janghun 2024. 11. 5.

VPC 통제 3요소

 

- 네트워크 인터페이스의 사용

- 보안그룹

- 네트워크 ACL

- 라우팅 테이블

 

접근제어 (보안그룹과 NACL)

접근 제어는 컴퓨팅 서비스를 보호하는 장치이다. 온프레미스에서는 방화벽으로 사용하는 것이다.

 

접근제어 방식비교

방화벽의 접근제어 방식을 알아보자

  Blacklist Whitelist
기본 정책 모든 트래픽 허용 / 블랙  리스트만 차단

Deny Rule1
Deny Rule2
All Allow
모든 트래픽 차단 / 화이트 리스트만 허용

Allow Rule1
Allow Rule2
All Deny

 

일반적으로는 모든 트래픽을 기본 허용하는 블랙 방식은 관리자가 차단 리스트를 모두 알아야 하는 단점이 있어 화이트 방식으로 사용하는게 좋다. 다만 뭐든 정답은 없고 상황에 맞게 하는 것이 최선이다. 정말 필요한 트래픽만 명확하게 허용하고자 한다면 보안쪽에서는 오히려 블랙리스트 방식이 안전할 것이다.

 

또한 결합방식(허용/거부 정책을 혼용)은 규칙 번호가 중요한데, 1번부터 차례로 확인하기 때문에 적용순서에 따라서 허용 범위가 달라질 수 있으니 조심해야한다.

  SG보안그룹 NACL
결합(통제)대상 ENI로 들어오거나 나가는 트래픽 접근 제어 서브넷을 지나는 트래픽 접근 제어
허용방식 화이트리스트 방식 (허용만) 결합 방식(규칙번호가 중요하다)
최하단은 모두 차단(화이트 기반)
* 참고로 블랙 기반으로 변경하고 싶으면 최하단 모두 차단 위에 모두 허용을 두면 된다.
특징 - VPC에 속한다.
- ENI에 결합하며, ENI를 변경할 수 있다.
- ENI에 연결되지 않아도 존재는 가능하다.

- VPC에 속한다.
- 서브넷에 결합하며, 서브넷을 변경할 수 있다.
- 서브넷에 연결되지 않아도 존재가 가능하다.
- 서브넷은 반드시 하나의 NACL을 가져야한다.(연결을 해지하면 기본 NACL로 연결된다. 반드시 1개만 NACL로 가질 수 있다.)
- 서브넷 생성시에는 무조건 기본 NACL과 연결되니, 변경을 원하면 생성하고 변경해야한다.
다중연결성 1:N 연결성 - 1개 SG를 여러 ENI에 연결할 수 있다. 역할마다 SG를 구분 생성하고 서비스 역할에 따라 관련 SG를 연결한다.
N:1 연결성 - 여러 SG를 한개의 ENI에 연결할 수 있다. 서비스 하나에 여러 역할이 필요할 때 유용하다.
1:N
항목 Source/Destination/protocol/port range


SG는 ENI의 트래픽을 관리하기 때문에 Inbound의 destination과 outbound의 source는 모두 ENI이다. 따라서 inbound/outbound항목을 나눠서 관리한다.
규칙번호 / 유형 / protocol/ port range / source / 허용-거부
  stateful(상태 저장)
접근자의 source IP/Port를 저장함.

inbound만 허용해주면 outbound는 규칙이 없어도 자동으로 허용해줌.
stateless(상태 비저장)
접근자의 source IP/port를 저장하지 않음

inbound와 outbound를 허용해주어야 통신이 가능함.
문제는 통신시 동적포트를 사용하기 때문에 포트정보를 명확하게 지정할 수 없고 범위로 해야함.

 

AWS SG의 특이한 기능

AWS는 SG 규칙 관리 효율을 높이고자 source와 destination에 SG명을 지정할 수 있도록 했다.

Outbound 규칙 대상의 SG : 해당 SG를 사용하는 컴퓨팅 서비스로 접속 허용

Inbound 규칙 대상의 SG : 해당 SG를 사용하는 컴퓨팅 서비스의 접속 허용

 

Outbound 예시

sg-1234 / TCP / 80 : sg-1234를 사용하는 모든 컴퓨팅 서비스로 가는 접속 허용

 

Inbound 예시

sg-4321 / TCP / 80 : sg-4321을 사용하는 모든 컴퓨팅 서비스의 접근 허용

 

다만 이 특징으로 인해 의도치 않은 인스턴스의 접속을 허용하게 된다는 것을 반드시 주의해야 한다.