
보안 그룹
- 보안 그룹은 인스턴스에 대한 인바운드 및 아웃바운드 트래픽을 제어하는 가상 방화벽 역할을 한다.
- 기본적으로 모든 포트는 비활성화 되어 있으며, 명시적으로 허용하지 않으면 트래픽이 들어올 수 없다.
- DDoS 방어는 보안 그룹에서 불가능하나, 네트워크 액세스 컨트롤 리스트(NACL)에서 가능하다.
- 하나의 EC2 인스턴스는 여러 개의 보안 그룹을 동시에 적용받을 수 있다.
- NACL은 서브넷 단위에서 트래픽을 제어하는 방화벽 역할을 하며, 더 강력한 보안 기능을 제공한다.
EC2에 보안그룹 A(port allow : 80), 보안그룹 B(port allow : 443)를 설정한다면 EC2는 port 80, 443을 허용하게 되는 것이다. 이와 같은 보안 그룹은 단일 인스턴스에 대해 최대 16개까지 적용이 가능하다.
보안 그룹은 인스턴스 단위, 이후 서술할 NACL은 서브넷단위로 보안이 적용된다는 사실에 유의하자.
Stateful
Cilent(175.212.214.107)은 Server(13.124.105.122)로 request를 보낸다.
Server(13.124.105.122)는 보안그룹 A(port allow: 80)에 의해 80번 포트가 허용된 상태이다. 80번째 문을 열어두고 있다고 생각하면 된다.
이때 Client는 클라이언트는 랜덤으로 포트를 선택하여 트래픽을 전송한다.
서버는 요청을 56630 포트로 받으면 그 포트로 응답을 보내는 일반적인 통신 구조를 가지는데,
스테이트풀 방화벽은 인바운드 규칙은 허용되지만 아웃바운드는 방해받지 않으며, 들어온 트래픽을 기억하여 나갈 때 통과시킨다.
열쇠는 집에 들어갈때만 필요하지, 나갈때도 열쇠가 필요하진 않다. 이미 들어왔다면, 자유롭게 나갈 수 있다.
이것이 보안그룹의 특징인 Stateful이다. NACL은 이와 반대로 Stateless하다.
NACL(Network Access Control List)
모든 방화벽이 Stateful인 것은 아니며, Stateless 방화벽도 존재한다.
Stateless 한 방화벽에서는 네트워크 액세스 컨트롤 리스트를 통해 들어오는 트래픽과 나가는 트래픽을 각기 다른 방식으로 체크한다.
나갈 때는 아웃바운드가 올라와 있지 않다면 트래픽을 내보내지 않는 원칙을 따른다.
스테이트풀 방화벽의 경우, 아웃바운드를 설정할 때 포트 범위를 허용해야 하며, 일반적으로 임시 포트 범위를 열어줘야 한다.
스테이트리스한 방화벽은 아웃바운드를 선택하는 데 주의해야 하며, 포트 레인지를 반드시 허용해야 상대방과의 통신이 이루어진다.
보안 그룹은 상태 기반이며, 네트워크 액세스 컨트롤 리스트(NACL)는 상태 비기반이라는 점이 중요하다.
특히 보안 그룹과는 달리 NACL은 포트 및 IP를 직접 다이렉트 할 수 있어, 외부 공격 상황에서 특정 IP를 차단할 수 있다.
NACL에서는 규칙이 낮은 숫자부터 평가되며, 이를 통해 블록하거나 허용할 수 있다.
규칙의 구성 요소로는 규칙 번호, 프로토콜, 허용 또는 거부할 포트 범위, 소스 IP 주소 CIDR 블록, 및 허용 여부를 설정할 수 있다.
보안 그룹은 허용 또는 거부가 아닌 무조건 허용만 가능하지만, NACL은 규칙을 정한 후 마지막으로 허용 또는 거부를 결정할 수 있는 특징이 있다.
예를 들어, EC2 인스턴스가 특정 IP로부터 DDoS 공격을 받고 있다면, NACL의 규칙 순서에 따라 매칭되는 트래픽을 특정하는 방식으로 처리된다.
운영하고 있는 EC2 인스턴스에 112.123.5.4라는 트래픽에서 계속 DDoS를 하고 있다면,
NACL 규칙으로 차단할 수 있다.
하지만 NACL 규칙은 해당하는 규칙이 나오면 그 다음 규칙은 적용하지 않기때문에 100번 규칙에 112.12.35.4에 해당하는 트래픽은 allow 되어 들어와 버린다. 따라서 순서를 고려해야 하는데
100번에는 112.123.5.4/32에 deny 규칙을 설정해주면 100번에서 매칭이 된 트래픽은 Deny가 되고, 매칭이 안 되는 나머지 트래픽은은 다음 규칙 번호로 넘어가 해당할때까지 규칙을 찾게된다.
이런 식으로 NACL의 규칙은 순서가 있기 때문에 순서를 잘 맞추어야 원하는 결과가 나올 수 있다.
만약에 규칙을 1,2,3,.. 과같이 규칙번호에 텀을 두지 않고 규칙을 추가한다면 새로운 규칙을 추가할 때에는 기존 규칙을 밀어야 하기 때문에 불편함이 따른다.
그래서 AWS는 규칙 레이어를 100단위로 설정하는 것을 권장하며, NACL은 서브넷 단위로 적용되어 모든 요소가 그 영향을 받는다. 보안그룹이 특정 인스턴스에 제한되는 것과 달리 서브넷 안에 속해있는 모든 인스턴스들은 NACL 규칙에 영향을 받는 것이다.
출처
https://www.youtube.com/watch?v=IJgAIbxxJCE
'Cloud' 카테고리의 다른 글
Nginx: 현대 웹 서버의 진화 (0) | 2025.02.01 |
---|---|
클라우드 네트워크 인프라의 기초 이해: VPC와 Subnet (0) | 2024.08.08 |
네트워크 관리 필수 개념: Private IP, NAT, CIDR (0) | 2024.08.07 |

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!