네발오징어
개발이모저모
네발오징어
전체 방문자
오늘
어제
  • 분류 전체보기
    • nodejs
    • spring
    • 알고리즘
    • DevOps
    • AWS

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • setter
  • AWS
  • getter
  • S3
  • pre-signed-url
  • TypeScript

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
네발오징어

개발이모저모

Network ACL vs 보안그룹
AWS

Network ACL vs 보안그룹

2023. 6. 20. 18:39

이 두 가지에 대해 질문도 많이 받고 기능적으로도 비슷한데 무슨 차이인지 명확하게 알고자 이에 대해 정리해보려 한다.

 

네트워크 ACL

정의

 - 네트워크 액세스 제어 목록(ACL)은 서브넷 수준에서 특정 인바운드 또는 아웃바운드 트래픽을 허용하거나 거부한다.

 - Stateless 필터 방식 ( = 요청 정보를 따로 저장하지 않기 때문에 응답하는 트래픽에 대한 필터링을 설정해야 함)

 

보안 그룹

정의

 - 보안 그룹은 보안 그룹에 연결된 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 규칙을 정의합니다.

 - Stateful 필터 방식 ( = 요청 정보를 저장하여 응답하는 트래픽 제어를 하지 않음)

 

조금 간단하게 정리하면 네트워크 ACL은 IP 주소와 포트 번호를 기반으로 트래픽을 제어하고, 보안 그룹의 경우 특정 인스턴스 간의 통신을 제어한다.

 

예시의 경우로 두 가지를 들 수 있는데

 

1. 외부로부터의 통신

   - 외부에서의 접근이기 때문에 네트워크 acl의 보안정책과 하위 인스턴스의 보안그룹 정책 두 개가 모두 적용된다.

2. 내부통신

   - 동일 서브넷 안에서의 통신의 경우 보안 그룹의 정책만 적용이 된다.

 

이와 관련해서 전에 특이한 부분이 있다고 얘기를 들었었는데 찾다 보니 똑같은 내용이 나왔었다.

바로 1024-65535 포트이다.

 

이것은 휘발성 포트이다. 

 

다양한 휘발성 포트들이 있지만 네트워크 ACL에서는 아웃바운드 포트를 휘발성 포트인 1024-65535를 사용한다.

 

간단한 예시를 보자.

 

클라이언트가 AWS Server에 접근을 할 때를 가정해 보면 아래와 같다.

 

외부에서 요청이 오면 Network ACL 정책 -> 보안 그룹 정책 순으로 거치게 되며,

응답으로 보안 그룹의 아웃바운드 정책에 거치지 않고 Network ACL 정책만 거쳐가게 된다.

 

이때 아웃바운드로 나가는 Network ACL의 포트가 휘발성 포트인 1024-65535인 것이다.

 

이러한 이유는 임시로 할당되기 때문에 공격자들이 포트를 예측하거나 악용하기 어렵게 하기 위해서이다.

 

위 와 같은 그림이 나온 김에 추가로 상황을 더 만들어 보자.

 

2. 같은 서브넷 상의 통신

같은 서브넷의 경우 위의 내부 통신과 같이 보안 그룹 정책만 따른다.

 

3. 서버에서 외부로의 접근

순서는 반대로 아웃바운드부터 시작되며 

보안 그룹 아웃바운드 정책 -> 네트워크 ACL 정책 ( 여기서 나가는 네트워크 ACL 아웃바운드 포트 또한 휘발성 포트인 1024-65535이다.)

그리고 응답은  네트워크 ACL 인바운드 정책만 적용 되게 된다.

 

결과적으로 네트워크 ACL의 경우에는 서로 다른 서브넷 혹은 외부와 통신할 경우에 정책이 적용되고,

보안 그룹은 모든 통신에서 사용된다고 생각하면 된다.

'AWS' 카테고리의 다른 글

NAT Gateway란?  (0) 2023.06.27
Pre-signed url  (0) 2023.06.12
파일 다운로드 속도 비교(S3 GetObject vs axios get)  (0) 2023.06.05
AWS SES (with aws-sdk)  (0) 2023.05.23
    'AWS' 카테고리의 다른 글
    • NAT Gateway란?
    • Pre-signed url
    • 파일 다운로드 속도 비교(S3 GetObject vs axios get)
    • AWS SES (with aws-sdk)
    네발오징어
    네발오징어

    티스토리툴바